summaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/powerpc64/__longjmp-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/__longjmp-common.S
parent531b71dd4ddc4b15fe643b182d500e6bc7bde413 (diff)
[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/__longjmp-common.S')
-rw-r--r--sysdeps/powerpc/powerpc64/__longjmp-common.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/__longjmp-common.S b/sysdeps/powerpc/powerpc64/__longjmp-common.S
index b6a2b79e55..b11a0fd7b5 100644
--- a/sysdeps/powerpc/powerpc64/__longjmp-common.S
+++ b/sysdeps/powerpc/powerpc64/__longjmp-common.S
@@ -112,6 +112,9 @@ no_vmx:
ld r0,(JB_LR*8)(r3)
ld r14,((JB_GPRS+0)*8)(r3)
lfd fp14,((JB_FPRS+0)*8)(r3)
+#if defined SHARED && !defined IS_IN_rtld
+ std r2,40(r1) /* Restore the callers TOC save area. */
+#endif
ld r15,((JB_GPRS+1)*8)(r3)
lfd fp15,((JB_FPRS+1)*8)(r3)
ld r16,((JB_GPRS+2)*8)(r3)
@@ -125,6 +128,7 @@ no_vmx:
ld r20,((JB_GPRS+6)*8)(r3)
lfd fp20,((JB_FPRS+6)*8)(r3)
mtlr r0
+/* std r2,40(r1) Restore the TOC save area. */
ld r21,((JB_GPRS+7)*8)(r3)
lfd fp21,((JB_FPRS+7)*8)(r3)
ld r22,((JB_GPRS+8)*8)(r3)