aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/hppa/getcontext.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/hppa/getcontext.S')
-rw-r--r--sysdeps/unix/sysv/linux/hppa/getcontext.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S
index 68a74a0b7e..b201d8fda2 100644
--- a/sysdeps/unix/sysv/linux/hppa/getcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/getcontext.S
@@ -145,8 +145,13 @@ ENTRY(__getcontext)
stw %r4, oR24(%r26)
stw %r5, oR25(%r26)
stw %r6, oR26(%r26)
+#ifdef PIC
+ addil LT%__getcontext_ret, %r19
+ ldw RT%__getcontext_ret(%r1), %r1
+#else
ldil L%__getcontext_ret, %r1
ldo R%__getcontext_ret(%r1), %r1
+#endif
stw %r1, oR2(%r26)
/* Save the current signal mask. */