summaryrefslogtreecommitdiffstats
path: root/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2015-07-29 10:13:46 +0200
committerLioncash <mathew1800@gmail.com>2015-07-29 16:57:47 +0200
commit2e420aba3c007bff84988cf1c281db73c12c7f9a (patch)
tree039f0d852266d40de51982330d04aa54b68b8cef /src/core/arm/dyncom/arm_dyncom_interpreter.cpp
parentMerge pull request #1007 from lioncash/pc (diff)
downloadyuzu-2e420aba3c007bff84988cf1c281db73c12c7f9a.tar
yuzu-2e420aba3c007bff84988cf1c281db73c12c7f9a.tar.gz
yuzu-2e420aba3c007bff84988cf1c281db73c12c7f9a.tar.bz2
yuzu-2e420aba3c007bff84988cf1c281db73c12c7f9a.tar.lz
yuzu-2e420aba3c007bff84988cf1c281db73c12c7f9a.tar.xz
yuzu-2e420aba3c007bff84988cf1c281db73c12c7f9a.tar.zst
yuzu-2e420aba3c007bff84988cf1c281db73c12c7f9a.zip
Diffstat (limited to 'src/core/arm/dyncom/arm_dyncom_interpreter.cpp')
-rw-r--r--src/core/arm/dyncom/arm_dyncom_interpreter.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
index 0c20c2bc3..759ef7285 100644
--- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
+++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
@@ -5997,7 +5997,12 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
ldst_inst* inst_cream = (ldst_inst*)inst_base->component;
inst_cream->get_addr(cpu, inst_cream->inst, addr);
- unsigned int value = cpu->Reg[BITS(inst_cream->inst, 12, 15)];
+ unsigned int reg = BITS(inst_cream->inst, 12, 15);
+ unsigned int value = cpu->Reg[reg];
+
+ if (reg == 15)
+ value += 2 * cpu->GetInstructionSize();
+
cpu->WriteMemory32(addr, value);
}
cpu->Reg[15] += cpu->GetInstructionSize();