From e812a628794b18180137e17c2eac24a190be86c9 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Mon, 15 Oct 2018 21:02:03 +0100 Subject: [PATCH] Jit_FloatingPoint: frsqrtex --- .../Core/PowerPC/Jit64/Jit_FloatingPoint.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp index 778fdd15fd..dc20bf129e 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_FloatingPoint.cpp @@ -657,15 +657,15 @@ void Jit64::frsqrtex(UGeckoInstruction inst) int b = inst.FB; int d = inst.FD; - gpr.FlushLockX(RSCRATCH_EXTRA); - fpr.Lock(b, d); - fpr.BindToRegister(d); - MOVAPD(XMM0, fpr.R(b)); + RCX64Reg scratch_guard = gpr.Scratch(RSCRATCH_EXTRA); + RCOpArg Rb = fpr.Use(b, RCMode::Read); + RCX64Reg Rd = fpr.Bind(d, RCMode::Write); + RegCache::Realize(scratch_guard, Rb, Rd); + + MOVAPD(XMM0, Rb); CALL(asm_routines.frsqrte); - MOVSD(fpr.R(d), XMM0); - SetFPRFIfNeeded(fpr.RX(d)); - fpr.UnlockAll(); - gpr.UnlockAllX(); + MOVSD(Rd, XMM0); + SetFPRFIfNeeded(Rd); } void Jit64::fresx(UGeckoInstruction inst)