summaryrefslogtreecommitdiff
path: root/sysdeps/mips/__longjmp.c
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-04-13 19:46:02 +0000
committerAndreas Jaeger <aj@suse.de>2000-04-13 19:46:02 +0000
commit1cd0f06d0f6a42708fa18a1d54e30cc5aeed7667 (patch)
tree9190e0cfd90e06a91306c280cfb6583917ef0cc6 /sysdeps/mips/__longjmp.c
parent547ff46273e7460f79a51ecda370116969eba182 (diff)
2000-04-13 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/mips/pipe.S: Reorder instructions since .reorder is default. * sysdeps/mips/__longjmp.c (__longjmp): Use $25 to fix problems with some applications. Patches by Ralf Baechle <ralf@uni-koblenz.de>. * sysdeps/mips/bsd-setjmp.S: Use __PIC__. * sysdeps/mips/bsd-_setjmp.S: Likewise. * sysdeps/mips/setjmp.S: Likewise.
Diffstat (limited to 'sysdeps/mips/__longjmp.c')
-rw-r--r--sysdeps/mips/__longjmp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/mips/__longjmp.c b/sysdeps/mips/__longjmp.c
index e9ef5cff3d..a1920ca257 100644
--- a/sysdeps/mips/__longjmp.c
+++ b/sysdeps/mips/__longjmp.c
@@ -69,7 +69,7 @@ __longjmp (env, val_arg)
asm volatile ("lw $23, %0" : : "m" (env[0].__regs[7]));
/* Get the PC. */
- asm volatile ("lw $31, %0" : : "m" (env[0].__pc));
+ asm volatile ("lw $25, %0" : : "m" (env[0].__pc));
/* Give setjmp 1 if given a 0, or what they gave us if non-zero. */
if (val == 0)
@@ -77,7 +77,7 @@ __longjmp (env, val_arg)
else
asm volatile ("move $2, %0" : : "r" (val));
- asm volatile ("j $31");
+ asm volatile ("jr $25");
/* Avoid `volatile function does return' warnings. */
for (;;);