diff options
Diffstat (limited to 'arch/arm/lib/semihosting.c')
-rw-r--r-- | arch/arm/lib/semihosting.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/lib/semihosting.c b/arch/arm/lib/semihosting.c index 3dee7d51b3..939c0f7513 100644 --- a/arch/arm/lib/semihosting.c +++ b/arch/arm/lib/semihosting.c @@ -39,9 +39,10 @@ /* * Call the handler */ -static noinline long smh_trap(unsigned int sysnum, void *addr) +static long smh_trap(unsigned int sysnum, void *addr) { register long result asm("r0"); + register void *_addr asm("r1") = addr; /* * We need a memory clobber (aka compiler barrier) for two reasons: @@ -53,7 +54,7 @@ static noinline long smh_trap(unsigned int sysnum, void *addr) */ asm volatile (SMH_TRAP : "=r" (result) - : "0"(sysnum), "r"(USE_PTR(addr)) + : "0"(sysnum), "r"(USE_PTR(_addr)) : "memory"); return result; |