about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc64/bsd-_setjmp.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/bsd-_setjmp.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/bsd-_setjmp.S')
-rw-r--r--sysdeps/powerpc/powerpc64/bsd-_setjmp.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/bsd-_setjmp.S b/sysdeps/powerpc/powerpc64/bsd-_setjmp.S
index e4428ecff7..13f4056706 100644
--- a/sysdeps/powerpc/powerpc64/bsd-_setjmp.S
+++ b/sysdeps/powerpc/powerpc64/bsd-_setjmp.S
@@ -47,6 +47,9 @@ default_symbol_version (__vmx_setjmp,_setjmp,GLIBC_2.3.4)
    as a libc_hidden_proto & is used in sysdeps/generic/libc-start.c
    if HAVE_CLEANUP_JMP_BUF is defined */
 ENTRY (BP_SYM (__GI__setjmp))
+#if defined SHARED && !defined IS_IN_rtld
+	std r2,40(r1)	/* Save the callers TOC in the save area.  */
+#endif
 	li r4,0			/* Set second argument to 0.  */
 	b JUMPTARGET(BP_SYM (__vmx__sigsetjmp))
 END (BP_SYM (__GI__setjmp))