aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/arm/fpu/__longjmp.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/arm/fpu/__longjmp.S')
-rw-r--r--sysdeps/arm/fpu/__longjmp.S10
1 files changed, 5 insertions, 5 deletions
diff --git a/sysdeps/arm/fpu/__longjmp.S b/sysdeps/arm/fpu/__longjmp.S
index 8afa177b20..25ba6b39fa 100644
--- a/sysdeps/arm/fpu/__longjmp.S
+++ b/sysdeps/arm/fpu/__longjmp.S
@@ -25,12 +25,12 @@
/* __longjmp(jmpbuf, val) */
ENTRY (__longjmp)
- movs r2, r0
+ mov ip, r0 /* save jmp_buf pointer */
+
movs r0, r1 /* get the return value in place */
- moveq r1, #1 /* can't let setjmp() return zero! */
+ moveq r0, #1 /* can't let setjmp() return zero! */
- add r2, r2, #48
- lfmfd f4, 4, [r2]
+ lfmia f4, 4, [ip] ! /* load the floating point regs */
- LOADREGS(ia, r2, {v1-v6, sl, fp, sp, pc})
+ LOADREGS(ia, ip, {v1-v6, sl, fp, sp, pc})
END (__longjmp)