Interpreter_FPUtils: Properly update the FPSCR's FEX bit in UpdateFPSCR()
FPSCR.FEX is supposed to be a logical OR of all floating-point exception bits masked by their respective enable bits. Currently UpdateFPSCR() isn't called by anything in the interpreter except for mcrfs and mffs, so this doesn't alter existing behavior that much. However, this will be necessary in future PRs when making the interpreter more accurate in how it sets flags.
This commit is contained in:
parent
c3d88a622d
commit
64d1865448
|
@ -46,7 +46,8 @@ inline void SetFI(int FI)
|
||||||
inline void UpdateFPSCR()
|
inline void UpdateFPSCR()
|
||||||
{
|
{
|
||||||
FPSCR.VX = (FPSCR.Hex & FPSCR_VX_ANY) != 0;
|
FPSCR.VX = (FPSCR.Hex & FPSCR_VX_ANY) != 0;
|
||||||
FPSCR.FEX = 0; // we assume that "?E" bits are always 0
|
FPSCR.FEX = (FPSCR.VX & FPSCR.VE) | (FPSCR.OX & FPSCR.OE) | (FPSCR.UX & FPSCR.UE) |
|
||||||
|
(FPSCR.ZX & FPSCR.ZE) | (FPSCR.XX & FPSCR.XE);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline double ForceSingle(double value)
|
inline double ForceSingle(double value)
|
||||||
|
|
Loading…
Reference in New Issue