summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2004-12-15 11:35:12 +0000
committerJakub Jelinek <jakub@redhat.com>2004-12-15 11:35:12 +0000
commit7b77676c2fdf0c3b5e94963f5fd6fa20295d4ce1 (patch)
tree16421985d1ceab3dd23af4d934f5b2b6d38e04e9
parentac4d4092ac20b3f6c7fe40de5a2e98fc49812b21 (diff)
* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone): Save
and restore r2 around call to fn.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S2
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 5a7189140d..03843fc1fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-12-15 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone): Save
+ and restore r2 around call to fn.
+
2004-09-08 H.J. Lu <hongjiu.lu@intel.com>
* Makeconfig (libunwind): New.
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
index 61a35a2f79..f6ce115077 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
@@ -104,12 +104,14 @@ L(nomoregetpid):
L(oldpid):
#endif
+ std r2,40(r1)
/* Call procedure. */
ld r0,0(r29)
ld r2,8(r29)
mtctr r0
mr r3,r31
bctrl
+ ld r2,40(r1)
/* Call _exit with result from procedure. */
#ifdef SHARED
b JUMPTARGET(__GI__exit)