diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2016-08-14 15:17:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-14 15:17:32 -0700 |
commit | c3c6ac38e0a02b6400a73e218b0f3d90e9c08af8 (patch) | |
tree | 75f19adc5a46334a3794221dabc8624b3bb6ceeb /src | |
parent | 3c3a6cb2afe37cdf06fb817a0e508c2fcfbef951 (diff) | |
parent | 50407a8dc86685d6f261680162823dfc44377285 (diff) |
Merge pull request #2004 from MerryMage/stm
Dyncom: Correct implementation of STM for R15
Diffstat (limited to 'src')
-rw-r--r-- | src/core/arm/dyncom/arm_dyncom_interpreter.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp index 01d5d478e..6d5fb7aec 100644 --- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp +++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp @@ -3228,7 +3228,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { addr += 4; } if (BIT(inst_cream->inst, 15)) { - cpu->WriteMemory32(addr, cpu->Reg_usr[1] + 8); + cpu->WriteMemory32(addr, cpu->Reg[15] + 8); } } else { for (int i = 0; i < 15; i++) { @@ -3243,8 +3243,9 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { } // Check PC reg - if (BIT(inst_cream->inst, 15)) - cpu->WriteMemory32(addr, cpu->Reg_usr[1] + 8); + if (BIT(inst_cream->inst, 15)) { + cpu->WriteMemory32(addr, cpu->Reg[15] + 8); + } } } cpu->Reg[15] += cpu->GetInstructionSize(); |