mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 11:20:07 +00:00
(struct _fpstate): Add separate struct for x86-64.
This commit is contained in:
parent
973f52a010
commit
943b72618e
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user