about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/arm/clone.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-01-21 09:46:49 +0000
committerUlrich Drepper <drepper@redhat.com>1999-01-21 09:46:49 +0000
commit1d28e93cabf235de32a594d7b770551a34be0e75 (patch)
tree1f7e3b747ca5b436a177515d10bc5fbc17b54486 /sysdeps/unix/sysv/linux/arm/clone.S
parentdc88639c994305f50e76a0359103a8c89667fb51 (diff)
downloadglibc-1d28e93cabf235de32a594d7b770551a34be0e75.tar.gz
glibc-1d28e93cabf235de32a594d7b770551a34be0e75.tar.xz
glibc-1d28e93cabf235de32a594d7b770551a34be0e75.zip
Update.
1999-01-20  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/sigaction.c: New file.

	* sysdeps/unix/sysv/linux/arm/vfork.S: New file.
	* sysdeps/unix/sysv/linux/arm/Dist: Add vfork.S.

	* sysdeps/unix/sysv/linux/arm/clone.S: Optimise a little, support
	26-bit machines correctly and fix check for returned errors.
Diffstat (limited to 'sysdeps/unix/sysv/linux/arm/clone.S')
-rw-r--r--sysdeps/unix/sysv/linux/arm/clone.S13
1 files changed, 5 insertions, 8 deletions
diff --git a/sysdeps/unix/sysv/linux/arm/clone.S b/sysdeps/unix/sysv/linux/arm/clone.S
index 728d62f3e3..46359e8362 100644
--- a/sysdeps/unix/sysv/linux/arm/clone.S
+++ b/sysdeps/unix/sysv/linux/arm/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Pat Beirne <patb@corelcomputer.com>
 
@@ -45,20 +45,17 @@ ENTRY(__clone)
 	mov	r0, r2
 	@ new sp is already in r1
 	swi	SYS_ify(clone)
-	cmp	r0, #0
-	blt	PLTJMP(syscall_error)
-	beq	thread_start
-	@ else, thread was launched...
-	mov	pc, lr
+	cmn	a1, $4096
+	bhs	PLTJMP(C_SYMBOL_NAME(__syscall_error))
+	RETINSTR(movne,pc,lr)
 
-thread_start:
 	@ pick the function arg and call address off the stack and execute
 	ldr	r0, [sp, #4]
 	mov	lr, pc
 	ldr 	pc, [sp]
 
 	@ and we are done, passing the return value through r0
-	bl	PLTJMP(_exit)
+	b	PLTJMP(_exit)
 
 PSEUDO_END (__clone)