target-i386: Define MMREG_UNION macro

This will simplify the definitions of ZMMReg and MMXReg.

Backports commit 31d414d649b289ff9d1e048c41554298d1094fd3 from qemu
This commit is contained in:
Eduardo Habkost 2018-02-18 23:55:26 -05:00 committed by Lioncash
parent 831fdde7fa
commit 0b1f839189
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -722,23 +722,18 @@ typedef struct SegmentCache {
uint32_t flags; uint32_t flags;
} SegmentCache; } SegmentCache;
typedef union { #define MMREG_UNION(bits) \
uint8_t _b[64]; union { \
uint16_t _w[32]; uint8_t _b[(bits)/8]; \
uint32_t _l[16]; uint16_t _w[(bits)/16]; \
uint64_t _q[8]; uint32_t _l[(bits)/32]; \
float32 _s[16]; uint64_t _q[(bits)/64]; \
float64 _d[8]; float32 _s[(bits)/32]; \
} ZMMReg; float64 _d[(bits)/64]; \
}
typedef union { typedef MMREG_UNION(512) ZMMReg;
uint8_t _b[8]; typedef MMREG_UNION(64) MMXReg;
uint16_t _w[4];
uint32_t _l[2];
uint64_t _q[1];
float32 _s[2];
float64 _d[1];
} MMXReg;
typedef struct BNDReg { typedef struct BNDReg {
uint64_t lb; uint64_t lb;