From fa5499e0467b8e0730003328eab971c21f62b817 Mon Sep 17 00:00:00 2001 From: Ryan Houdek <Sonicadvance1@gmail.com> Date: Thu, 12 Sep 2013 02:40:53 -0500 Subject: [PATCH] [ARM] Disable lmw when fastmem is disabled. --- .../Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStore.cpp | 9 +++++++++ .../Core/Src/PowerPC/JitArm32/JitArm_SystemRegisters.cpp | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStore.cpp b/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStore.cpp index 8a12976680..8fcbcef894 100644 --- a/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStore.cpp +++ b/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_LoadStore.cpp @@ -134,6 +134,9 @@ void JitArm::SafeStoreFromReg(bool fastmem, s32 dest, u32 value, s32 regOffset, void JitArm::stX(UGeckoInstruction inst) { + INSTRUCTION_START + JITDISABLE(bJITLoadStoreOff) + u32 a = inst.RA, b = inst.RB, s = inst.RS; s32 offset = inst.SIMM_16; u32 accessSize = 0; @@ -455,6 +458,12 @@ void JitArm::lXX(UGeckoInstruction inst) // We make the assumption that this pulls from main RAM at /all/ times void JitArm::lmw(UGeckoInstruction inst) { + INSTRUCTION_START + JITDISABLE(bJITLoadStoreOff) + if (!Core::g_CoreStartupParameter.bFastmem){ + Default(inst); return; + } + u32 a = inst.RA; ARMReg rA = gpr.GetReg(); ARMReg rB = gpr.GetReg(); diff --git a/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_SystemRegisters.cpp b/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_SystemRegisters.cpp index f3ab4f695b..5509687184 100644 --- a/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_SystemRegisters.cpp +++ b/Source/Core/Core/Src/PowerPC/JitArm32/JitArm_SystemRegisters.cpp @@ -71,7 +71,6 @@ void JitArm::mfspr(UGeckoInstruction inst) JITDISABLE(bJITSystemRegistersOff) u32 iIndex = (inst.SPRU << 5) | (inst.SPRL & 0x1F); - ARMReg RD = gpr.R(inst.RD); switch (iIndex) { case SPR_WPAR: @@ -81,6 +80,7 @@ void JitArm::mfspr(UGeckoInstruction inst) Default(inst); return; default: + ARMReg RD = gpr.R(inst.RD); LDR(RD, R9, PPCSTATE_OFF(spr) + iIndex * 4); break; }