diff options
| author | MerryMage <MerryMage@users.noreply.github.com> | 2018-10-15 21:01:18 +0100 |
|---|---|---|
| committer | MerryMage <MerryMage@users.noreply.github.com> | 2018-10-28 17:57:44 +0000 |
| commit | b7a4296becebf0159fb1d837635a53b2c49e616b (patch) | |
| tree | 6023bd94437f00b85a0076cd35be77d32c74081d /Source/Core | |
| parent | c380764ed075b6b1aa2e67506915792bde863e98 (diff) | |
Jit_Integer: extsXx
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp | 14 |
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) |
