diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp index 3cda91a830..aec4b9d974 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp @@ -388,13 +388,12 @@ void Jit64::mtmsr(UGeckoInstruction inst) { INSTRUCTION_START JITDISABLE(bJITSystemRegistersOff); - if (!gpr.R(inst.RS).IsImm()) + { - gpr.Lock(inst.RS); - gpr.BindToRegister(inst.RS, true, false); + RCOpArg Rs = gpr.BindOrImm(inst.RS, RCMode::Read); + RegCache::Realize(Rs); + MOV(32, PPCSTATE(msr), Rs); } - MOV(32, PPCSTATE(msr), gpr.R(inst.RS)); - gpr.UnlockAll(); gpr.Flush(); fpr.Flush();