aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/alpha/syscall.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha/syscall.S')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscall.S25
1 files changed, 12 insertions, 13 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/syscall.S b/sysdeps/unix/sysv/linux/alpha/syscall.S
index 54a8484c58..c80a523239 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscall.S
+++ b/sysdeps/unix/sysv/linux/alpha/syscall.S
@@ -41,21 +41,20 @@ Cambridge, MA 02139, USA. */
*/
-1: br gp,2f
-2: ldgp gp,0(gp)
- jmp zero,syscall_error
-
-
-ENTRY (__syscall)
- bis a0,a0,v0 # Syscall number -> v0
- bis a1,a1,a0 # arg1-arg5 -> a0-a4
- bis a2,a2,a1
- bis a3,a3,a2
- bis a4,a4,a3
- bis a5,a5,a4
+LEAF(__syscall, 0)
+ bis a0, a0, v0 # Syscall number -> v0
+ bis a1, a1, a0 # arg1-arg5 -> a0-a4
+ bis a2, a2, a1
+ bis a3, a3, a2
+ bis a4, a4, a3
+ bis a5, a5, a4
call_pal PAL_callsys # Invoke system call
- bne a3,1b
+ bne a3, error
ret
+error: br gp, 2f
+2: ldgp gp, 0(gp)
+ jmp zero, syscall_error
+
weak_alias(__syscall, syscall)