summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/x86_64/clone.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/x86_64/clone.S')
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone.S8
1 files changed, 2 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/clone.S b/sysdeps/unix/sysv/linux/x86_64/clone.S
index 1a50957df3..66f4b11490 100644
--- a/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -24,7 +24,6 @@
#include <asm-syntax.h>
#define CLONE_VM 0x00000100
-#define CLONE_THREAD 0x00010000
/* The userland implementation is:
int clone (int (*fn)(void *arg), void *child_stack, int flags, void *arg),
@@ -92,14 +91,11 @@ L(thread_start):
the outermost frame obviously. */
xorl %ebp, %ebp
- testq $CLONE_THREAD, %rdi
+ andq $CLONE_VM, %rdi
jne 1f
- testq $CLONE_VM, %rdi
- movl $-1, %eax
- jne 2f
movl $SYS_ify(getpid), %eax
syscall
-2: movl %eax, %fs:PID
+ movl %eax, %fs:PID
movl %eax, %fs:TID
1: