diff --git a/arch/arm/src/armv7-a/arm_syscall.c b/arch/arm/src/armv7-a/arm_syscall.c index 5e61aa456b7..9d2ddf4a1c2 100644 --- a/arch/arm/src/armv7-a/arm_syscall.c +++ b/arch/arm/src/armv7-a/arm_syscall.c @@ -302,9 +302,9 @@ uint32_t *arm_syscall(uint32_t *regs) * CSPR = user mode */ - regs[REG_PC] = regs[REG_R0]; - regs[REG_R0] = regs[REG_R1]; - regs[REG_R1] = regs[REG_R2]; + regs[REG_PC] = regs[REG_R1]; + regs[REG_R0] = regs[REG_R2]; + regs[REG_R1] = regs[REG_R3]; cpsr = regs[REG_CPSR] & ~PSR_MODE_MASK; regs[REG_CPSR] = cpsr | PSR_MODE_USR;