diff options
author | Lioncash <mathew1800@gmail.com> | 2015-07-21 05:49:05 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2015-07-21 05:49:05 -0400 |
commit | 043b2f882aa48488ba632621cd62c5784e1c8fab (patch) | |
tree | bd812292360525f0172a469e11f81ac57339852d /src/core/arm/dyncom/arm_dyncom_interpreter.cpp | |
parent | a48aa4f9243ef2bcf6d57b833e8dc89982f296b5 (diff) | |
parent | c2689b8c2c6f0ac023eddb25d98da6bc1fa95205 (diff) |
Merge pull request #964 from lioncash/svc
dyncom: Pass SVC immediates directly.
Diffstat (limited to 'src/core/arm/dyncom/arm_dyncom_interpreter.cpp')
-rw-r--r-- | src/core/arm/dyncom/arm_dyncom_interpreter.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp index e40f3fa9..785f3956 100644 --- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp +++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp @@ -6248,7 +6248,8 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { SWI_INST: { if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) { - SVC::CallSVC(Memory::Read32(cpu->Reg[15])); + swi_inst* const inst_cream = (swi_inst*)inst_base->component; + SVC::CallSVC(inst_cream->num & 0xFFFF); } cpu->Reg[15] += GET_INST_SIZE(cpu); |