1 
2 struct _fpstate {
3 	unsigned short cwd;
4 	unsigned short swd;
5 	unsigned short twd; /* Note this is not the same as the 32bit/x87/FSAVE twd */
6 	unsigned short fop;
7 	unsigned long long rip;
8 	unsigned long long rdp;
9 	unsigned int  mxcsr;
10 	unsigned int  mxcsr_mask;
11 	unsigned int  st_space[32];	/* 8*16 bytes for each FP-reg */
12 	unsigned int  xmm_space[64];	/* 16*16 bytes for each XMM-reg  */
13 	unsigned int  reserved2[24];
14 };
15 
16 struct sigcontext {
17 	unsigned long r8;
18 	unsigned long r9;
19 	unsigned long r10;
20 	unsigned long r11;
21 	unsigned long r12;
22 	unsigned long r13;
23 	unsigned long r14;
24 	unsigned long r15;
25 	unsigned long rdi;
26 	unsigned long rsi;
27 	unsigned long rbp;
28 	unsigned long rbx;
29 	unsigned long rdx;
30 	unsigned long rax;
31 	unsigned long rcx;
32 	unsigned long rsp;
33 	unsigned long rip;
34 	unsigned long eflags;		/* RFLAGS */
35 	unsigned short cs;
36 	unsigned short gs;
37 	unsigned short fs;
38 	unsigned short __pad0;
39 	unsigned long err;
40 	unsigned long trapno;
41 	unsigned long oldmask;
42 	unsigned long cr2;
43 	struct _fpstate *fpstate;	/* zero when no FPU context */
44 	unsigned long reserved1[8];
45 };
46