PR other/53317
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Jun 2013 19:08:01 +0000 (19:08 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Jun 2013 19:08:01 +0000 (19:08 +0000)
gcc/testsuite:
* gcc.dg/torture/fp-int-convert-float128-timode-2.c: New test.

libgcc:
* soft-fp/adddf3.c: Update from glibc.
* soft-fp/addsf3.c: Likewise.
* soft-fp/addtf3.c: Likewise.
* soft-fp/divdf3.c: Likewise.
* soft-fp/divsf3.c: Likewise.
* soft-fp/divtf3.c: Likewise.
* soft-fp/double.h: Likewise.
* soft-fp/eqdf2.c: Likewise.
* soft-fp/eqsf2.c: Likewise.
* soft-fp/eqtf2.c: Likewise.
* soft-fp/extenddftf2.c: Likewise.
* soft-fp/extended.h: Likewise.
* soft-fp/extendsfdf2.c: Likewise.
* soft-fp/extendsftf2.c: Likewise.
* soft-fp/fixdfdi.c: Likewise.
* soft-fp/fixdfsi.c: Likewise.
* soft-fp/fixsfdi.c: Likewise.
* soft-fp/fixsfsi.c: Likewise.
* soft-fp/fixtfdi.c: Likewise.
* soft-fp/fixtfsi.c: Likewise.
* soft-fp/fixunsdfdi.c: Likewise.
* soft-fp/fixunsdfsi.c: Likewise.
* soft-fp/fixunssfdi.c: Likewise.
* soft-fp/fixunssfsi.c: Likewise.
* soft-fp/fixunstfdi.c: Likewise.
* soft-fp/fixunstfsi.c: Likewise.
* soft-fp/floatdidf.c: Likewise.
* soft-fp/floatdisf.c: Likewise.
* soft-fp/floatditf.c: Likewise.
* soft-fp/floatsidf.c: Likewise.
* soft-fp/floatsisf.c: Likewise.
* soft-fp/floatsitf.c: Likewise.
* soft-fp/floatundidf.c: Likewise.
* soft-fp/floatundisf.c: Likewise.
* soft-fp/floatunditf.c: Likewise.
* soft-fp/floatunsidf.c: Likewise.
* soft-fp/floatunsisf.c: Likewise.
* soft-fp/floatunsitf.c: Likewise.
* soft-fp/gedf2.c: Likewise.
* soft-fp/gesf2.c: Likewise.
* soft-fp/getf2.c: Likewise.
* soft-fp/ledf2.c: Likewise.
* soft-fp/lesf2.c: Likewise.
* soft-fp/letf2.c: Likewise.
* soft-fp/muldf3.c: Likewise.
* soft-fp/mulsf3.c: Likewise.
* soft-fp/multf3.c: Likewise.
* soft-fp/negdf2.c: Likewise.
* soft-fp/negsf2.c: Likewise.
* soft-fp/negtf2.c: Likewise.
* soft-fp/op-1.h: Likewise.
* soft-fp/op-2.h: Likewise.
* soft-fp/op-4.h: Likewise.
* soft-fp/op-8.h: Likewise.
* soft-fp/op-common.h: Likewise.
* soft-fp/quad.h: Likewise.
* soft-fp/single.h: Likewise.
* soft-fp/soft-fp.h: Likewise.
* soft-fp/subdf3.c: Likewise.
* soft-fp/subsf3.c: Likewise.
* soft-fp/subtf3.c: Likewise.
* soft-fp/truncdfsf2.c: Likewise.
* soft-fp/trunctfdf2.c: Likewise.
* soft-fp/trunctfsf2.c: Likewise.
* soft-fp/unorddf2.c: Likewise.
* soft-fp/unordsf2.c: Likewise.
* soft-fp/unordtf2.c: Likewise.
* config/aarch64/sfp-machine.h (_FP_QNANNEGATEDP): Define to 0.
* config/arm/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/c6x/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/i386/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/ia64/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/lm32/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/moxie/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/rs6000/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/score/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/tilegx/sfp-machine32.h (_FP_QNANNEGATEDP): Likewise.
* config/tilegx/sfp-machine64.h (_FP_QNANNEGATEDP): Likewise.
* config/tilepro/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200318 138bc75d-0d04-0410-961f-82ee72b054a4

82 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/fp-int-convert-float128-timode-2.c [new file with mode: 0644]
libgcc/ChangeLog
libgcc/config/aarch64/sfp-machine.h
libgcc/config/arm/sfp-machine.h
libgcc/config/c6x/sfp-machine.h
libgcc/config/i386/sfp-machine.h
libgcc/config/ia64/sfp-machine.h
libgcc/config/lm32/sfp-machine.h
libgcc/config/moxie/sfp-machine.h
libgcc/config/rs6000/sfp-machine.h
libgcc/config/score/sfp-machine.h
libgcc/config/tilegx/sfp-machine32.h
libgcc/config/tilegx/sfp-machine64.h
libgcc/config/tilepro/sfp-machine.h
libgcc/soft-fp/adddf3.c
libgcc/soft-fp/addsf3.c
libgcc/soft-fp/addtf3.c
libgcc/soft-fp/divdf3.c
libgcc/soft-fp/divsf3.c
libgcc/soft-fp/divtf3.c
libgcc/soft-fp/double.h
libgcc/soft-fp/eqdf2.c
libgcc/soft-fp/eqsf2.c
libgcc/soft-fp/eqtf2.c
libgcc/soft-fp/extenddftf2.c
libgcc/soft-fp/extended.h
libgcc/soft-fp/extendsfdf2.c
libgcc/soft-fp/extendsftf2.c
libgcc/soft-fp/fixdfdi.c
libgcc/soft-fp/fixdfsi.c
libgcc/soft-fp/fixsfdi.c
libgcc/soft-fp/fixsfsi.c
libgcc/soft-fp/fixtfdi.c
libgcc/soft-fp/fixtfsi.c
libgcc/soft-fp/fixunsdfdi.c
libgcc/soft-fp/fixunsdfsi.c
libgcc/soft-fp/fixunssfdi.c
libgcc/soft-fp/fixunssfsi.c
libgcc/soft-fp/fixunstfdi.c
libgcc/soft-fp/fixunstfsi.c
libgcc/soft-fp/floatdidf.c
libgcc/soft-fp/floatdisf.c
libgcc/soft-fp/floatditf.c
libgcc/soft-fp/floatsidf.c
libgcc/soft-fp/floatsisf.c
libgcc/soft-fp/floatsitf.c
libgcc/soft-fp/floatundidf.c
libgcc/soft-fp/floatundisf.c
libgcc/soft-fp/floatunditf.c
libgcc/soft-fp/floatunsidf.c
libgcc/soft-fp/floatunsisf.c
libgcc/soft-fp/floatunsitf.c
libgcc/soft-fp/gedf2.c
libgcc/soft-fp/gesf2.c
libgcc/soft-fp/getf2.c
libgcc/soft-fp/ledf2.c
libgcc/soft-fp/lesf2.c
libgcc/soft-fp/letf2.c
libgcc/soft-fp/muldf3.c
libgcc/soft-fp/mulsf3.c
libgcc/soft-fp/multf3.c
libgcc/soft-fp/negdf2.c
libgcc/soft-fp/negsf2.c
libgcc/soft-fp/negtf2.c
libgcc/soft-fp/op-1.h
libgcc/soft-fp/op-2.h
libgcc/soft-fp/op-4.h
libgcc/soft-fp/op-8.h
libgcc/soft-fp/op-common.h
libgcc/soft-fp/quad.h
libgcc/soft-fp/single.h
libgcc/soft-fp/soft-fp.h
libgcc/soft-fp/subdf3.c
libgcc/soft-fp/subsf3.c
libgcc/soft-fp/subtf3.c
libgcc/soft-fp/truncdfsf2.c
libgcc/soft-fp/trunctfdf2.c
libgcc/soft-fp/trunctfsf2.c
libgcc/soft-fp/unorddf2.c
libgcc/soft-fp/unordsf2.c
libgcc/soft-fp/unordtf2.c

index c606a6e..b0632ff 100644 (file)
@@ -1,3 +1,8 @@
+2013-06-21  Joseph Myers  <joseph@codesourcery.com>
+
+       PR other/53317
+       * gcc.dg/torture/fp-int-convert-float128-timode-2.c: New test.
+
 2013-06-20  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/57655
diff --git a/gcc/testsuite/gcc.dg/torture/fp-int-convert-float128-timode-2.c b/gcc/testsuite/gcc.dg/torture/fp-int-convert-float128-timode-2.c
new file mode 100644 (file)
index 0000000..9990e19
--- /dev/null
@@ -0,0 +1,21 @@
+/* Test floating-point conversions.  __float128 type with TImode: bug
+   53317.  */
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+/* { dg-do run { target i?86-*-* x86_64-*-* ia64-*-* } } */
+/* { dg-require-effective-target int128 } */
+/* { dg-options "" } */
+
+extern void abort (void);
+extern void exit (int);
+
+int
+main (void)
+{
+  volatile unsigned long long a = 0x1000000000000ULL;
+  volatile unsigned long long b = 0xffffffffffffffffULL;
+  unsigned __int128 c = (((unsigned __int128) a) << 64) | b;
+  __float128 d = c;
+  if (d != 0x1.000000000000ffffffffffffffffp112q)
+    abort ();
+  exit (0);
+}
index 56b3463..b23ec65 100644 (file)
@@ -1,3 +1,86 @@
+2013-06-21  Joseph Myers  <joseph@codesourcery.com>
+
+       PR other/53317
+       * soft-fp/adddf3.c: Update from glibc.
+       * soft-fp/addsf3.c: Likewise.
+       * soft-fp/addtf3.c: Likewise.
+       * soft-fp/divdf3.c: Likewise.
+       * soft-fp/divsf3.c: Likewise.
+       * soft-fp/divtf3.c: Likewise.
+       * soft-fp/double.h: Likewise.
+       * soft-fp/eqdf2.c: Likewise.
+       * soft-fp/eqsf2.c: Likewise.
+       * soft-fp/eqtf2.c: Likewise.
+       * soft-fp/extenddftf2.c: Likewise.
+       * soft-fp/extended.h: Likewise.
+       * soft-fp/extendsfdf2.c: Likewise.
+       * soft-fp/extendsftf2.c: Likewise.
+       * soft-fp/fixdfdi.c: Likewise.
+       * soft-fp/fixdfsi.c: Likewise.
+       * soft-fp/fixsfdi.c: Likewise.
+       * soft-fp/fixsfsi.c: Likewise.
+       * soft-fp/fixtfdi.c: Likewise.
+       * soft-fp/fixtfsi.c: Likewise.
+       * soft-fp/fixunsdfdi.c: Likewise.
+       * soft-fp/fixunsdfsi.c: Likewise.
+       * soft-fp/fixunssfdi.c: Likewise.
+       * soft-fp/fixunssfsi.c: Likewise.
+       * soft-fp/fixunstfdi.c: Likewise.
+       * soft-fp/fixunstfsi.c: Likewise.
+       * soft-fp/floatdidf.c: Likewise.
+       * soft-fp/floatdisf.c: Likewise.
+       * soft-fp/floatditf.c: Likewise.
+       * soft-fp/floatsidf.c: Likewise.
+       * soft-fp/floatsisf.c: Likewise.
+       * soft-fp/floatsitf.c: Likewise.
+       * soft-fp/floatundidf.c: Likewise.
+       * soft-fp/floatundisf.c: Likewise.
+       * soft-fp/floatunditf.c: Likewise.
+       * soft-fp/floatunsidf.c: Likewise.
+       * soft-fp/floatunsisf.c: Likewise.
+       * soft-fp/floatunsitf.c: Likewise.
+       * soft-fp/gedf2.c: Likewise.
+       * soft-fp/gesf2.c: Likewise.
+       * soft-fp/getf2.c: Likewise.
+       * soft-fp/ledf2.c: Likewise.
+       * soft-fp/lesf2.c: Likewise.
+       * soft-fp/letf2.c: Likewise.
+       * soft-fp/muldf3.c: Likewise.
+       * soft-fp/mulsf3.c: Likewise.
+       * soft-fp/multf3.c: Likewise.
+       * soft-fp/negdf2.c: Likewise.
+       * soft-fp/negsf2.c: Likewise.
+       * soft-fp/negtf2.c: Likewise.
+       * soft-fp/op-1.h: Likewise.
+       * soft-fp/op-2.h: Likewise.
+       * soft-fp/op-4.h: Likewise.
+       * soft-fp/op-8.h: Likewise.
+       * soft-fp/op-common.h: Likewise.
+       * soft-fp/quad.h: Likewise.
+       * soft-fp/single.h: Likewise.
+       * soft-fp/soft-fp.h: Likewise.
+       * soft-fp/subdf3.c: Likewise.
+       * soft-fp/subsf3.c: Likewise.
+       * soft-fp/subtf3.c: Likewise.
+       * soft-fp/truncdfsf2.c: Likewise.
+       * soft-fp/trunctfdf2.c: Likewise.
+       * soft-fp/trunctfsf2.c: Likewise.
+       * soft-fp/unorddf2.c: Likewise.
+       * soft-fp/unordsf2.c: Likewise.
+       * soft-fp/unordtf2.c: Likewise.
+       * config/aarch64/sfp-machine.h (_FP_QNANNEGATEDP): Define to 0.
+       * config/arm/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
+       * config/c6x/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
+       * config/i386/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
+       * config/ia64/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
+       * config/lm32/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
+       * config/moxie/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
+       * config/rs6000/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
+       * config/score/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
+       * config/tilegx/sfp-machine32.h (_FP_QNANNEGATEDP): Likewise.
+       * config/tilegx/sfp-machine64.h (_FP_QNANNEGATEDP): Likewise.
+       * config/tilepro/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
+
 2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>
 
        * config/mips/lib2funcs.c: New file.
index 456bea4..306da17 100644 (file)
@@ -45,6 +45,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #define _FP_NANSIGN_Q          0
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 /* This appears to be in line with the VFP conventions in the v7-a
    ARM-ARM. Need to check with the v8 version.  */
index a89d05a..bb34895 100644 (file)
@@ -29,6 +29,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #define _FP_NANSIGN_Q          0
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 /* Someone please check this.  */
 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                     \
index 8ab1765..277959b 100644 (file)
@@ -50,6 +50,7 @@
 #define _FP_NANSIGN_Q          0
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 /* Someone please check this.  */
 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                     \
index b19d94b..4587b13 100644 (file)
@@ -15,6 +15,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #endif
 
 #define _FP_KEEPNANFRACP       1
+#define _FP_QNANNEGATEDP 0
 
 #define _FP_NANSIGN_S          1
 #define _FP_NANSIGN_D          1
index 4774194..e06bc9a 100644 (file)
@@ -24,6 +24,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #define _FP_NANFRAC_Q          _FP_QNANBIT_Q, 0
 
 #define _FP_KEEPNANFRACP       1
+#define _FP_QNANNEGATEDP 0
 
 #define _FP_NANSIGN_S          1
 #define _FP_NANSIGN_D          1
index 1903848..6dc15ba 100644 (file)
@@ -22,6 +22,7 @@
 #define _FP_NANSIGN_Q          0
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 /* Someone please check this.  */
 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                     \
index 98f9f1b..139d3ea 100644 (file)
@@ -27,6 +27,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #define _FP_NANSIGN_Q          0
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 /* Someone please check this.  */
 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                     \
index a0d1631..58c8721 100644 (file)
@@ -27,6 +27,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #define _FP_NANSIGN_Q          0
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 /* Someone please check this.  */
 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                     \
index 98f9f1b..139d3ea 100644 (file)
@@ -27,6 +27,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #define _FP_NANSIGN_Q          0
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 /* Someone please check this.  */
 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                     \
index 3784100..31a2032 100644 (file)
@@ -32,6 +32,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #define _FP_NANSIGN_Q          1
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                     \
   do {                                                         \
index 88bdcf5..7cf352e 100644 (file)
@@ -32,6 +32,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #define _FP_NANSIGN_Q          1
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                     \
   do {                                                         \
index ac5b828..a921533 100644 (file)
@@ -27,6 +27,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 #define _FP_NANSIGN_Q          1
 
 #define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
 
 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                     \
   do {                                                         \
index 5e66461..55df554 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a + b
-   Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 7f61d16..8a31449 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a + b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index f5da019..7a27325 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a + b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 105beab..c3dcf80 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a / b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 41e32c0..063462f 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a / b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index b932351..03d017d 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a / b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 5bad49c..759c2eb 100644 (file)
@@ -1,7 +1,6 @@
 /* Software floating-point emulation.
    Definitions for IEEE Double Precision
-   Copyright (C) 1997, 1998, 1999, 2006, 2007, 2008, 2009, 2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz),
index b5749b4..c93c118 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 0 iff a == b, 1 otherwise
-   Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 8bf3603..e5b2a5f 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 0 iff a == b, 1 otherwise
-   Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index e40f31a..47b5d5c 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 0 iff a == b, 1 otherwise
-   Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index f7082ef..ff76a8c 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a converted to IEEE quad
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index af9c6e6..7492755 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Definitions for IEEE Extended Precision.
-   Copyright (C) 1999,2006,2007,2012 Free Software Foundation, Inc.
+   Copyright (C) 1999-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek (jj@ultra.linux.cz).
 
@@ -203,7 +203,7 @@ union _FP_UNION_E
  * anyway, we optimize it by doing most of the calculations
  * in two UWtype registers instead of four.
  */
+
 #define _FP_SQRT_MEAT_E(R, S, T, X, q)                 \
   do {                                                 \
     q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1);                \
@@ -416,7 +416,7 @@ union _FP_UNION_E
        R##_f0 |= _FP_WORK_STICKY;                      \
       }                                                        \
   } while (0)
+
 #define FP_CMP_E(r,X,Y,un)     _FP_CMP(E,2,r,X,Y,un)
 #define FP_CMP_EQ_E(r,X,Y)     _FP_CMP_EQ(E,2,r,X,Y)
 #define FP_CMP_UNORD_E(r,X,Y)  _FP_CMP_UNORD(E,2,r,X,Y)
index ac84375..7fc4046 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a converted to IEEE double
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index a0d6270..8271a88 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a converted to IEEE quad
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index d1060bc..71ce1d4 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 64bit signed integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 6388719..f0c9960 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 32bit signed integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 9dc04b6..5f69d6a 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 64bit signed integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index c17514a..6fffdd7 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 32bit signed integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 3731580..ac67bfb 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 64bit signed integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 9ceed12..8f27ff6 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 32bit signed integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 4a5a7df..82fe1c7 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 64bit unsigned integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 82b54ad..43287b0 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 32bit unsigned integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index d99f6fa..c0691c6 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 64bit unsigned integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index b226b1f..3d00ce8 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 32bit unsigned integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 97c4ec9..d6038fa 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 64bit unsigned integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index df4ca9a..c8481f1 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a to 32bit unsigned integer
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index c1e0084..f6f594a 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 64bit signed integer to IEEE double
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 76a9245..72252e4 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 64bit signed integer to IEEE single
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index d6d8818..68da6c6 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 64bit signed integer to IEEE quad
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 3409ecd..ec578fb 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 32bit signed integer to IEEE double
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 002aa17..c9ff205 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 32bit signed integer to IEEE single
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 9cc6e65..6e24b9e 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 32bit signed integer to IEEE quad
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index ab1152c..1babcec 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 64bit unsigned integer to IEEE double
-   Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index ff544f9..1c645c0 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 64bit unsigned integer to IEEE single
-   Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 0723c40..fff73fd 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 64bit unsigned integer to IEEE quad
-   Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 4a955da..548dc7c 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 32bit unsigned integer to IEEE double
-   Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 7d588c6..2c0cc89 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 32bit unsigned integer to IEEE single
-   Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index e9a88f8..1099c2e 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Convert a 32bit unsigned integer to IEEE quad
-   Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 55298e5..0ef9f5d 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
-   Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index ea7c226..f0a8377 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
-   Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index dd19a9d..705d48b 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
-   Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 7642ced..7b8f403 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
-   Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 594b114..41f823b 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
-   Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index ae3060e..59342ca 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
-   Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 8aaebc0..8c08281 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a * b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 18c49a5..f0341a5 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a * b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 9fd10d8..35badf2 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a * b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 08494aa..3cc6f5f 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return -a
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 1eb9a50..d8d5910 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return -a
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index fe9f05e..1c08441 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return -a
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 2cffb7f..8e05e2f 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Basic one-word fraction declaration and manipulation.
-   Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz),
@@ -233,7 +233,7 @@ do {                                                        \
        _nl = X##_f << (_FP_W_TYPE_SIZE - 1);                           \
        _nh = X##_f >> 1;                                               \
       }                                                                        \
-                                                                       \
+                                                                       \
     udiv_qrnnd(_q, _r, _nh, _nl, _y);                                  \
     R##_f = _q | (_r != 0);                                            \
   } while (0)
