summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2018-10-15 21:01:35 +0100
committerMerryMage <MerryMage@users.noreply.github.com>2018-10-28 17:57:44 +0000
commit4a2efc8f5e06de966e08cb7c69a97fe1e97bca2d (patch)
tree6046e4f2a7037b80ef13b39f85b56c787180aec3 /Source/Core
parent0e501e5c36062ae2a3d4a004cf7a884c681c8be4 (diff)
Jit_LoadStore: dcbz
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp
index 0710809506..ee09ba4923 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp
@@ -330,10 +330,14 @@ void Jit64::dcbz(UGeckoInstruction inst)
int a = inst.RA;
int b = inst.RB;
- MOV(32, R(RSCRATCH), gpr.R(b));
- if (a)
- ADD(32, R(RSCRATCH), gpr.R(a));
- AND(32, R(RSCRATCH), Imm32(~31));
+ {
+ RCOpArg Ra = a ? gpr.Use(a, RCMode::Read) : RCOpArg::Imm32(0);
+ RCOpArg Rb = gpr.Use(b, RCMode::Read);
+ RegCache::Realize(Ra, Rb);
+
+ MOV_sum(32, RSCRATCH, Ra, Rb);
+ AND(32, R(RSCRATCH), Imm32(~31));
+ }
if (MSR.DR)
{