Browse Source

Update soft-float handling

Eric Andersen 21 years ago
parent
commit
a6663f2b90

+ 1 - 1
libc/sysdeps/linux/arm/__longjmp.S

@@ -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	
 

+ 1 - 1
libc/sysdeps/linux/arm/setjmp.S

@@ -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}

+ 2 - 1
libc/sysdeps/linux/mips/__longjmp.c

@@ -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]));

+ 3 - 2
libc/sysdeps/linux/mips/setjmp_aux.c

@@ -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