target/i386: Add {hw,sw}_reserved to X86LegacyXSaveArea
This completes the 512 byte structure, allowing the union to be removed. Assert that the structure layout is as expected. Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
a2d64d61c1
commit
6dba8b471c
@ -1425,23 +1425,34 @@ typedef struct {
|
|||||||
*/
|
*/
|
||||||
#define UNASSIGNED_APIC_ID 0xFFFFFFFF
|
#define UNASSIGNED_APIC_ID 0xFFFFFFFF
|
||||||
|
|
||||||
typedef union X86LegacyXSaveArea {
|
typedef struct X86LegacyXSaveArea {
|
||||||
struct {
|
|
||||||
uint16_t fcw;
|
uint16_t fcw;
|
||||||
uint16_t fsw;
|
uint16_t fsw;
|
||||||
uint8_t ftw;
|
uint8_t ftw;
|
||||||
uint8_t reserved;
|
uint8_t reserved;
|
||||||
uint16_t fpop;
|
uint16_t fpop;
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
uint64_t fpip;
|
uint64_t fpip;
|
||||||
uint64_t fpdp;
|
uint64_t fpdp;
|
||||||
|
};
|
||||||
|
struct {
|
||||||
|
uint32_t fip;
|
||||||
|
uint32_t fcs;
|
||||||
|
uint32_t foo;
|
||||||
|
uint32_t fos;
|
||||||
|
};
|
||||||
|
};
|
||||||
uint32_t mxcsr;
|
uint32_t mxcsr;
|
||||||
uint32_t mxcsr_mask;
|
uint32_t mxcsr_mask;
|
||||||
FPReg fpregs[8];
|
FPReg fpregs[8];
|
||||||
uint8_t xmm_regs[16][16];
|
uint8_t xmm_regs[16][16];
|
||||||
};
|
uint32_t hw_reserved[12];
|
||||||
uint8_t data[512];
|
uint32_t sw_reserved[12];
|
||||||
} X86LegacyXSaveArea;
|
} X86LegacyXSaveArea;
|
||||||
|
|
||||||
|
QEMU_BUILD_BUG_ON(sizeof(X86LegacyXSaveArea) != 512);
|
||||||
|
|
||||||
typedef struct X86XSaveHeader {
|
typedef struct X86XSaveHeader {
|
||||||
uint64_t xstate_bv;
|
uint64_t xstate_bv;
|
||||||
uint64_t xcomp_bv;
|
uint64_t xcomp_bv;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user