s390: add support for vector extension
The vector extension introduces 32 128-bit vector registers and a set of instruction to operate on the vector registers. The kernel can control the use of vector registers for the problem state program with a bit in control register 0. Once enabled for a process the kernel needs to retain the content of the vector registers on context switch. The signal frame is extended to include the vector registers. Two new register sets NT_S390_VXRS_LOW and NT_S390_VXRS_HIGH are added to the regset interface for the debugger and core dumps. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
@@ -343,6 +343,9 @@ static void __init setup_lowcore(void)
|
||||
__ctl_set_bit(14, 29);
|
||||
}
|
||||
#else
|
||||
if (MACHINE_HAS_VX)
|
||||
lc->vector_save_area_addr =
|
||||
(unsigned long) &lc->vector_save_area;
|
||||
lc->vdso_per_cpu_data = (unsigned long) &lc->paste[0];
|
||||
#endif
|
||||
lc->sync_enter_timer = S390_lowcore.sync_enter_timer;
|
||||
@@ -765,6 +768,12 @@ static void __init setup_hwcaps(void)
|
||||
*/
|
||||
if (test_facility(50) && test_facility(73))
|
||||
elf_hwcap |= HWCAP_S390_TE;
|
||||
|
||||
/*
|
||||
* Vector extension HWCAP_S390_VXRS is bit 11.
|
||||
*/
|
||||
if (test_facility(129))
|
||||
elf_hwcap |= HWCAP_S390_VXRS;
|
||||
#endif
|
||||
|
||||
get_cpu_id(&cpu_id);
|
||||
|
Reference in New Issue
Block a user