real.c (etoe113, toe113): Ifndef INTEL_EXTENDED_IEEE_FORMAT.
authorRichard Henderson <rth@redhat.com>
Fri, 28 Dec 2001 09:23:05 +0000 (01:23 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 28 Dec 2001 09:23:05 +0000 (01:23 -0800)
        * real.c (etoe113, toe113): Ifndef INTEL_EXTENDED_IEEE_FORMAT.
        (endian): Clear word 3 for INTEL_EXTENDED_IEEE_FORMAT.
        (etartdouble): Invoke etoe64 for INTEL_EXTENDED_IEEE_FORMAT.
        * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Don't special case
        INTEL_EXTENDED_IEEE_FORMAT.

From-SVN: r48342

gcc/ChangeLog
gcc/real.c
gcc/real.h

index b11afd83e2388a473d8005ebada7284e81fdb9c4..19958f4e5284b7c1eb3b50278c72aa070e412392 100644 (file)
@@ -1,3 +1,11 @@
+2001-12-28  Richard Henderson  <rth@redhat.com>
+
+       * real.c (etoe113, toe113): Ifndef INTEL_EXTENDED_IEEE_FORMAT.
+       (endian): Clear word 3 for INTEL_EXTENDED_IEEE_FORMAT.
+       (etartdouble): Invoke etoe64 for INTEL_EXTENDED_IEEE_FORMAT.
+       * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Don't special case
+       INTEL_EXTENDED_IEEE_FORMAT.
+
 2001-12-27  Geoff Keating  <geoffk@redhat.com>
 
        * combine.c (try_combine): Mask off sign bits when combining
index dd62aeca23a521448e555f3bf3cb27f86d4fbe08..de737f67069a7fb734b49481af154121993415b3 100644 (file)
@@ -425,8 +425,10 @@ static void e64toe PARAMS ((UEMUSHORT *, UEMUSHORT *));
 static void e113toe    PARAMS ((UEMUSHORT *, UEMUSHORT *));
 #endif
 static void e24toe     PARAMS ((UEMUSHORT *, UEMUSHORT *));
+#if (INTEL_EXTENDED_IEEE_FORMAT == 0)
 static void etoe113    PARAMS ((UEMUSHORT *, UEMUSHORT *));
 static void toe113     PARAMS ((UEMUSHORT *, UEMUSHORT *));
+#endif
 static void etoe64     PARAMS ((UEMUSHORT *, UEMUSHORT *));
 static void toe64      PARAMS ((UEMUSHORT *, UEMUSHORT *));
 static void etoe53     PARAMS ((UEMUSHORT *, UEMUSHORT *));
@@ -524,7 +526,10 @@ endian (e, x, mode)
          t = (unsigned long) e[7] & 0xffff;
          t |= th << 16;
          x[3] = (long) t;
+#else
+         x[3] = 0;
 #endif
+         /* FALLTHRU */
 
        case XFmode:
          /* Swap halfwords in the third long.  */
@@ -532,7 +537,7 @@ endian (e, x, mode)
          t = (unsigned long) e[5] & 0xffff;
          t |= th << 16;
          x[2] = (long) t;
-         /* fall into the double case */
+         /* FALLTHRU */
 
        case DFmode:
          /* Swap halfwords in the second word.  */
@@ -540,7 +545,7 @@ endian (e, x, mode)
          t = (unsigned long) e[3] & 0xffff;
          t |= th << 16;
          x[1] = (long) t;
-         /* fall into the float case */
+         /* FALLTHRU */
 
        case SFmode:
        case HFmode:
@@ -568,7 +573,10 @@ endian (e, x, mode)
          t = (unsigned long) e[6] & 0xffff;
          t |= th << 16;
          x[3] = (long) t;
+#else
+         x[3] = 0;
 #endif
+         /* FALLTHRU */
 
        case XFmode:
          /* Pack the third long.
@@ -578,7 +586,7 @@ endian (e, x, mode)
          t = (unsigned long) e[4] & 0xffff;
          t |= th << 16;
          x[2] = (long) t;
-         /* fall into the double case */
+         /* FALLTHRU */
 
        case DFmode:
          /* Pack the second long */
@@ -586,7 +594,7 @@ endian (e, x, mode)
          t = (unsigned long) e[2] & 0xffff;
          t |= th << 16;
          x[1] = (long) t;
-         /* fall into the float case */
+         /* FALLTHRU */
 
        case SFmode:
        case HFmode:
@@ -1256,7 +1264,11 @@ etartdouble (r, l)
   UEMUSHORT e[NE];
 
   GET_REAL (&r, e);
+#if INTEL_EXTENDED_IEEE_FORMAT == 0
   etoe113 (e, e);
+#else
+  etoe64 (e, e);
+#endif
   endian (e, l, TFmode);
 }
 
@@ -3535,6 +3547,7 @@ e24toe (pe, y)
 #endif /* not IBM */
 }
 
+#if (INTEL_EXTENDED_IEEE_FORMAT == 0)
 /* Convert e-type X to IEEE 128-bit long double format E.  */
 
 static void
@@ -3627,6 +3640,7 @@ toe113 (a, b)
        *q-- = *p++;
     }
 }
+#endif
 
 /* Convert e-type X to IEEE double extended format E.  */
 
@@ -5515,9 +5529,11 @@ read_expnt:
     case 64:
       toe64 (yy, y);
       break;
+#if (INTEL_EXTENDED_IEEE_FORMAT == 0)
     case 113:
       toe113 (yy, y);
       break;
+#endif
     case NBITS:
       emovo (yy, y);
       break;
index 1e4dab188e25a9dc99e13dd4c8b0fa6ca6cdba10..b9ee36356f275363e0c1632c789511a3f310f423 100644 (file)
@@ -208,15 +208,11 @@ extern REAL_VALUE_TYPE ereal_from_double PARAMS ((HOST_WIDE_INT *));
   ereal_from_uint (&d, lo, hi, mode)
 
 /* IN is a REAL_VALUE_TYPE.  OUT is an array of longs.  */
-#if (INTEL_EXTENDED_IEEE_FORMAT != 0) && (MAX_LONG_DOUBLE_TYPE_SIZE == 128)
-#define REAL_VALUE_TO_TARGET_LONG_DOUBLE(IN, OUT) (etarldouble ((IN), (OUT)))
-#else
 #define REAL_VALUE_TO_TARGET_LONG_DOUBLE(IN, OUT)              \
    (LONG_DOUBLE_TYPE_SIZE == 64 ? etardouble ((IN), (OUT))     \
     : LONG_DOUBLE_TYPE_SIZE == 96 ? etarldouble ((IN), (OUT))  \
     : LONG_DOUBLE_TYPE_SIZE == 128 ? etartdouble ((IN), (OUT))  \
     : abort())
-#endif
 #define REAL_VALUE_TO_TARGET_DOUBLE(IN, OUT) (etardouble ((IN), (OUT)))
 
 /* IN is a REAL_VALUE_TYPE.  OUT is a long.  */