diff options
author | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2014-05-20 20:31:04 -0500 |
---|---|---|
committer | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2014-05-26 11:41:46 -0500 |
commit | 8464c2a11033bf52c04043ec65166d99f115b16e (patch) | |
tree | 36e297138f609609364ec3245aec36dc4f24222d /sysdeps | |
parent | 3d1024e8d159ec5f0f3899c02af5473f5b0ec49c (diff) | |
download | glibc-8464c2a11033bf52c04043ec65166d99f115b16e.tar glibc-8464c2a11033bf52c04043ec65166d99f115b16e.tar.gz glibc-8464c2a11033bf52c04043ec65166d99f115b16e.tar.bz2 glibc-8464c2a11033bf52c04043ec65166d99f115b16e.zip |
PowerPC: Consolidate NPTL/non versions of clone
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S | 17 |
2 files changed, 2 insertions, 27 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S index bb1510dff1..0463810d4c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S @@ -44,11 +44,7 @@ ENTRY (__clone) /* Set up stack frame for parent. */ stwu r1,-32(r1) cfi_adjust_cfa_offset (32) -#ifdef RESET_PID stmw r28,16(r1) -#else - stmw r30,16(r1) -#endif /* Set up stack frame for child. */ clrrwi r4,r4,4 @@ -57,9 +53,7 @@ ENTRY (__clone) /* Save fn, args, stack across syscall. */ mr r30,r3 /* Function in r30. */ -#ifdef RESET_PID mr r28,r5 -#endif mr r31,r6 /* Argument in r31. */ /* 'flags' argument is first parameter to clone syscall. (The other @@ -83,7 +77,6 @@ ENTRY (__clone) crandc cr1*4+eq,cr1*4+eq,cr0*4+so bne- cr1,L(parent) /* The '-' is to minimise the race. */ -#ifdef RESET_PID andis. r0,r28,CLONE_THREAD>>16 bne+ r0,L(oldpid) andi. r0,r28,CLONE_VM @@ -94,7 +87,6 @@ L(nomoregetpid): stw r3,TID(r2) stw r3,PID(r2) L(oldpid): -#endif /* Call procedure. */ mtctr r30 @@ -105,11 +97,7 @@ L(oldpid): L(parent): /* Parent. Restore registers & return. */ -#ifdef RESET_PID lmw r28,16(r1) -#else - lmw r30,16(r1) -#endif addi r1,r1,32 bnslr+ b __syscall_error@local diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S index d8fefdd3b4..892d44ffdb 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S @@ -41,14 +41,10 @@ ENTRY (__clone) beq- cr0,L(badargs) /* Save some regs in the "red zone". */ -#ifdef RESET_PID std r29,-24(r1) -#endif std r30,-16(r1) std r31,-8(r1) -#ifdef RESET_PID cfi_offset(r29,-24) -#endif cfi_offset(r30,-16) cfi_offset(r31,-8) @@ -59,15 +55,13 @@ ENTRY (__clone) /* Save fn, args, stack across syscall. */ mr r30,r3 /* Function in r30. */ -#ifdef RESET_PID mr r29,r5 /* Flags in r29. */ -#endif mr r31,r6 /* Argument in r31. */ /* 'flags' argument is first parameter to clone syscall. Second is the stack pointer, already in r4. */ mr r3,r5 - /* Move the parent_tid, child_tid and tls arguments. */ + /* Move the parent_tid, child_tid and tls arguments. */ mr r5,r7 mr r6,r8 mr r7,r9 @@ -84,7 +78,6 @@ ENTRY (__clone) crandc cr1*4+eq,cr1*4+eq,cr0*4+so bne- cr1,L(parent) /* The '-' is to minimise the race. */ -#ifdef RESET_PID andis. r0,r29,CLONE_THREAD>>16 bne+ cr0,L(oldpid) andi. r0,r29,CLONE_VM @@ -95,7 +88,6 @@ L(nomoregetpid): stw r3,TID(r13) stw r3,PID(r13) L(oldpid): -#endif std r2,FRAME_TOC_SAVE(r1) /* Call procedure. */ @@ -120,21 +112,16 @@ L(badargs): L(parent): /* Parent. Restore registers & return. */ -#ifdef RESET_PID cfi_offset(r29,-24) -#endif cfi_offset(r30,-16) cfi_offset(r31,-8) -#ifdef RESET_PID ld r29,-24(r1) -#endif ld r30,-16(r1) ld r31,-8(r1) -#ifdef RESET_PID cfi_restore(r29) -#endif cfi_restore(r30) cfi_restore(r31) + PSEUDO_RET END (__clone) |