Fix MacroInterpreter::MethodAddress Bitfield Padding

Due to compiler alignment issues, the bitfield member `increment` of `MacroInterpreter::MethodAddress` was mistakenly padded and moved to the next byte. This has now been fixed by making its type `u16` like the member prior to it to prevent natural alignment from kicking in.
This commit is contained in:
PixelyIon 2021-11-12 00:53:46 +05:30
parent 26966287c7
commit 107d337d77

View File

@ -90,7 +90,6 @@ namespace skyline::soc::gm20b::engine::maxwell3d {
} bitfield; } bitfield;
}; };
static_assert(sizeof(Opcode) == sizeof(u32)); static_assert(sizeof(Opcode) == sizeof(u32));
#pragma pack(pop)
/** /**
* @brief Metadata about the Maxwell 3D method to be called in 'Send' * @brief Metadata about the Maxwell 3D method to be called in 'Send'
@ -99,9 +98,11 @@ namespace skyline::soc::gm20b::engine::maxwell3d {
u32 raw; u32 raw;
struct { struct {
u16 address : 12; u16 address : 12;
u8 increment : 6; u16 increment : 6;
}; };
}; };
static_assert(sizeof(MethodAddress) == sizeof(u32));
#pragma pack(pop)
Maxwell3D &maxwell3D; //!< A reference to the parent engine object Maxwell3D &maxwell3D; //!< A reference to the parent engine object