From 21b9222357165070842290e3bd804388b57bfb49 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Sat, 27 Apr 2013 02:50:35 -0700 Subject: [PATCH] Fix entering SWI mode --- src/arm/arm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arm/arm.c b/src/arm/arm.c index a9fce845d..70600a9f6 100644 --- a/src/arm/arm.c +++ b/src/arm/arm.c @@ -145,7 +145,7 @@ void ARMRaiseSWI(struct ARMCore* cpu) { } ARMSetPrivilegeMode(cpu, MODE_SUPERVISOR); cpu->cpsr.priv = MODE_IRQ; - cpu->gprs[ARM_LR] = cpu->gprs[ARM_PC] - instructionWidth + WORD_SIZE_ARM; + cpu->gprs[ARM_LR] = cpu->gprs[ARM_PC] - instructionWidth; cpu->gprs[ARM_PC] = BASE_SWI + WORD_SIZE_ARM; cpu->memory->setActiveRegion(cpu->memory, cpu->gprs[ARM_PC]); _ARMSetMode(cpu, MODE_ARM);