aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>2014-05-20 20:31:04 -0500
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>2014-05-26 11:41:46 -0500
commit8464c2a11033bf52c04043ec65166d99f115b16e (patch)
tree36e297138f609609364ec3245aec36dc4f24222d
parent3d1024e8d159ec5f0f3899c02af5473f5b0ec49c (diff)
downloadglibc-8464c2a11033bf52c04043ec65166d99f115b16e.zip
glibc-8464c2a11033bf52c04043ec65166d99f115b16e.tar.gz
glibc-8464c2a11033bf52c04043ec65166d99f115b16e.tar.bz2
PowerPC: Consolidate NPTL/non versions of clone
-rw-r--r--ChangeLog8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S9
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S9
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S12
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S17
5 files changed, 10 insertions, 45 deletions
diff --git a/ChangeLog b/ChangeLog
index de8e9a2..462abcc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2014-05-26 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Remove
+ conditional [RESET_PID].
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
+ * nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: File
+ removed.
+ * nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: File
+ removed.
+
* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Include
<tcb-offsets.h>.
(__vfork): Incorporate save/restore of PID from nptl/vfork.S here.
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
deleted file mode 100644
index 675a997..0000000
--- a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+++ /dev/null
@@ -1,9 +0,0 @@
-/* We want an #include_next, but we are the main source file.
- So, #include ourselves and in that incarnation we can use #include_next. */
-#ifndef INCLUDED_SELF
-# define INCLUDED_SELF
-# include <clone.S>
-#else
-# define RESET_PID
-# include_next <clone.S>
-#endif
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
deleted file mode 100644
index 675a997..0000000
--- a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+++ /dev/null
@@ -1,9 +0,0 @@
-/* We want an #include_next, but we are the main source file.
- So, #include ourselves and in that incarnation we can use #include_next. */
-#ifndef INCLUDED_SELF
-# define INCLUDED_SELF
-# include <clone.S>
-#else
-# define RESET_PID
-# include_next <clone.S>
-#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
index bb1510d..0463810 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 d8fefdd..892d44f 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)