mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-10-14 02:17:36 +08:00
Add WORD array to MMX union and static assertions to ensure data type packing is arranged as expected
This commit is contained in:
@@ -29,50 +29,65 @@ typedef union {
|
||||
struct {
|
||||
uint32_t d0,d1;
|
||||
} ud;
|
||||
static_assert(sizeof(ud) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
int32_t d0,d1;
|
||||
} sd;
|
||||
static_assert(sizeof(sd) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
uint16_t w0,w1,w2,w3;
|
||||
} uw;
|
||||
static_assert(sizeof(uw) == 8, "MMX packing error");
|
||||
|
||||
uint16_t uwa[4]; /* for PSHUFW */
|
||||
static_assert(sizeof(uwa) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
int16_t w0,w1,w2,w3;
|
||||
} sw;
|
||||
static_assert(sizeof(sw) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
uint8_t b0,b1,b2,b3,b4,b5,b6,b7;
|
||||
} ub;
|
||||
static_assert(sizeof(ub) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
int8_t b0,b1,b2,b3,b4,b5,b6,b7;
|
||||
} sb;
|
||||
static_assert(sizeof(sb) == 8, "MMX packing error");
|
||||
#else
|
||||
struct {
|
||||
uint32_t d1,d0;
|
||||
} ud;
|
||||
static_assert(sizeof(ud) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
int32_t d1,d0;
|
||||
} sd;
|
||||
static_assert(sizeof(sd) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
uint16_t w3,w2,w1,w0;
|
||||
} uw;
|
||||
static_assert(sizeof(uw) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
uint16_t w3,w2,w1,w0;
|
||||
} sw;
|
||||
static_assert(sizeof(sw) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
uint8_t b7,b6,b5,b4,b3,b2,b1,b0;
|
||||
} ub;
|
||||
static_assert(sizeof(ub) == 8, "MMX packing error");
|
||||
|
||||
struct {
|
||||
uint8_t b7,b6,b5,b4,b3,b2,b1,b0;
|
||||
} sb;
|
||||
static_assert(sizeof(sb) == 8, "MMX packing error");
|
||||
#endif
|
||||
|
||||
} MMX_reg;
|
||||
|
Reference in New Issue
Block a user