summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arm
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/arm')
-rw-r--r--libc/sysdeps/linux/arm/__longjmp.S2
-rw-r--r--libc/sysdeps/linux/arm/setjmp.S2
2 files changed, 4 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/arm/__longjmp.S b/libc/sysdeps/linux/arm/__longjmp.S
index 81d15706b..e280d842d 100644
--- a/libc/sysdeps/linux/arm/__longjmp.S
+++ b/libc/sysdeps/linux/arm/__longjmp.S
@@ -34,6 +34,8 @@ __longjmp:
#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
lfmfd f4, 4, [ip] ! /* load the floating point regs */
+#else
+ add ip, ip, #48 /* skip the FP registers */
#endif
ldmia ip , {v1-v6, sl, fp, sp, pc}
diff --git a/libc/sysdeps/linux/arm/setjmp.S b/libc/sysdeps/linux/arm/setjmp.S
index eacd6c9b3..aaaa81db1 100644
--- a/libc/sysdeps/linux/arm/setjmp.S
+++ b/libc/sysdeps/linux/arm/setjmp.S
@@ -29,6 +29,8 @@ __sigsetjmp:
/* Save registers */
#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
sfmea f4, 4, [r0]!
+#else
+ sub r0, r0, #48 /* skip the FP registers */
#endif
stmia r0, {v1-v6, sl, fp, sp, lr}