patches/gcc/4.2.4/270-soft-float.patch
author Michael Hope <michael.hope@linaro.org>
Wed Oct 19 15:27:32 2011 +1300 (2011-10-19)
changeset 2739 f320e22f2cba
parent 687 b2b6b1d46aa1
permissions -rw-r--r--
arch: add softfp support

Some architectures support a mixed hard/soft floating point, where
the compiler emits hardware floating point instructions, but passes
the operands in core (aka integer) registers.

For example, ARM supports this mode (to come in the next changeset).

Add support for softfp cross compilers to the GCC and GLIBC
configuration. Needed for Ubuntu and other distros that are softfp.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@687
     1
diff -uNpr gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c
yann@687
     2
--- gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c	2007-03-05 11:54:00.000000000 -0500
yann@687
     3
+++ gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c	2008-01-31 17:51:24.000000000 -0500
yann@687
     4
@@ -70,6 +70,8 @@ Software Foundation, 51 Franklin Street,
yann@687
     5
    but GCC currently generates poor code when a union is used to turn
yann@687
     6
    a long double into a pair of doubles.  */
yann@687
     7
 
yann@687
     8
+#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
yann@687
     9
+
yann@687
    10
 long double __gcc_qadd (double, double, double, double);
yann@687
    11
 long double __gcc_qsub (double, double, double, double);
yann@687
    12
 long double __gcc_qmul (double, double, double, double);
yann@687
    13
@@ -219,8 +221,6 @@ __gcc_qdiv (double a, double b, double c
yann@687
    14
   return z.ldval;
yann@687
    15
 }
yann@687
    16
 
yann@687
    17
-#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
yann@687
    18
-
yann@687
    19
 long double __gcc_qneg (double, double);
yann@687
    20
 int __gcc_qeq (double, double, double, double);
yann@687
    21
 int __gcc_qne (double, double, double, double);