@@ -255,14 +255,14 @@ do {                                                      \
     udiv_qrnnd(_q, _r, _nh, _nl, Y##_f);               \
     R##_f = _q | (_r != 0);                            \
   } while (0)
-  
-  
+
+
 /*
  * Square root algorithms:
  * We have just one right now, maybe Newton approximation
  * should be added for those machines where division is fast.
  */
+
 #define _FP_SQRT_MEAT_1(R, S, T, X, q)                 \
   do {                                                 \
     while (q != _FP_WORK_ROUND)                                \
@@ -286,7 +286,7 @@ do {                                                        \
   } while (0)
 
 /*
- * Assembly/disassembly for converting to/from integral types.  
+ * Assembly/disassembly for converting to/from integral types.
  * No shifting or overflow handled here.
  */
 
index 7c7a958..48e01d2 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Basic two-word fraction declaration and manipulation.
-   Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz),
 #define _FP_MAXFRAC_2          (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)
 
 /*
- * Internals 
+ * Internals
  */
 
 #define __FP_FRAC_SET_2(X,I1,I0)       (X##_f0 = I0, X##_f1 = I1)
    point multiplication.  This is useful if floating point
    multiplication has much bigger throughput than integer multiply.
    It is supposed to work for _FP_W_TYPE_SIZE 64 and wfracbits
-   between 106 and 120 only.  
+   between 106 and 120 only.
    Caller guarantees that X and Y has (1LLL << (wfracbits - 1)) set.
    SETFETZ is a macro which will disable all FPU exceptions and set rounding
    towards zero,  RESETFE should optionally reset it back.  */
     R##_f1 = (_t240 << (128 - (wfracbits - 1)))                                        \
             | ((_u240 & 0xffffff) >> ((wfracbits - 1) - 104));                 \
     R##_f0 = ((_u240 & 0xffffff) << (168 - (wfracbits - 1)))                   \
-            | ((_v240 & 0xffffff) << (144 - (wfracbits - 1)))                  \
-            | ((_w240 & 0xffffff) << (120 - (wfracbits - 1)))                  \
-            | ((_x240 & 0xffffff) >> ((wfracbits - 1) - 96))                   \
-            | _y240;                                                           \
+            | ((_v240 & 0xffffff) << (144 - (wfracbits - 1)))                  \
+            | ((_w240 & 0xffffff) << (120 - (wfracbits - 1)))                  \
+            | ((_x240 & 0xffffff) >> ((wfracbits - 1) - 96))                   \
+            | _y240;                                                           \
     resetfe;                                                                   \
   } while (0)
 
  * We have just one right now, maybe Newton approximation
  * should be added for those machines where division is fast.
  */
