about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-06-10 21:04:36 +0000
committerUlrich Drepper <drepper@redhat.com>2000-06-10 21:04:36 +0000
commitd049b7124780b0f3b34ce09c5470797b7c892a08 (patch)
treedfa2b8f43ce60b73fb3630eeaab5c538b4563360
parent425638fbc756082c8f828b2931787f7128afa1e8 (diff)
downloadglibc-d049b7124780b0f3b34ce09c5470797b7c892a08.tar.gz
glibc-d049b7124780b0f3b34ce09c5470797b7c892a08.tar.xz
glibc-d049b7124780b0f3b34ce09c5470797b7c892a08.zip
Update
2000-06-10  David Mosberger  <davidm@hpl.hp.com>

	* sysdeps/unix/sysv/linux/ia64/syscall.S: Fix it so it actually works.
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscall.S27
2 files changed, 10 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index 31a8ca0013..3f40c9518a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2000-06-10  David Mosberger  <davidm@hpl.hp.com>
+
+	* sysdeps/unix/sysv/linux/ia64/syscall.S: Fix it so it actually works.
+
 2000-06-10  Ulrich Drepper  <drepper@redhat.com>
 
 	* iconv/gconv_simple.c: Fix various small bugs in several
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)