From 25fc0c27f356e3f3659ae854b2b2503bc4497ac8 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Mon, 5 Aug 2013 07:15:15 +0000 Subject: [PATCH] [ARM] Make sure to flush a register location. IMM still doesn't work... --- Source/Core/Core/Src/PowerPC/JitArm32/JitRegCache.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/PowerPC/JitArm32/JitRegCache.cpp b/Source/Core/Core/Src/PowerPC/JitArm32/JitRegCache.cpp index 5aa92c7e5c..87fcb2dd76 100644 --- a/Source/Core/Core/Src/PowerPC/JitArm32/JitRegCache.cpp +++ b/Source/Core/Core/Src/PowerPC/JitArm32/JitRegCache.cpp @@ -183,8 +183,12 @@ ARMReg ArmRegCache::BindToRegister(u32 preg) { emit->STR(ArmCRegs[lastRegIndex].Reg, R9, PPCSTATE_OFF(gpr) + ArmCRegs[lastRegIndex].PPCReg * 4); emit->MOVI2R(ArmCRegs[lastRegIndex].Reg, regs[preg].GetImm()); + + regs[ArmCRegs[lastRegIndex].PPCReg].Flush(); + ArmCRegs[lastRegIndex].PPCReg = preg; ArmCRegs[lastRegIndex].LastLoad = 0; + regs[preg].LoadToReg(lastRegIndex); return ArmCRegs[lastRegIndex].Reg; } @@ -202,7 +206,6 @@ void ArmRegCache::Flush() emit->STR(ArmCRegs[regindex].Reg, R9, PPCSTATE_OFF(gpr) + a * 4); ArmCRegs[regindex].PPCReg = 33; ArmCRegs[regindex].LastLoad = 0; - } regs[a].Flush();