summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2018-10-15 21:02:00 +0100
committerMerryMage <MerryMage@users.noreply.github.com>2018-10-28 17:57:45 +0000
commit457327cbc47dcfde5d0662c49031e89002fd37fe (patch)
tree775ec7afca0bc6c0119de49325b3b90e00ed5ee3 /Source/Core
parent55c21a15a292674222577c81618977c82053d128 (diff)
Jit_FloatingPoint: FloatCompare
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp
index 58fb8f6c00..c738a20cb7 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp
@@ -508,22 +508,22 @@ void Jit64::FloatCompare(UGeckoInstruction inst, bool upper)
output[3 - (next.CRBB & 3)] |= 1 << dst;
}
- fpr.Lock(a, b);
- fpr.BindToRegister(b, true, false);
+ RCOpArg Ra = upper ? fpr.Bind(a, RCMode::Read) : fpr.Use(a, RCMode::Read);
+ RCX64Reg Rb = fpr.Bind(b, RCMode::Read);
+ RegCache::Realize(Ra, Rb);
if (fprf)
AND(32, PPCSTATE(fpscr), Imm32(~FPRF_MASK));
if (upper)
{
- fpr.BindToRegister(a, true, false);
- MOVHLPS(XMM0, fpr.RX(a));
- MOVHLPS(XMM1, fpr.RX(b));
+ MOVHLPS(XMM0, Ra.GetSimpleReg());
+ MOVHLPS(XMM1, Rb);
UCOMISD(XMM1, R(XMM0));
}
else
{
- UCOMISD(fpr.RX(b), fpr.R(a));
+ UCOMISD(Rb, Ra);
}
FixupBranch pNaN, pLesser, pGreater;
@@ -580,7 +580,6 @@ void Jit64::FloatCompare(UGeckoInstruction inst, bool upper)
}
MOV(64, PPCSTATE(cr_val[crf]), R(RSCRATCH));
- fpr.UnlockAll();
}
void Jit64::fcmpX(UGeckoInstruction inst)