+
 #define _FP_SQRT_MEAT_2(R, S, T, X, q)                 \
   do {                                                 \
     while (q)                                          \
 
 
 /*
- * Assembly/disassembly for converting to/from integral types.  
+ * Assembly/disassembly for converting to/from integral types.
  * No shifting or overflow handled here.
  */
 
index a81e7ab..007b01f 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Basic four-word fraction declaration and manipulation.
-   Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz),
@@ -81,7 +81,7 @@
   } while (0)
 
 
-/* Right shift with sticky-lsb. 
+/* Right shift with sticky-lsb.
  * What this actually means is that we do a standard right-shift,
  * but that if any of the bits that fall off the right hand side
  * were one then we always set the LSbit.
  * We have just one right now, maybe Newton approximation
  * should be added for those machines where division is fast.
  */
+
 #define _FP_SQRT_MEAT_4(R, S, T, X, q)                         \
   do {                                                         \
     while (q)                                                  \
            S##_f[2] += (T##_f[1] > S##_f[1]);                  \
            S##_f[3] += (T##_f[2] > S##_f[2]);                  \
            __FP_FRAC_DEC_3(X##_f[3], X##_f[2], X##_f[1],       \
-                           T##_f[3], T##_f[2], T##_f[1]);      \
+                           T##_f[3], T##_f[2], T##_f[1]);      \
            R##_f[1] += q;                                      \
          }                                                     \
        _FP_FRAC_SLL_4(X, 1);                                   \
 
 
 /*
- * Internals 
+ * Internals
  */
 
 #define __FP_FRAC_SET_4(X,I3,I2,I1,I0)                                 \
 /* Convert FP values between word sizes. This appears to be more
  * complicated than I'd have expected it to be, so these might be
  * wrong... These macros are in any case somewhat bogus because they
- * use information about what various FRAC_n variables look like 
+ * use information about what various FRAC_n variables look like
  * internally [eg, that 2 word vars are X_f0 and x_f1]. But so do
- * the ones in op-2.h and op-1.h. 
+ * the ones in op-2.h and op-1.h.
  */
 #define _FP_FRAC_COPY_1_4(D, S)                (D##_f = S##_f[0])
 
@@ -630,7 +630,7 @@ do {                                                \
   D##_f1 = S##_f[1];                           \
 } while (0)
 
-/* Assembly/disassembly for converting to/from integral types.  
+/* Assembly/disassembly for converting to/from integral types.
  * No shifting or overflow handled here.
  */
 /* Put the FP value X into r, which is an integer of size rsize. */
index 9643793..8890d02 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Basic eight-word fraction declaration and manipulation.
-   Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz) and
@@ -77,7 +77,7 @@
   } while (0)
 
 
