diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/arm/clone.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/clone.S | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/sysdeps/unix/sysv/linux/arm/clone.S b/sysdeps/unix/sysv/linux/arm/clone.S index c103123965..7ff681804b 100644 --- a/sysdeps/unix/sysv/linux/arm/clone.S +++ b/sysdeps/unix/sysv/linux/arm/clone.S @@ -70,19 +70,16 @@ PSEUDO_END (__clone) 1: .fnstart .cantunwind - tst ip, #CLONE_THREAD - bne 3f + tst ip, #CLONE_VM + bne 2f GET_TLS (lr) mov r1, r0 - tst ip, #CLONE_VM ldr r7, =SYS_ify(getpid) - ite ne - movne r0, #-1 - swieq 0x0 + swi 0x0 NEGOFF_ADJ_BASE (r1, TID_OFFSET) str r0, NEGOFF_OFF1 (r1, TID_OFFSET) str r0, NEGOFF_OFF2 (r1, PID_OFFSET, TID_OFFSET) -3: +2: @ pick the function arg and call address off the stack and execute ldr r0, [sp, #4] ldr ip, [sp], #8 |