(output_toc): Use REAL_VALUE_* macros.
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 21 Feb 1995 12:29:42 +0000 (07:29 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 21 Feb 1995 12:29:42 +0000 (07:29 -0500)
From-SVN: r8985

gcc/config/rs6000/rs6000.c

index 6eb40f3cd2621f94ca748b7e9f548179faa335c6..cd6b9a143fe8e83ea4a2eef84241abc66eb5cf18 100644 (file)
@@ -1996,17 +1996,18 @@ output_toc (file, x, labelno)
      FP constants.  */
   if (GET_CODE (x) == CONST_DOUBLE
       && GET_MODE (x) == DFmode
-      && TARGET_FLOAT_FORMAT == HOST_FLOAT_FORMAT
-      && BITS_PER_WORD == HOST_BITS_PER_INT
       && ! (TARGET_NO_FP_IN_TOC && ! TARGET_MINIMAL_TOC))
     {
+      REAL_VALUE_TYPE r;
+      long l[2];
+
+      REAL_VALUE_FROM_CONST_DOUBLE (r, x);
+      REAL_VALUE_TO_TARGET_DOUBLE (r, l);
       if (TARGET_MINIMAL_TOC)
-       fprintf (file, "\t.long %d\n\t.long %d\n",
-                CONST_DOUBLE_LOW (x), CONST_DOUBLE_HIGH (x));
+       fprintf (file, "\t.long %ld\n\t.long %ld\n", l[0], l[1]);
       else
-       fprintf (file, "\t.tc FD_%x_%x[TC],%d,%d\n",
-                CONST_DOUBLE_LOW (x), CONST_DOUBLE_HIGH (x),
-                CONST_DOUBLE_LOW (x), CONST_DOUBLE_HIGH (x));
+       fprintf (file, "\t.tc FD_%lx_%lx[TC],%ld,%ld\n",
+                l[0], l[1], l[0], l[1]);
       return;
     }
   else if (GET_CODE (x) == CONST_DOUBLE && GET_MODE (x) == SFmode