Jit64: Fix minor fmaddXX inefficiencies
This commit is contained in:
parent
93e636abc3
commit
08b358a829
|
@ -421,7 +421,7 @@ void Jit64::fmaddXX(UGeckoInstruction inst)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (single && round_input)
|
if (round_input)
|
||||||
Force25BitPrecision(result_xmm, Rc, scratch_xmm);
|
Force25BitPrecision(result_xmm, Rc, scratch_xmm);
|
||||||
else
|
else
|
||||||
MOVAPD(result_xmm, Rc);
|
MOVAPD(result_xmm, Rc);
|
||||||
|
@ -475,20 +475,16 @@ void Jit64::fmaddXX(UGeckoInstruction inst)
|
||||||
if (SConfig::GetInstance().bAccurateNaNs && result_xmm == XMM0)
|
if (SConfig::GetInstance().bAccurateNaNs && result_xmm == XMM0)
|
||||||
{
|
{
|
||||||
// HandleNaNs needs to clobber XMM0
|
// HandleNaNs needs to clobber XMM0
|
||||||
MOVAPD(XMM1, R(result_xmm));
|
MOVAPD(Rd, R(result_xmm));
|
||||||
result_xmm = XMM1;
|
result_xmm = Rd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HandleNaNs(inst, result_xmm, result_xmm, XMM0);
|
||||||
|
|
||||||
if (single)
|
if (single)
|
||||||
{
|
|
||||||
HandleNaNs(inst, result_xmm, result_xmm, XMM0);
|
|
||||||
FinalizeSingleResult(Rd, R(result_xmm), packed, true);
|
FinalizeSingleResult(Rd, R(result_xmm), packed, true);
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
HandleNaNs(inst, result_xmm, result_xmm, XMM0);
|
|
||||||
FinalizeDoubleResult(Rd, R(result_xmm));
|
FinalizeDoubleResult(Rd, R(result_xmm));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Jit64::fsign(UGeckoInstruction inst)
|
void Jit64::fsign(UGeckoInstruction inst)
|
||||||
|
|
Loading…
Reference in New Issue