* real.h (N): Special case 128 bit doubles.
authorAlan Modra <amodra@bigpond.net.au>
Sat, 23 Mar 2002 11:57:29 +0000 (11:57 +0000)
committerAlan Modra <amodra@gcc.gnu.org>
Sat, 23 Mar 2002 11:57:29 +0000 (22:27 +1030)
From-SVN: r51229

gcc/ChangeLog
gcc/real.h

index b95a707cdb6eb9826603f0bf4e0aa42c20e6d3b2..21bc263f7db4e170ba01c99202519e624fac8dbb 100644 (file)
@@ -1,5 +1,7 @@
 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
 
+       * real.h (N): Special case 128 bit doubles.
+
        * combine.c (simplify_comparison): When widening modes, ignore
        sign extension on CONST_INTs.
 
index d3cf780ef33a6e8beb8bd99addd7c5cc62823d4d..5683bbca4f111b1c90c0aa1cdecee3c4dcada8a5 100644 (file)
@@ -77,7 +77,12 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 /* REAL_VALUE_TYPE is an array of the minimum number of HOST_WIDE_INTs
    required to hold MAX_LONG_DOUBLE_TYPE_SIZE bits.  */
+#if MAX_LONG_DOUBLE_TYPE_SIZE == 128
+/* For 128 bit reals, we calculate internally with extra precision.  */
+#define N (160 / BITS_PER_UNIT)
+#else
 #define N (MAX_LONG_DOUBLE_TYPE_SIZE / BITS_PER_UNIT)
+#endif
 #define S sizeof (HOST_WIDE_INT)
 typedef struct {
   HOST_WIDE_INT r[N/S + (N%S ? 1 : 0)]; /* round up */