(struct _fpstate): Add separate struct for x86-64.

This commit is contained in:
Andreas Jaeger 2002-03-21 16:03:56 +00:00
parent 973f52a010
commit 943b72618e

View File

@ -43,9 +43,10 @@ struct _xmmreg
__uint32_t element[4];
};
/* This is FXSAVE layout without 64bit prefix thus 32bit
compatible. This means that the IP and DPs are only 32bit and are
not useful in 64bit space. */
#if __WORDSIZE == 32
struct _fpstate
{
/* Regular FPU environment. */
@ -65,13 +66,10 @@ struct _fpstate
__uint32_t mxcsr;
__uint32_t reserved;
struct _fpxreg _fxsr_st[8];
struct _xmmreg _xmm[8]; /* It's actually 16 for x86-64. */
struct _xmmreg _xmm[8];
__uint32_t padding[56];
};
#if __WORDSIZE == 32
struct sigcontext
{
unsigned short gs, __gsh;
@ -100,6 +98,22 @@ struct sigcontext
#else
struct _fpstate
{
/* Regular FPU environment. */
__uint16_t cwd;
__uint16_t swd;
__uint16_t twd;
__uint16_t fop;
__uint64_t rip;
__uint64_t rdp;
__uint32_t mxcsr;
__uint32_t mxcr_mask;
__uint32_t st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
__uint32_t xmm_space[64]; /* 16*16 bytes for each XMM-reg = 128 bytes */
__uint32_t padding[24];
};
struct sigcontext
{
unsigned short gs, __gsh;