about summary refs log tree commit diff
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)
downloadglibc-7b77676c2fdf0c3b5e94963f5fd6fa20295d4ce1.tar.gz
glibc-7b77676c2fdf0c3b5e94963f5fd6fa20295d4ce1.tar.xz
glibc-7b77676c2fdf0c3b5e94963f5fd6fa20295d4ce1.zip
* 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)