diff options
| author | MerryMage <MerryMage@users.noreply.github.com> | 2018-10-15 21:01:35 +0100 |
|---|---|---|
| committer | MerryMage <MerryMage@users.noreply.github.com> | 2018-10-28 17:57:44 +0000 |
| commit | 4a2efc8f5e06de966e08cb7c69a97fe1e97bca2d (patch) | |
| tree | 6046e4f2a7037b80ef13b39f85b56c787180aec3 /Source/Core | |
| parent | 0e501e5c36062ae2a3d4a004cf7a884c681c8be4 (diff) | |
Jit_LoadStore: dcbz
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp | 12 |
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) { |
