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
|
||||
|
||||
typedef union X86LegacyXSaveArea {
|
||||
struct {
|
||||
uint16_t fcw;
|
||||
uint16_t fsw;
|
||||
uint8_t ftw;
|
||||
uint8_t reserved;
|
||||
uint16_t fpop;
|
||||
uint64_t fpip;
|
||||
uint64_t fpdp;
|
||||
uint32_t mxcsr;
|
||||
uint32_t mxcsr_mask;
|
||||
FPReg fpregs[8];
|
||||
uint8_t xmm_regs[16][16];
|
||||
typedef struct X86LegacyXSaveArea {
|
||||
uint16_t fcw;
|
||||
uint16_t fsw;
|
||||
uint8_t ftw;
|
||||
uint8_t reserved;
|
||||
uint16_t fpop;
|
||||
union {
|
||||
struct {
|
||||
uint64_t fpip;
|
||||
uint64_t fpdp;
|
||||
};
|
||||
struct {
|
||||
uint32_t fip;
|
||||
uint32_t fcs;
|
||||
uint32_t foo;
|
||||
uint32_t fos;
|
||||
};
|
||||
};
|
||||
uint8_t data[512];
|
||||
uint32_t mxcsr;
|
||||
uint32_t mxcsr_mask;
|
||||
FPReg fpregs[8];
|
||||
uint8_t xmm_regs[16][16];
|
||||
uint32_t hw_reserved[12];
|
||||
uint32_t sw_reserved[12];
|
||||
} X86LegacyXSaveArea;
|
||||
|
||||
QEMU_BUILD_BUG_ON(sizeof(X86LegacyXSaveArea) != 512);
|
||||
|
||||
typedef struct X86XSaveHeader {
|
||||
uint64_t xstate_bv;
|
||||
uint64_t xcomp_bv;
|
||||
|
Loading…
Reference in New Issue
Block a user