diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/aarch64/clone.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/aarch64/clone.S | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sysdeps/unix/sysv/linux/aarch64/clone.S b/sysdeps/unix/sysv/linux/aarch64/clone.S index 8f3ab40954..76baa7a698 100644 --- a/sysdeps/unix/sysv/linux/aarch64/clone.S +++ b/sysdeps/unix/sysv/linux/aarch64/clone.S @@ -72,17 +72,15 @@ thread_start: cfi_undefined (x30) mov x29, 0 - tbnz x11, #CLONE_THREAD_BIT, 3f - mov x0, #-1 - tbnz x11, #CLONE_VM_BIT, 2f + tbnz x11, #CLONE_VM_BIT, 1f + mov x8, #SYS_ify(getpid) svc 0x0 -2: mrs x1, tpidr_el0 sub x1, x1, #PTHREAD_SIZEOF str w0, [x1, #PTHREAD_PID_OFFSET] str w0, [x1, #PTHREAD_TID_OFFSET] -3: +1: /* Pick the function arg and execute. */ mov x0, x12 |