diff --git a/arch/arm/src/armv6-m/up_svcall.c b/arch/arm/src/armv6-m/up_svcall.c index ac5e89d7bb..1151c480e9 100644 --- a/arch/arm/src/armv6-m/up_svcall.c +++ b/arch/arm/src/armv6-m/up_svcall.c @@ -407,7 +407,7 @@ int up_svcall(int irq, FAR void *context) * parameter will reside at an offset of 4 from the stack pointer. */ - regs[REG_R3] = *(uint32_t*)(regs[REG_SP+4]); + regs[REG_R3] = *(uint32_t*)(regs[REG_SP]+4); } break; #endif diff --git a/arch/arm/src/armv7-a/arm_syscall.c b/arch/arm/src/armv7-a/arm_syscall.c index 9fb46f3882..7be976ae07 100644 --- a/arch/arm/src/armv7-a/arm_syscall.c +++ b/arch/arm/src/armv7-a/arm_syscall.c @@ -378,7 +378,7 @@ uint32_t *arm_syscall(uint32_t *regs) * parameter will reside at an offset of 4 from the stack pointer. */ - regs[REG_R3] = *(uint32_t*)(regs[REG_SP+4]); + regs[REG_R3] = *(uint32_t*)(regs[REG_SP]+4); } break; #endif diff --git a/arch/arm/src/armv7-m/up_svcall.c b/arch/arm/src/armv7-m/up_svcall.c index ada12e61a0..e0f0e3aeac 100644 --- a/arch/arm/src/armv7-m/up_svcall.c +++ b/arch/arm/src/armv7-m/up_svcall.c @@ -407,7 +407,7 @@ int up_svcall(int irq, FAR void *context) * parameter will reside at an offset of 4 from the stack pointer. */ - regs[REG_R3] = *(uint32_t*)(regs[REG_SP+4]); + regs[REG_R3] = *(uint32_t*)(regs[REG_SP]+4); } break; #endif