about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S
diff options
context:
space:
mode:
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.S13
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)