diff --git a/arch/arm/src/armv6-m/arm_svcall.c b/arch/arm/src/armv6-m/arm_svcall.c index e61f83ab92d..e86f3fe0654 100644 --- a/arch/arm/src/armv6-m/arm_svcall.c +++ b/arch/arm/src/armv6-m/arm_svcall.c @@ -100,7 +100,7 @@ static void dispatch_syscall(void) " pop {r4, r5}\n" /* Recover R4 and R5 */ " mov r2, r0\n" /* R2=Save return value in R2 */ " mov r0, #3\n" /* R0=SYS_syscall_return */ - " svc 0" /* Return from the syscall */ + " svc %0\n"::"i"(SYS_syscall) /* Return from the SYSCALL */ ); } #endif diff --git a/arch/arm/src/armv7-a/arm_syscall.c b/arch/arm/src/armv7-a/arm_syscall.c index 9888888ef19..c59ca617569 100644 --- a/arch/arm/src/armv7-a/arm_syscall.c +++ b/arch/arm/src/armv7-a/arm_syscall.c @@ -97,7 +97,7 @@ static void dispatch_syscall(void) " add sp, sp, #16\n" /* Destroy the stack frame */ " mov r2, r0\n" /* R2=Save return value in R2 */ " mov r0, #0\n" /* R0=SYS_syscall_return */ - " svc #0x900001\n" /* Return from the SYSCALL */ + " svc %0\n"::"i"(SYS_syscall) /* Return from the SYSCALL */ ); } #endif diff --git a/arch/arm/src/armv7-m/arm_svcall.c b/arch/arm/src/armv7-m/arm_svcall.c index 22fadb0a60d..e4c749fcb9e 100644 --- a/arch/arm/src/armv7-m/arm_svcall.c +++ b/arch/arm/src/armv7-m/arm_svcall.c @@ -108,7 +108,7 @@ static void dispatch_syscall(void) " add sp, sp, r2\n" /* Restore SP */ " mov r2, r0\n" /* R2=Save return value in R2 */ " mov r0, #3\n" /* R0=SYS_syscall_return */ - " svc 0" /* Return from the syscall */ + " svc %0\n"::"i"(SYS_syscall) /* Return from the SYSCALL */ ); } #endif diff --git a/arch/arm/src/armv7-r/arm_syscall.c b/arch/arm/src/armv7-r/arm_syscall.c index fba7fb7b09d..aacd9677173 100644 --- a/arch/arm/src/armv7-r/arm_syscall.c +++ b/arch/arm/src/armv7-r/arm_syscall.c @@ -95,7 +95,7 @@ static void dispatch_syscall(void) " add sp, sp, #16\n" /* Destroy the stack frame */ " mov r2, r0\n" /* R2=Save return value in R2 */ " mov r0, #0\n" /* R0=SYS_syscall_return */ - " svc #0x900001\n" /* Return from the SYSCALL */ + " svc %0\n"::"i"(SYS_syscall) /* Return from the SYSCALL */ ); } #endif diff --git a/arch/arm/src/armv8-m/arm_svcall.c b/arch/arm/src/armv8-m/arm_svcall.c index 2da6156da73..7294fb810f4 100644 --- a/arch/arm/src/armv8-m/arm_svcall.c +++ b/arch/arm/src/armv8-m/arm_svcall.c @@ -107,7 +107,7 @@ static void dispatch_syscall(void) " add sp, sp, r2\n" /* Restore SP */ " mov r2, r0\n" /* R2=Save return value in R2 */ " mov r0, #3\n" /* R0=SYS_syscall_return */ - " svc 0" /* Return from the syscall */ + " svc %0\n"::"i"(SYS_syscall) /* Return from the SYSCALL */ ); } #endif