about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S6
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 27bf6d10a5..33e3a14ecf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2004-12-15  Steven Munroe  <sjmunroe@us.ibm.com>
 
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Correct stack
+	alignment.  Clean up flag bit tests.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Correct stack
+	alignment.  Clean up flag bit tests.  Remove redundent SP assignment.
+	Add TOC register save/restore around function call.
+
 	* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Make no_vmx symbol
 	local.
 	* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Make no_vmx symbol
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
index 891cf83631..f232284747 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
@@ -48,7 +48,7 @@ ENTRY (BP_SYM (__clone))
 	beq-	cr0,L(badargs)
 
 	/* Set up stack frame for parent.  */
-	stwu	r1,-36(r1)
+	stwu	r1,-32(r1)
 #ifdef RESET_PID
 	stmw	r28,16(r1)
 #else
@@ -100,7 +100,7 @@ ENTRY (BP_SYM (__clone))
 #endif
 
 #ifdef RESET_PID
-	andis.	r0,r28,1	/* This is & CLONE_THREAD */
+	andis.	r0,r28,CLONE_THREAD>>16
 	bne+	r0,L(oldpid)
 	andi.	r0,r28,CLONE_VM
 	li	r3,-1
@@ -130,7 +130,7 @@ L(parent):
 	lmw	r30,16(r1)
 # endif
 #endif
-	addi	r1,r1,36
+	addi	r1,r1,32
 	bnslr+
 	b	JUMPTARGET(__syscall_error)