-/* Right shift with sticky-lsb. 
+/* Right shift with sticky-lsb.
  * What this actually means is that we do a standard right-shift,
  * but that if any of the bits that fall off the right hand side
  * were one then we always set the LSbit.
index 12fb16e..c4acb99 100644 (file)
@@ -1,5 +1,5 @@
 /* Software floating-point emulation. Common operations.
-   Copyright (C) 1997,1998,1999,2006,2007,2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz),
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#define _FP_DECL(wc, X)                                                \
-  _FP_I_TYPE X##_c __attribute__((unused)), X##_s, X##_e;      \
+#define _FP_DECL(wc, X)                                \
+  _FP_I_TYPE X##_c __attribute__((unused));    \
+  _FP_I_TYPE X##_s __attribute__((unused));    \
+  _FP_I_TYPE X##_e;                            \
   _FP_FRAC_DECL_##wc(X)
 
+/* Test whether the qNaN bit denotes a signaling NaN.  */
+#define _FP_FRAC_SNANP(fs, X)                                          \
+  ((_FP_QNANNEGATEDP)                                                  \
+   ? (_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)                    \
+   : !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs))
+#define _FP_FRAC_SNANP_SEMIRAW(fs, X)                                  \
+  ((_FP_QNANNEGATEDP)                                                  \
+   ? (_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs)                     \
+   : !(_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs))
+
 /*
  * Finish truely unpacking a native fp value by classifying the kind
  * of fp value and normalizing both the exponent and the fraction.
@@ -72,7 +84,7 @@ do {                                                                  \
       {                                                                        \
        X##_c = FP_CLS_NAN;                                             \
        /* Check for signaling NaN */                                   \
