Add alignment specifiers for gcc specifically to match MSVC alignments

This commit is contained in:
Jan 2021-03-04 03:29:16 -08:00
parent 3c9a9c038d
commit 35d9110783
4 changed files with 11 additions and 11 deletions

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
make -C build -j$(nproc) all make -C build -j$(nproc) config=release_x86 all

View File

@ -613,7 +613,7 @@ namespace IW4
unsigned int loadBits[2]; unsigned int loadBits[2];
}; };
struct GfxDrawSurfFields struct gcc_align(8) GfxDrawSurfFields
{ {
uint64_t objectId : 16; uint64_t objectId : 16;
uint64_t reflectionProbeIndex : 8; uint64_t reflectionProbeIndex : 8;
@ -630,8 +630,8 @@ namespace IW4
union GfxDrawSurf union GfxDrawSurf
{ {
GfxDrawSurfFields fields; gcc_align(8) GfxDrawSurfFields fields;
uint64_t packed; gcc_align(8) uint64_t packed;
}; };
struct MaterialInfo struct MaterialInfo

View File

@ -603,7 +603,7 @@ namespace T6
}; };
struct GfxDrawSurfFields struct gcc_align(8) GfxDrawSurfFields
{ {
uint64_t objectId : 16; uint64_t objectId : 16;
uint64_t customIndex : 9; uint64_t customIndex : 9;
@ -619,8 +619,8 @@ namespace T6
union GfxDrawSurf union GfxDrawSurf
{ {
GfxDrawSurfFields fields; gcc_align(8) GfxDrawSurfFields fields;
uint64_t packed; gcc_align(8) uint64_t packed;
}; };
@ -1442,8 +1442,8 @@ namespace T6
GenericEventHandler* onEvent; GenericEventHandler* onEvent;
ItemKeyHandler* onKey; ItemKeyHandler* onKey;
ExpressionStatement visibleExp; ExpressionStatement visibleExp;
uint64_t showBits; gcc_align(8) uint64_t showBits;
uint64_t hideBits; gcc_align(8) uint64_t hideBits;
const char* allowedBinding; const char* allowedBinding;
const char* soundName; const char* soundName;
int imageTrack; int imageTrack;
@ -3581,7 +3581,7 @@ namespace T6
}; };
union __m128 union gcc_align(8) __m128
{ {
float m128_f32[4]; float m128_f32[4];
uint64_t m128_u64[2]; uint64_t m128_u64[2];

View File

@ -24,7 +24,7 @@
#define gcc_align(x) #define gcc_align(x)
#else #else
#define type_align(x) __attribute__((__aligned__(x))) #define type_align(x) __attribute__((__aligned__(x)))
#define tdef_align(x) __attribute__((__aligned__(x))) #define tdef_align(x) /*__attribute__((__aligned__(x)))*/
#define memb_align(x) __attribute__((__aligned__(x))) #define memb_align(x) __attribute__((__aligned__(x)))
#define gcc_align(x) __attribute__((__aligned__(x))) #define gcc_align(x) __attribute__((__aligned__(x)))
#endif #endif