OSDN Git Service

* real.c (etoe113, toe113): Ifndef INTEL_EXTENDED_IEEE_FORMAT.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 Dec 2001 09:23:05 +0000 (09:23 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 Dec 2001 09:23:05 +0000 (09:23 +0000)
        (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.

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

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

index b11afd8..19958f4 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 dd62aec..de737f6 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 1e4dab1..b9ee363 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.  */