From 1ad16873f18c34ac2080e989af6cd96cc7dc3ef6 Mon Sep 17 00:00:00 2001
From: David McCullough <davidm@snapgear.com>
Date: Sun, 23 Feb 2003 23:24:44 +0000
Subject: Fix FP handling alignment problems on ARM platforms without an FPU,
 patch from Vadim Lebedev <vadim@7chips.com>.

---
 libc/sysdeps/linux/arm/__longjmp.S | 2 ++
 libc/sysdeps/linux/arm/setjmp.S    | 2 ++
 2 files changed, 4 insertions(+)

(limited to 'libc')

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}
 
-- 
cgit v1.2.3