summaryrefslogtreecommitdiff
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)