summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2018-10-15 21:01:18 +0100
committerMerryMage <MerryMage@users.noreply.github.com>2018-10-28 17:57:44 +0000
commitb7a4296becebf0159fb1d837635a53b2c49e616b (patch)
tree6023bd94437f00b85a0076cd35be77d32c74081d /Source/Core
parentc380764ed075b6b1aa2e67506915792bde863e98 (diff)
Jit_Integer: extsXx
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
index a40ac03dd2..316311cf81 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp
@@ -866,19 +866,19 @@ void Jit64::extsXx(UGeckoInstruction inst)
int a = inst.RA, s = inst.RS;
int size = inst.SUBOP10 == 922 ? 16 : 8;
- if (gpr.R(s).IsImm())
+ if (gpr.IsImm(s))
{
- gpr.SetImmediate32(a, (u32)(s32)(size == 16 ? (s16)gpr.R(s).Imm32() : (s8)gpr.R(s).Imm32()));
+ gpr.SetImmediate32(a, (u32)(s32)(size == 16 ? (s16)gpr.Imm32(s) : (s8)gpr.Imm32(s)));
}
else
{
- gpr.Lock(a, s);
- gpr.BindToRegister(a, a == s, true);
- MOVSX(32, size, gpr.RX(a), gpr.R(s));
+ RCOpArg Rs = gpr.Use(s, RCMode::Read);
+ RCX64Reg Ra = gpr.Bind(a, RCMode::Write);
+ RegCache::Realize(Rs, Ra);
+ MOVSX(32, size, Ra, Rs);
}
if (inst.Rc)
- ComputeRC(gpr.R(a));
- gpr.UnlockAll();
+ ComputeRC(a);
}
void Jit64::subfic(UGeckoInstruction inst)