-       if (!(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs))            \
+       if (_FP_FRAC_SNANP(fs, X))                                      \
          FP_SET_EXCEPTION(FP_EX_INVALID);                              \
       }                                                                        \
     break;                                                             \
@@ -110,7 +122,7 @@ do {                                                        \
 do {                                                           \
   if (X##_e == _FP_EXPMAX_##fs                                 \
       && !_FP_FRAC_ZEROP_##wc(X)                               \
-      && !(_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs))       \
+      && _FP_FRAC_SNANP_SEMIRAW(fs, X))                                \
     FP_SET_EXCEPTION(FP_EX_INVALID);                           \
 } while (0)
 
@@ -125,6 +137,39 @@ do {                                                                       \
   _FP_FRAC_SLL_##wc(R, _FP_WORKBITS);                                  \
 } while (0)
 
+/* Make the fractional part a quiet NaN, preserving the payload
+   if possible, otherwise make it the canonical quiet NaN and set
+   the sign bit accordingly.  */
+#define _FP_SETQNAN(fs, wc, X)                                         \
+do {                                                                   \
+  if (_FP_QNANNEGATEDP)                                                        \
+    {                                                                  \
+      _FP_FRAC_HIGH_RAW_##fs(X) &= _FP_QNANBIT_##fs - 1;               \
+      if (_FP_FRAC_ZEROP_##wc(X))                                      \
+       {                                                               \
+         X##_s = _FP_NANSIGN_##fs;                                     \
+         _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs);                       \
+       }                                                               \
+    }                                                                  \
+  else                                                                 \
+    _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs;                     \
+} while (0)
+#define _FP_SETQNAN_SEMIRAW(fs, wc, X)                                 \
+do {                                                                   \
+  if (_FP_QNANNEGATEDP)                                                        \
+    {                                                                  \
+      _FP_FRAC_HIGH_##fs(X) &= _FP_QNANBIT_SH_##fs - 1;                        \
+      if (_FP_FRAC_ZEROP_##wc(X))                                      \
+       {                                                               \
+         X##_s = _FP_NANSIGN_##fs;                                     \
+         _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs);                       \
+         _FP_FRAC_SLL_##wc(X, _FP_WORKBITS);                           \
+       }                                                               \
+    }                                                                  \
+  else                                                                 \
+    _FP_FRAC_HIGH_##fs(X) |= _FP_QNANBIT_SH_##fs;                      \
+} while (0)
+
 /* Test whether a biased exponent is normal (not zero or maximum).  */
 #define _FP_EXP_NORMAL(fs, wc, X)      (((X##_e + 1) & _FP_EXPMAX_##fs) > 1)
 
