OSDN Git Service

Update soft-float handling
authorEric Andersen <andersen@codepoet.org>
Wed, 6 Nov 2002 20:16:27 +0000 (20:16 -0000)
committerEric Andersen <andersen@codepoet.org>
Wed, 6 Nov 2002 20:16:27 +0000 (20:16 -0000)
libc/sysdeps/linux/arm/__longjmp.S
libc/sysdeps/linux/arm/setjmp.S
libc/sysdeps/linux/mips/__longjmp.c
libc/sysdeps/linux/mips/setjmp_aux.c

index 5a8f84b..81d1570 100644 (file)
@@ -32,7 +32,7 @@ __longjmp:
        movs    r0, r1          /* get the return value in place */
        moveq   r0, #1          /* can't let setjmp() return zero! */
 
-#if defined __UCLIBC_HAS_FLOATS__ && ! defined __SOFTFP__
+#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
        lfmfd   f4, 4, [ip] !   /* load the floating point regs */
 #endif 
 
index d737237..eacd6c9 100644 (file)
@@ -27,7 +27,7 @@
 .align 4;
 __sigsetjmp:
        /* Save registers */
-#if defined __UCLIBC_HAS_FLOATS__ && ! defined __SOFTFP__
+#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
        sfmea   f4, 4, [r0]!
 #endif
        stmia   r0, {v1-v6, sl, fp, sp, lr}
index ba04984..889876e 100644 (file)
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <features.h>
 #include <setjmp.h>
 #include <stdlib.h>
 
@@ -38,7 +39,7 @@ __longjmp (env, val_arg)
   register int val asm ("a1");
 
   /* Pull back the floating point callee-saved registers.  */
-#ifndef __mips_soft_float
+#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
   asm volatile ("l.d $f20, %0" : : "m" (env[0].__fpregs[0]));
   asm volatile ("l.d $f22, %0" : : "m" (env[0].__fpregs[1]));
   asm volatile ("l.d $f24, %0" : : "m" (env[0].__fpregs[2]));
index 894d4b7..166eb7e 100644 (file)
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <features.h>
 #include <setjmp.h>
 
 /* This function is only called via the assembly language routine
@@ -29,7 +30,7 @@ extern int __sigjmp_save (sigjmp_buf, int);
 int
 __sigsetjmp_aux (jmp_buf env, int savemask, int sp, int fp)
 {
-#ifndef __mips_soft_float
+#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
   /* Store the floating point callee-saved registers...  */
   asm volatile ("s.d $f20, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[0]));
   asm volatile ("s.d $f22, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[1]));
@@ -61,7 +62,7 @@ __sigsetjmp_aux (jmp_buf env, int savemask, int sp, int fp)
   asm volatile ("sw $22, %0" : : "m" (env[0].__jmpbuf[0].__regs[6]));
   asm volatile ("sw $23, %0" : : "m" (env[0].__jmpbuf[0].__regs[7]));
 
-#ifndef __mips_soft_float
+#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
   /* .. and finally get and reconstruct the floating point csr.  */
   asm ("cfc1 %0, $31" : "=r" (env[0].__jmpbuf[0].__fpc_csr));
 #endif