Merge pull request #3329 from lioncash/cast

Interpreter: Get rid of some aliasing casts
This commit is contained in:
flacs 2015-12-10 07:03:48 +01:00
commit 849bfc51f6
1 changed files with 2 additions and 2 deletions

View File

@ -172,7 +172,7 @@ void Interpreter::fctiwx(UGeckoInstruction _inst)
// based on HW tests // based on HW tests
// FPRF is not affected // FPRF is not affected
riPS0(_inst.FD) = 0xfff8000000000000ull | value; riPS0(_inst.FD) = 0xfff8000000000000ull | value;
if (value == 0 && ( (*(u64*)&b) & DOUBLE_SIGN )) if (value == 0 && std::signbit(b))
riPS0(_inst.FD) |= 0x100000000ull; riPS0(_inst.FD) |= 0x100000000ull;
if (_inst.Rc) if (_inst.Rc)
Helper_UpdateCR1(); Helper_UpdateCR1();
@ -218,7 +218,7 @@ void Interpreter::fctiwzx(UGeckoInstruction _inst)
// based on HW tests // based on HW tests
// FPRF is not affected // FPRF is not affected
riPS0(_inst.FD) = 0xfff8000000000000ull | value; riPS0(_inst.FD) = 0xfff8000000000000ull | value;
if (value == 0 && ( (*(u64*)&b) & DOUBLE_SIGN )) if (value == 0 && std::signbit(b))
riPS0(_inst.FD) |= 0x100000000ull; riPS0(_inst.FD) |= 0x100000000ull;
if (_inst.Rc) if (_inst.Rc)
Helper_UpdateCR1(); Helper_UpdateCR1();