aboutsummaryrefslogtreecommitdiff
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/socket.S
parent* bits/resource.h (RLIMIT_SBSIZE, RLIMIT_AS, RLIMIT_VMEM): Define. (diff)
downloadglibc-043cee3700d01624d694d8e1afc76a666309f89c.tar.gz
glibc-043cee3700d01624d694d8e1afc76a666309f89c.tar.bz2
glibc-043cee3700d01624d694d8e1afc76a666309f89c.zip
* shlib-versions: Use sparc64.*- for CPU patterns.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc32/socket.S')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/socket.S31
1 files changed, 17 insertions, 14 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S b/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S
index 911d5c6b39..71a63d5b79 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S
@@ -47,7 +47,7 @@
# endif
#endif
-.globl __socket
+ .globl __syscall_error
ENTRY (__socket)
/* Drop up to 6 arguments (recvfrom) into the memory allocated by
@@ -76,18 +76,19 @@ ENTRY (__socket)
add %sp, 68, %o1 /* arg 2: parameter block */
LOADSYSCALL(socketcall)
t 0x10
- bcs __syscall_error_handler
- nop
- retl
+ bcc 1f
+ mov %o7, %g1
+ call __syscall_error
+ mov %g1, %o7
+1: jmpl %o7 + 8, %g0
nop
#if defined NEED_CANCELLATION && defined CENABLE
.Lsocket_cancel:
- cfi_startproc
save %sp, -96, %sp
- cfi_def_cfa_register (%fp)
+ cfi_def_cfa_register(%fp)
cfi_window_save
- cfi_register (%o7, %i7)
+ cfi_register(%o7, %i7)
CENABLE
nop
mov %o0, %l0
@@ -95,18 +96,20 @@ ENTRY (__socket)
mov P(SOCKOP_,socket), %o0
LOADSYSCALL(socketcall)
t 0x10
- bcs __syscall_error_handler2
+ bcc 1f
mov %o0, %l1
- CDISABLE
+ CDISABLE;
+ mov %l0, %o0;
+ call __syscall_error;
+ mov %l1, %o0;
+ b 1f
+ mov -1, %l1;
+1: CDISABLE
mov %l0, %o0
- jmpl %i7 + 8, %g0
+2: jmpl %i7 + 8, %g0
restore %g0, %l1, %o0
- cfi_endproc
- SYSCALL_ERROR_HANDLER2
#endif
- SYSCALL_ERROR_HANDLER
-
END (__socket)
#ifndef NO_WEAK_ALIAS