mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-04-23 13:00:44 +00:00
Jit64: Replace MOVSD with MOVAPD in software FMA
Should be a little faster by avoiding false dependencies. Note that there is one remaining MOVSD that really needs to be a MOVSD.
This commit is contained in:
parent
caad84c636
commit
d5067b6276
@ -443,6 +443,8 @@ void Jit64::fmaddXX(UGeckoInstruction inst)
|
||||
{
|
||||
if (round_input)
|
||||
Force25BitPrecision(XMM1, Rc, XMM2);
|
||||
else if (Rc.IsSimpleReg())
|
||||
MOVAPD(XMM1, Rc);
|
||||
else
|
||||
MOVSD(XMM1, Rc);
|
||||
}
|
||||
@ -461,8 +463,15 @@ void Jit64::fmaddXX(UGeckoInstruction inst)
|
||||
|
||||
if (i == 0)
|
||||
{
|
||||
MOVSD(XMM0, Ra);
|
||||
MOVSD(XMM2, Rb);
|
||||
if (Ra.IsSimpleReg())
|
||||
MOVAPD(XMM0, Ra);
|
||||
else
|
||||
MOVSD(XMM0, Ra);
|
||||
|
||||
if (Rb.IsSimpleReg())
|
||||
MOVAPD(XMM2, Rb);
|
||||
else
|
||||
MOVSD(XMM2, Rb);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -480,9 +489,14 @@ void Jit64::fmaddXX(UGeckoInstruction inst)
|
||||
}
|
||||
|
||||
if (packed)
|
||||
{
|
||||
// result_xmm's upper lane has the result of the first loop iteration
|
||||
MOVSD(R(result_xmm), XMM0);
|
||||
}
|
||||
else
|
||||
{
|
||||
DEBUG_ASSERT(result_xmm == XMM0);
|
||||
}
|
||||
|
||||
if (madds_accurate_nans)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user