diff options
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S index 8941043c3a..e9018b2e99 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S @@ -21,7 +21,6 @@ #include <tcb-offsets.h> .text - .globl __syscall_error ENTRY(__vfork) ld [%g7 + PID], %o5 sub %g0, %o5, %o4 @@ -29,17 +28,15 @@ ENTRY(__vfork) LOADSYSCALL(vfork) ta 0x6d - bcc,pt %xcc, 2f - mov %o7, %g1 - st %o5, [%g7 + PID] - call __syscall_error - mov %g1, %o7 -2: sub %o1, 1, %o1 + bcs,a,pn %xcc, __syscall_error_handler + st %o5, [%g7 + PID] + SYSCALL_ERROR_HANDLER + sub %o1, 1, %o1 andcc %o0, %o1, %o0 bne,a,pt %icc, 1f st %o5, [%g7 + PID] 1: retl nop -END(__vfork) +PSEUDO_END (__vfork) weak_alias (__vfork, vfork) |