diff --git a/Source/Core/Core/PowerPC/PowerPC.h b/Source/Core/Core/PowerPC/PowerPC.h index 2b3fe8a98e..5b74df1a58 100644 --- a/Source/Core/Core/PowerPC/PowerPC.h +++ b/Source/Core/Core/PowerPC/PowerPC.h @@ -417,14 +417,25 @@ inline void SetXER(UReg_XER new_xer) PowerPC::ppcState.xer_so_ov = (new_xer.SO << 1) + new_xer.OV; } -inline int GetXER_SO() +inline u32 GetXER_SO() { return PowerPC::ppcState.xer_so_ov >> 1; } -inline void SetXER_SO(int value) +inline void SetXER_SO(bool value) { - PowerPC::ppcState.xer_so_ov |= value << 1; + PowerPC::ppcState.xer_so_ov |= static_cast(value) << 1; +} + +inline u32 GetXER_OV() +{ + return PowerPC::ppcState.xer_so_ov & 1; +} + +inline void SetXER_OV(bool value) +{ + PowerPC::ppcState.xer_so_ov |= static_cast(value); + SetXER_SO(value); } void UpdateFPRF(double dvalue);