Core: Remove usage of fpclassify from R4300iOp::CheckFPUResult64

This commit is contained in:
zilmar 2024-01-18 16:53:14 +10:30
parent 71067ccdc4
commit 2231e8d6c0
1 changed files with 2 additions and 3 deletions

View File

@ -3506,8 +3506,7 @@ bool R4300iOp::CheckFPUResult64(double & Result)
{ {
int Except = fetestexcept(FE_ALL_EXCEPT); int Except = fetestexcept(FE_ALL_EXCEPT);
bool DoException = false; bool DoException = false;
int fptype = fpclassify(Result); if ((*((uint64_t *)&Result) & 0x7FF0000000000000ULL) == 0x7FF0000000000000ULL && (*((uint64_t *)&Result) & 0x000FFFFFFFFFFFFFULL) != 0x0000000000000000ULL) // NaN
if (fptype == FP_NAN)
{ {
if (Except == 0 || !SetFPUException()) if (Except == 0 || !SetFPUException())
{ {
@ -3518,7 +3517,7 @@ bool R4300iOp::CheckFPUResult64(double & Result)
DoException = true; DoException = true;
} }
} }
else if (fptype == FP_SUBNORMAL) else if ((*((uint64_t *)&Result) & 0x7FF0000000000000ULL) == 0x0000000000000000ULL && (*((uint64_t *)&Result) & 0x000FFFFFFFFFFFFFULL) != 0x0000000000000000ULL)
{ {
FPStatusReg & StatusReg = (FPStatusReg &)m_FPCR[31]; FPStatusReg & StatusReg = (FPStatusReg &)m_FPCR[31];
if (!StatusReg.FlushSubnormals || StatusReg.Enable.Underflow || StatusReg.Enable.Inexact) if (!StatusReg.FlushSubnormals || StatusReg.Enable.Underflow || StatusReg.Enable.Inexact)