summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arm/__longjmp.S
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-11-10 03:14:01 +0000
committerMike Frysinger <vapier@gentoo.org>2005-11-10 03:14:01 +0000
commit31307f870770f7af155f434fffea455fe6b5f29c (patch)
tree2bf0144171231e2cb1a78987defceb22863e3a7f /libc/sysdeps/linux/arm/__longjmp.S
parentafe62a07d12e83f5c9ec0a403e360529553733c4 (diff)
add support for cirrus maverick fpu using patch for glibc http://yann.poupet.free.fr/ep93xx/
Diffstat (limited to 'libc/sysdeps/linux/arm/__longjmp.S')
-rw-r--r--libc/sysdeps/linux/arm/__longjmp.S19
1 files changed, 19 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/arm/__longjmp.S b/libc/sysdeps/linux/arm/__longjmp.S
index 44837911b..822e15a69 100644
--- a/libc/sysdeps/linux/arm/__longjmp.S
+++ b/libc/sysdeps/linux/arm/__longjmp.S
@@ -33,9 +33,28 @@ __longjmp:
moveq r0, #1 /* can't let setjmp() return zero! */
#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
+# ifdef __MAVERICK__
+ cfldrd mvd4, [ip], #8 ; nop
+ cfldrd mvd5, [ip], #8 ; nop
+ cfldrd mvd6, [ip], #8 ; nop
+ cfldrd mvd7, [ip], #8 ; nop
+ cfldrd mvd8, [ip], #8 ; nop
+ cfldrd mvd9, [ip], #8 ; nop
+ cfldrd mvd10, [ip], #8 ; nop
+ cfldrd mvd11, [ip], #8 ; nop
+ cfldrd mvd12, [ip], #8 ; nop
+ cfldrd mvd13, [ip], #8 ; nop
+ cfldrd mvd14, [ip], #8 ; nop
+ cfldrd mvd15, [ip], #8
+# else
lfmfd f4, 4, [ip] ! /* load the floating point regs */
+# endif
#else
+# ifdef __MAVERICK__
+ add ip, ip, #96 /* skip the FP registers */
+# else
add ip, ip, #48 /* skip the FP registers */
+# endif
#endif
ldmia ip , {v1-v6, sl, fp, sp, pc}