about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc64/setjmp-common.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-07-16 23:09:27 +0000
committerUlrich Drepper <drepper@redhat.com>2004-07-16 23:09:27 +0000
commit77d60040fe62a09c8e9c71f44c2e3d4dc42dab51 (patch)
tree0d32a67a84444a5bfe0be52221c82e9956e695eb /sysdeps/powerpc/powerpc64/setjmp-common.S
parent531b71dd4ddc4b15fe643b182d500e6bc7bde413 (diff)
downloadglibc-77d60040fe62a09c8e9c71f44c2e3d4dc42dab51.tar.gz
glibc-77d60040fe62a09c8e9c71f44c2e3d4dc42dab51.tar.xz
glibc-77d60040fe62a09c8e9c71f44c2e3d4dc42dab51.zip
[BZ #269]
Update.
2004-07-16  Steven Munroe  <sjmunroe@us.ibm.com>

	[BZ #269]
	* setjmp/Makefile (tests): Add  bug269-setjmp.
	* setjmp/bug269-setjmp.c: New file.
	* sysdeps/powerpc/powerpc64/__longjmp-common.S [SHARED && !IS_IN_rtld]:
	Store R2 from jmpbuf in callers TOC save area.
	* sysdeps/powerpc/powerpc64/bsd-_setjmp.S [SHARED && !IS_IN_rtld]:
	Store R2 in TOC save area.
	* sysdeps/powerpc/powerpc64/setjmp-common.S [SHARED && !IS_IN_rtld]:
	Copy TOC save area from previous frame as R2 (TOC) in jmpbuf.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/setjmp-common.S')
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp-common.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/setjmp-common.S b/sysdeps/powerpc/powerpc64/setjmp-common.S
index 99b181dfe4..ab57170875 100644
--- a/sysdeps/powerpc/powerpc64/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc64/setjmp-common.S
@@ -44,7 +44,12 @@ ENTRY (BP_SYM (__sigsetjmp))
 	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
 	std  r1,(JB_GPR1*8)(3)
 	mflr r0
+#if defined SHARED && !defined IS_IN_rtld
+	ld   r5,40(r1)	/* Retrieve the callers TOC.  */
+	std  r5,(JB_GPR2*8)(3)
+#else
 	std  r2,(JB_GPR2*8)(3)
+#endif
 	std  r14,((JB_GPRS+0)*8)(3)
 	stfd fp14,((JB_FPRS+0)*8)(3)
 	std  r0,(JB_LR*8)(3)