diff options
Diffstat (limited to 'libc/sysdeps/linux/sh/clone.S')
-rw-r--r-- | libc/sysdeps/linux/sh/clone.S | 36 |
1 files changed, 3 insertions, 33 deletions
diff --git a/libc/sysdeps/linux/sh/clone.S b/libc/sysdeps/linux/sh/clone.S index 3ed6b25de..334f83f1a 100644 --- a/libc/sysdeps/linux/sh/clone.S +++ b/libc/sysdeps/linux/sh/clone.S @@ -23,9 +23,7 @@ #include <sysdep.h> #define _ERRNO_H 1 #include <bits/errno.h> -#ifdef RESET_PID -#include <tcb-offsets.h> -#endif + /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg, pid_t *ptid, void *tls, pid_t *ctid); */ @@ -85,29 +83,7 @@ ENTRY(__clone) 2: /* terminate the stack frame */ mov #0, r14 -#ifdef RESET_PID - mov r4, r0 - shlr16 r0 - tst #1, r0 // CLONE_THREAD = (1 << 16) - bf/s 4f - mov r4, r0 - /* new pid */ - shlr8 r0 - tst #1, r0 // CLONE_VM = (1 << 8) - bf/s 3f - mov #-1, r0 - mov #+SYS_ify(getpid), r3 - trapa #0x15 -3: - stc gbr, r1 - mov.w .Lpidoff, r2 - add r1, r2 - mov.l r0, @r2 - mov.w .Ltidoff, r2 - add r1, r2 - mov.l r0, @r2 -4: -#endif + /* thread starts */ mov.l @r15, r1 jsr @r1 @@ -138,12 +114,6 @@ ENTRY(__clone) .long _GLOBAL_OFFSET_TABLE_ .L3: .long PLTJMP(C_SYMBOL_NAME(_exit)) -#ifdef RESET_PID -.Lpidoff: - .word PID - TLS_PRE_TCB_SIZE -.Ltidoff: - .word TID - TLS_PRE_TCB_SIZE -#endif -PSEUDO_END (__clone) +PSEUDO_END (__clone) weak_alias (__clone, clone) |