@@ -157,7 +202,7 @@ do {                                                                \
          X##_s = _FP_NANSIGN_##fs;                             \
        }                                                       \
       else                                                     \
-       _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs;          \
+       _FP_SETQNAN(fs, wc, X);                                 \
     }                                                          \
 } while (0)
 
@@ -271,7 +316,7 @@ do {                                                                \
        X##_s = _FP_NANSIGN_##fs;                               \
       }                                                                \
     else                                                       \
-      _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs;           \
+      _FP_SETQNAN(fs, wc, X);                                  \
     break;                                                     \
   }                                                            \
 } while (0)
@@ -285,7 +330,7 @@ do {                                                                \
   if (X##_e == _FP_EXPMAX_##fs)                                        \
     {                                                          \
       if (!_FP_FRAC_ZEROP_##wc(X)                              \
-         && !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs))   \
+         && _FP_FRAC_SNANP(fs, X))                             \
        __ret = 1;                                              \
     }                                                          \
   __ret;                                                       \
@@ -746,11 +791,11 @@ do {                                                                       \
 #define _FP_MUL(fs, wc, R, X, Y)                       \
 do {                                                   \
   R##_s = X##_s ^ Y##_s;                               \
+  R##_e = X##_e + Y##_e + 1;                           \
   switch (_FP_CLS_COMBINE(X##_c, Y##_c))               \
   {                                                    \
   case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL):   \
     R##_c = FP_CLS_NORMAL;                             \
-    R##_e = X##_e + Y##_e + 1;                         \
                                                        \
     _FP_MUL_MEAT_##fs(R,X,Y);                          \
                                                        \
@@ -809,11 +854,11 @@ do {                                                      \
 #define _FP_DIV(fs, wc, R, X, Y)                       \
 do {                                                   \
   R##_s = X##_s ^ Y##_s;                               \
+  R##_e = X##_e - Y##_e;                               \
   switch (_FP_CLS_COMBINE(X##_c, Y##_c))               \
   {                                                    \
   case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL):   \
     R##_c = FP_CLS_NORMAL;                             \
-    R##_e = X##_e - Y##_e;                             \
                                                        \
     _FP_DIV_MEAT_##fs(R,X,Y);                          \
     break;                                             \
@@ -947,37 +992,37 @@ do {                                                                      \
     case FP_CLS_NAN:                                                   \
        _FP_FRAC_COPY_##wc(R, X);                                       \
        R##_s = X##_s;                                                  \
-       R##_c = FP_CLS_NAN;                                             \
-       break;                                                          \
+       R##_c = FP_CLS_NAN;                                             \
+       break;                                                          \
     case FP_CLS_INF:                                                   \
-       if (X##_s)                                                      \
-         {                                                             \
-           R##_s = _FP_NANSIGN_##fs;                                   \
+       if (X##_s)                                                      \
+         {                                                             \
+           R##_s = _FP_NANSIGN_##fs;                                   \
            R##_c = FP_CLS_NAN; /* NAN */                               \
            _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs);                     \
            FP_SET_EXCEPTION(FP_EX_INVALID);                            \
-         }                                                             \
-       else                                                            \
-         {                                                             \
-           R##_s = 0;                                                  \
-           R##_c = FP_CLS_INF; /* sqrt(+inf) = +inf */                 \
-         }                                                             \
-       break;                                                          \
+         }                                                             \
+       else                                                            \
+         {                                                             \
+           R##_s = 0;                                                  \
+           R##_c = FP_CLS_INF; /* sqrt(+inf) = +inf */                 \
+         }                                                             \
+       break;                                                          \
     case FP_CLS_ZERO:                                                  \
        R##_s = X##_s;                                                  \
        R##_c = FP_CLS_ZERO; /* sqrt(+-0) = +-0 */                      \
        break;                                                          \
     case FP_CLS_NORMAL:                                                        \
-       R##_s = 0;                                                      \
+       R##_s = 0;                                                      \
         if (X##_s)                                                     \
           {                                                            \
-           R##_c = FP_CLS_NAN; /* sNAN */                              \
+           R##_c = FP_CLS_NAN; /* NAN */                               \
            R##_s = _FP_NANSIGN_##fs;                                   \
            _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs);                     \
            FP_SET_EXCEPTION(FP_EX_INVALID);                            \
            break;                                                      \
           }                                                            \
-       R##_c = FP_CLS_NORMAL;                                          \
+       R##_c = FP_CLS_NORMAL;                                          \
         if (X##_e & 1)                                                 \
           _FP_FRAC_SLL_##wc(X, 1);                                     \
         R##_e = X##_e >> 1;                                            \
@@ -1118,8 +1163,9 @@ do {                                                                      \
          {                                                                  \
            /* Exactly representable; shift left.  */                        \
            _FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize);                        \
-           _FP_FRAC_SLL_##wc(X, (_FP_EXPBIAS_##fs                           \
-                                 + _FP_FRACBITS_##fs - 1 - X##_e));         \
+           if (_FP_EXPBIAS_##fs + _FP_FRACBITS_##fs - 1 - X##_e > 0)        \
+             _FP_FRAC_SLL_##wc(X, (_FP_EXPBIAS_##fs                         \
+                                   + _FP_FRACBITS_##fs - 1 - X##_e));       \
          }                                                                  \
        else                                                                 \
          {                                                                  \
@@ -1197,7 +1243,7 @@ do {                                                                       \
          D##_e = _FP_EXPMAX_##dfs;                                      \
          if (!_FP_FRAC_ZEROP_##swc(S))                                  \
            {                                                            \
-             if (!(_FP_FRAC_HIGH_RAW_##sfs(S) & _FP_QNANBIT_##sfs))     \
+             if (_FP_FRAC_SNANP(sfs, S))                                \
                FP_SET_EXCEPTION(FP_EX_INVALID);                         \
              _FP_FRAC_SLL_##dwc(D, (_FP_FRACBITS_##dfs                  \
                                     - _FP_FRACBITS_##sfs));             \
@@ -1284,7 +1330,7 @@ do {                                                                           \
              /* Semi-raw NaN must have all workbits cleared.  */            \
              _FP_FRAC_LOW_##dwc(D)                                          \
                &= ~(_FP_W_TYPE) ((1 << _FP_WORKBITS) - 1);                  \
-             _FP_FRAC_HIGH_##dfs(D) |= _FP_QNANBIT_SH_##dfs;                \
+             _FP_SETQNAN_SEMIRAW(dfs, dwc, D);                              \
            }                                                                \
        }                                                                    \
     }                                                                       \
index b05bd2d..f0aa07e 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Definitions for IEEE Quad Precision.
-   Copyright (C) 1997,1998,1999,2006,2007,2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz),
index 119d0db..dec0031 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Definitions for IEEE Single Precision.
-   Copyright (C) 1997,1998,1999,2006,2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz),
index 49a8770..b1c6e61 100644 (file)
@@ -1,6 +1,5 @@
 /* Software floating-point emulation.
-   Copyright (C) 1997,1998,1999,2000,2002,2003,2005,2006,2007,2012
-       Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz),
index 9352b0a..032ac0f 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a - b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 1182612..c9f56c7 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a - b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 0d73d4b..a111d57 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return a - b
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 54015c1..e9a7223 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Truncate IEEE double into IEEE single
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 16e817c..35c6496 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Truncate IEEE quad into IEEE double
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 82ef246..751c7c8 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Truncate IEEE quad into IEEE single
-   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com) and
                  Jakub Jelinek (jj@ultra.linux.cz).
index 3036a2f..2e77f2d 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 1 iff a or b is a NaN, 0 otherwise.
-   Copyright (C) 2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Joseph Myers (joseph@codesourcery.com).
 
index c22578c..b5b5322 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 1 iff a or b is a NaN, 0 otherwise.
-   Copyright (C) 2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Joseph Myers (joseph@codesourcery.com).
 
index 8f9b5c6..1a85c25 100644 (file)
@@ -1,6 +1,6 @@
 /* Software floating-point emulation.
    Return 1 iff a or b is a NaN, 0 otherwise.
-   Copyright (C) 2006,2007 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Joseph Myers (joseph@codesourcery.com).