summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2018-10-15 21:01:34 +0100
committerMerryMage <MerryMage@users.noreply.github.com>2018-10-28 17:57:44 +0000
commit0e501e5c36062ae2a3d4a004cf7a884c681c8be4 (patch)
treed7b91ec8e24d5d202d04e35f2866e0f77f2efda3 /Source/Core
parent534db3b2ed34e5a13691b902c8f14ce951bedbf1 (diff)
Jit_LoadStore: dcbx
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp
index a41a83f5a2..0710809506 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp
@@ -269,10 +269,12 @@ void Jit64::dcbx(UGeckoInstruction inst)
X64Reg addr = RSCRATCH;
X64Reg value = RSCRATCH2;
- X64Reg tmp = gpr.GetFreeXReg();
- gpr.FlushLockX(tmp);
+ RCOpArg Ra = inst.RA ? gpr.Use(inst.RA, RCMode::Read) : RCOpArg::Imm32(0);
+ RCOpArg Rb = gpr.Use(inst.RB, RCMode::Read);
+ RCX64Reg tmp = gpr.Scratch(gpr.GetFreeXReg());
+ RegCache::Realize(Ra, Rb, tmp);
- MOV_sum(32, addr, inst.RA ? gpr.R(inst.RA) : Imm32(0), gpr.R(inst.RB));
+ MOV_sum(32, addr, Ra, Rb);
// Check whether a JIT cache line needs to be invalidated.
LEA(32, value, MScaled(addr, SCALE_8, 0)); // addr << 3 (masks the first 3 bits)
@@ -297,8 +299,6 @@ void Jit64::dcbx(UGeckoInstruction inst)
c = J(true);
SwitchToNearCode();
SetJumpTarget(c);
-
- gpr.UnlockAllX();
}
void Jit64::dcbt(UGeckoInstruction inst)