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:
@@ -7,10 +7,14 @@
|
||||
#define _ASM_S390_SIGCONTEXT_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define __NUM_GPRS 16
|
||||
#define __NUM_FPRS 16
|
||||
#define __NUM_ACRS 16
|
||||
#define __NUM_GPRS 16
|
||||
#define __NUM_FPRS 16
|
||||
#define __NUM_ACRS 16
|
||||
#define __NUM_VXRS 32
|
||||
#define __NUM_VXRS_LOW 16
|
||||
#define __NUM_VXRS_HIGH 16
|
||||
|
||||
#ifndef __s390x__
|
||||
|
||||
@@ -59,6 +63,16 @@ typedef struct
|
||||
_s390_fp_regs fpregs;
|
||||
} _sigregs;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
#ifndef __s390x__
|
||||
unsigned long gprs_high[__NUM_GPRS];
|
||||
#endif
|
||||
unsigned long long vxrs_low[__NUM_VXRS_LOW];
|
||||
__vector128 vxrs_high[__NUM_VXRS_HIGH];
|
||||
unsigned char __reserved[128];
|
||||
} _sigregs_ext;
|
||||
|
||||
struct sigcontext
|
||||
{
|
||||
unsigned long oldmask[_SIGCONTEXT_NSIG_WORDS];
|
||||
|
Reference in New Issue
Block a user