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 ca0cb09180a..b7be60b3132 100644 --- a/arch/arm/src/armv7-a/arm_syscall.c +++ b/arch/arm/src/armv7-a/arm_syscall.c @@ -98,7 +98,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 380a66a61a6..e9192dd436f 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 ec03ce0cfe8..dd3c9df2c26 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