diff options
| author | MerryMage <MerryMage@users.noreply.github.com> | 2018-10-15 21:02:00 +0100 |
|---|---|---|
| committer | MerryMage <MerryMage@users.noreply.github.com> | 2018-10-28 17:57:45 +0000 |
| commit | 457327cbc47dcfde5d0662c49031e89002fd37fe (patch) | |
| tree | 775ec7afca0bc6c0119de49325b3b90e00ed5ee3 /Source/Core | |
| parent | 55c21a15a292674222577c81618977c82053d128 (diff) | |
Jit_FloatingPoint: FloatCompare
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp | 13 |
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) |
