summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-03-06 01:34:09 +0000
committerRoland McGrath <roland@gnu.org>2006-03-06 01:34:09 +0000
commit043cee3700d01624d694d8e1afc76a666309f89c (patch)
treeaa2f8a2b421429ca84eba888fefd946df6e3d669 /sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
parenta26c855c73bf2329496f9b74535045c22c92a12d (diff)
* shlib-versions: Use sparc64.*- for CPU patterns.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S26
1 files changed, 14 insertions, 12 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S b/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
index 27ea9f8912..dbe0872616 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
@@ -19,20 +19,22 @@
#include <sysdep.h>
- .globl __libc_pipe
-ENTRY (__libc_pipe)
- mov %o0, %o2 /* Save PIPEDES. */
- mov SYS_ify(pipe),%g1
- ta 0x10
- bcs __syscall_error_handler
- nop
- st %o0, [%o2] /* PIPEDES[0] = %o0; */
- st %o1, [%o2 + 4] /* PIPEDES[1] = %o1; */
+ .text
+ .globl __syscall_error
+ENTRY(__libc_pipe)
+ mov %o0, %o2 /* Save PIPEDES. */
+ mov SYS_ify(pipe),%g1
+ ta 0x10
+ bcc 1f
+ mov %o7, %g1
+ call __syscall_error
+ mov %g1, %o7
+1: st %o0, [%o2] /* PIPEDES[0] = %o0; */
+ st %o1, [%o2 + 4] /* PIPEDES[1] = %o1; */
retl
- clr %o0
- SYSCALL_ERROR_HANDLER
+ clr %o0
+END(__libc_pipe)
-PSEUDO_END (__libc_pipe)
weak_alias (__libc_pipe, __pipe)
libc_hidden_def (__pipe)
weak_alias (__libc_pipe, pipe)