patches/mpfr/2.4.2/110-longlong.h.patch
author Michael Hope <michael.hope@linaro.org>
Wed Oct 19 15:27:32 2011 +1300 (2011-10-19)
changeset 2739 f320e22f2cba
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>
     1 diff -Naurd mpfr-2.4.2-a/PATCHES mpfr-2.4.2-b/PATCHES
     2 --- mpfr-2.4.2-a/PATCHES	2009-12-18 12:03:30.000000000 +0000
     3 +++ mpfr-2.4.2-b/PATCHES	2009-12-18 12:05:19.000000000 +0000
     4 @@ -0,0 +1 @@
     5 +longlong.h
     6 diff -Naurd mpfr-2.4.2-a/VERSION mpfr-2.4.2-b/VERSION
     7 --- mpfr-2.4.2-a/VERSION	2009-12-07 13:37:12.000000000 +0000
     8 +++ mpfr-2.4.2-b/VERSION	2009-12-18 12:05:09.000000000 +0000
     9 @@ -1 +1 @@
    10 -2.4.2-p1
    11 +2.4.2-p2
    12 diff -Naurd mpfr-2.4.2-a/mpfr-longlong.h mpfr-2.4.2-b/mpfr-longlong.h
    13 --- mpfr-2.4.2-a/mpfr-longlong.h	2009-11-30 02:43:08.000000000 +0000
    14 +++ mpfr-2.4.2-b/mpfr-longlong.h	2009-12-18 12:04:29.000000000 +0000
    15 @@ -1011,7 +1011,15 @@
    16  #endif /* __m88000__ */
    17  
    18  #if defined (__mips) && W_TYPE_SIZE == 32
    19 -#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
    20 +#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
    21 +#define umul_ppmm(w1, w0, u, v) \
    22 +  do {									\
    23 +    UDItype _r;							\
    24 +    _r = (UDItype) u * v;						\
    25 +    (w1) = _r >> 32;							\
    26 +    (w0) = (USItype) _r;						\
    27 +  } while (0)
    28 +#elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7
    29  #define umul_ppmm(w1, w0, u, v) \
    30    __asm__ ("multu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
    31  #else
    32 @@ -1024,7 +1032,16 @@
    33  #endif /* __mips */
    34  
    35  #if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
    36 -#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
    37 +#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
    38 +typedef unsigned int UTItype __attribute__ ((mode (TI)));
    39 +#define umul_ppmm(w1, w0, u, v) \
    40 +  do {									\
    41 +    UTItype _r;							\
    42 +    _r = (UTItype) u * v;						\
    43 +    (w1) = _r >> 64;							\
    44 +    (w0) = (UDItype) _r;						\
    45 +  } while (0)
    46 +#elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7
    47  #define umul_ppmm(w1, w0, u, v) \
    48    __asm__ ("dmultu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
    49  #else
    50 diff -Naurd mpfr-2.4.2-a/mpfr.h mpfr-2.4.2-b/mpfr.h
    51 --- mpfr-2.4.2-a/mpfr.h	2009-12-07 13:37:12.000000000 +0000
    52 +++ mpfr-2.4.2-b/mpfr.h	2009-12-18 12:05:09.000000000 +0000
    53 @@ -27,7 +27,7 @@
    54  #define MPFR_VERSION_MAJOR 2
    55  #define MPFR_VERSION_MINOR 4
    56  #define MPFR_VERSION_PATCHLEVEL 2
    57 -#define MPFR_VERSION_STRING "2.4.2-p1"
    58 +#define MPFR_VERSION_STRING "2.4.2-p2"
    59  
    60  /* Macros dealing with MPFR VERSION */
    61  #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
    62 diff -Naurd mpfr-2.4.2-a/version.c mpfr-2.4.2-b/version.c
    63 --- mpfr-2.4.2-a/version.c	2009-12-07 13:37:12.000000000 +0000
    64 +++ mpfr-2.4.2-b/version.c	2009-12-18 12:05:09.000000000 +0000
    65 @@ -25,5 +25,5 @@
    66  const char *
    67  mpfr_get_version (void)
    68  {
    69 -  return "2.4.2-p1";
    70 +  return "2.4.2-p2";
    71  }