summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorDavid McCullough <davidm@snapgear.com>2003-02-23 23:24:44 +0000
committerDavid McCullough <davidm@snapgear.com>2003-02-23 23:24:44 +0000
commit1ad16873f18c34ac2080e989af6cd96cc7dc3ef6 (patch)
tree33f0db81944846d62ec82cfd32a071312086c799 /libc
parent08bb655b13d8f17a4d0b3536169c55cfb901b2db (diff)
Fix FP handling alignment problems on ARM platforms without an FPU,
patch from Vadim Lebedev <vadim@7chips.com>.
Diffstat (limited to 'libc')
-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}