Interpreter_FPUtils: Unset FPSCR.FI and FPSCR.FR when FPSCR.ZX is set in NI_div()
Another bit of behavior that we weren't performing correctly is the unsetting of FPSCR.FI and FPSCR.FR when FPSCR.ZX is supposed to be set. This is supported in PEM's section 3.3.6.1 where the following is stated: " When a zero divide condition occurs, the following actions are taken: - Zero divide exception condition bit is set FPSCR[ZX] = 1. - FPSCR[FR, FI] are cleared. " And so, this fixes that behavior.
This commit is contained in:
parent
3deadd1fff
commit
7bfeffe32f
|
@ -134,6 +134,8 @@ inline double NI_div(double a, double b)
|
|||
else
|
||||
{
|
||||
SetFPException(FPSCR_ZX);
|
||||
FPSCR.FI = 0;
|
||||
FPSCR.FR = 0;
|
||||
}
|
||||
}
|
||||
else if (std::isinf(a) && std::isinf(b))
|
||||
|
|
Loading…
Reference in New Issue