about summary refs log tree commit diff
path: root/sysdeps/unix
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscall.S27
1 files changed, 6 insertions, 21 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/syscall.S b/sysdeps/unix/sysv/linux/ia64/syscall.S
index 25f81cd61a..b632514033 100644
--- a/sysdeps/unix/sysv/linux/ia64/syscall.S
+++ b/sysdeps/unix/sysv/linux/ia64/syscall.S
@@ -1,6 +1,6 @@
 /* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Jes Sorensen (Jes.Sorensen@cern.ch)
+   Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -19,27 +19,12 @@
 
 #include <sysdep.h>
 
-/*
- * This is ugly as hell, but we need to take out the syscall number and
- * rotate the input arguments one register before performing the syscall
- */
-ENTRY(__syscall)
+ENTRY(syscall)
+	alloc r2=ar.pfs,1,0,8,0
 	mov r15=r32		/* syscall number */
-	;;
-	mov r32=r33
-	;;
-	mov r33=r34
-	;;
-	mov r34=r35
-	;;
-	mov r35=r36
-	;;
-	mov r36=r37
 	break __BREAK_SYSCALL
-	cmp.ne p6,p0=-1,r10	/* r10 = -1 on error */
 	;;
+	cmp.ne p6,p0=-1,r10	/* r10 = -1 on error */
 (p6)	ret
-(p7)	br.cond.spnt.few __syscall_error
-PSEUDO_END(__syscall)
-
-weak_alias (__syscall, syscall)
+	br.cond.spnt.few __syscall_error
+PSEUDO_END(syscall)