diff options
Diffstat (limited to 'libc/sysdeps/linux/arm/syscall.c')
-rw-r--r-- | libc/sysdeps/linux/arm/syscall.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/libc/sysdeps/linux/arm/syscall.c b/libc/sysdeps/linux/arm/syscall.c index 33d9f5fea..60fbcf89b 100644 --- a/libc/sysdeps/linux/arm/syscall.c +++ b/libc/sysdeps/linux/arm/syscall.c @@ -15,14 +15,14 @@ long syscall(long sysnum, long a, long b, long c, long d, long e, long f) { #if !defined(__thumb__) - register long _r0 asm("r0")=(long)(sysnum); - register long _r6 asm("r6")=(long)(f); - register long _r5 asm("r5")=(long)(e); - register long _r4 asm("r4")=(long)(d); - register long _r3 asm("r3")=(long)(c); - register long _r2 asm("r2")=(long)(b); - register long _r1 asm("r1")=(long)(a); - asm volatile( + register long _r0 __asm__("r0")=(long)(sysnum); + register long _r6 __asm__("r6")=(long)(f); + register long _r5 __asm__("r5")=(long)(e); + register long _r4 __asm__("r4")=(long)(d); + register long _r3 __asm__("r3")=(long)(c); + register long _r2 __asm__("r2")=(long)(b); + register long _r1 __asm__("r1")=(long)(a); + __asm__ __volatile__( "swi %1" : "=r"(_r0) : "i"(__NR_syscall), "r"(_r0), "r"(_r1), @@ -30,14 +30,14 @@ long syscall(long sysnum, long a, long b, long c, long d, long e, long f) "r"(_r6) : "memory"); #else - register long _r7 asm("r7")=(long)(sysnum); - register long _r5 asm("r5")=(long)(f); - register long _r4 asm("r4")=(long)(e); - register long _r3 asm("r3")=(long)(d); - register long _r2 asm("r2")=(long)(c); - register long _r1 asm("r1")=(long)(b); - register long _r0 asm("r0")=(long)(a); - asm volatile( + register long _r7 __asm__("r7")=(long)(sysnum); + register long _r5 __asm__("r5")=(long)(f); + register long _r4 __asm__("r4")=(long)(e); + register long _r3 __asm__("r3")=(long)(d); + register long _r2 __asm__("r2")=(long)(c); + register long _r1 __asm__("r1")=(long)(b); + register long _r0 __asm__("r0")=(long)(a); + __asm__ __volatile__( "swi 0" : "=r"(_r0) : "r"(_r0), "r"(_r1), "r"(_r2), "r"(_r3), |