(ASM_OUTPUT_FLOAT_OPERAND): Output as hex, unless CODE is 'f'.
authorRichard Stallman <rms@gnu.org>
Thu, 13 May 1993 13:57:34 +0000 (13:57 +0000)
committerRichard Stallman <rms@gnu.org>
Thu, 13 May 1993 13:57:34 +0000 (13:57 +0000)
From-SVN: r4437

gcc/config/m68k/next.h
gcc/config/m68k/sun2o4.h
gcc/config/m68k/sun3.h

index c336d67fbe031b6a1dcee30eb959afd433c485d9..845bf7c1b93886c05d655c971a287dd1328bc1a5 100644 (file)
@@ -102,19 +102,29 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
     fprintf (FILE, "#0%c%x", (CODE) == 'f' ? 'b' : 'x', hex);          \
   } while (0)
 #else
-#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE)                      \
-  do{ if (REAL_VALUE_ISINF (VALUE))                                    \
-        {                                                              \
-          if (REAL_VALUE_NEGATIVE (VALUE))                             \
-            fprintf (FILE, "#0r-99e999");                              \
-          else                                                         \
-            fprintf (FILE, "#0r99e999");                               \
-        }                                                              \
-      else                                                             \
-        { char dstr[30];                                               \
-          REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr);               \
-          fprintf (FILE, "#0r%s", dstr);                               \
-        }                                                              \
+#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE)              \
+  do{                                                          \
+      if (CODE != 'f')                                         \
+        {                                                      \
+          long l;                                              \
+          REAL_VALUE_TO_TARGET_SINGLE (VALUE, l);              \
+          if (sizeof (int) == sizeof (long))                   \
+            asm_fprintf ((FILE), "%I0x%x", l);                 \
+          else                                                 \
+            asm_fprintf ((FILE), "%I0x%lx", l);                        \
+        }                                                      \
+      else if (REAL_VALUE_ISINF (VALUE))                       \
+        {                                                      \
+          if (REAL_VALUE_NEGATIVE (VALUE))                     \
+            fprintf (FILE, "#0r-99e999");                      \
+          else                                                 \
+            fprintf (FILE, "#0r99e999");                       \
+        }                                                      \
+      else                                                     \
+        { char dstr[30];                                       \
+          REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr);       \
+          fprintf (FILE, "#0r%s", dstr);                       \
+        }                                                      \
     } while (0)
 #endif
 
index 04b425e355f8b46808398dc5482fc909cc4e6f24..6ae0ca8bc2a64816f35d99e39475795e5b75ee21 100644 (file)
@@ -138,23 +138,33 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
     } while (0)
 
 #undef ASM_OUTPUT_FLOAT_OPERAND
-#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE)                      \
- do { if (REAL_VALUE_ISINF (VALUE))                                    \
-        {                                                              \
-          if (REAL_VALUE_NEGATIVE (VALUE))                             \
-            fprintf (FILE, "#0r-99e999");                              \
-          else                                                         \
-            fprintf (FILE, "#0r99e999");                               \
-        }                                                              \
-      else if (REAL_VALUE_MINUS_ZERO (VALUE))                          \
-        {                                                              \
-          fprintf (FILE, "#0r-0.0");                                   \
-        }                                                              \
-      else                                                             \
-        { char dstr[30];                                               \
-          REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr);               \
-          fprintf (FILE, "#0r%s", dstr);                               \
-        }                                                              \
+#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE)              \
+ do {                                                          \
+      if (CODE != 'f')                                         \
+        {                                                      \
+          long l;                                              \
+          REAL_VALUE_TO_TARGET_SINGLE (VALUE, l);              \
+          if (sizeof (int) == sizeof (long))                   \
+            asm_fprintf ((FILE), "%I0x%x", l);                 \
+          else                                                 \
+            asm_fprintf ((FILE), "%I0x%lx", l);                        \
+        }                                                      \
+      else if (REAL_VALUE_ISINF (VALUE))                       \
+        {                                                      \
+          if (REAL_VALUE_NEGATIVE (VALUE))                     \
+            fprintf (FILE, "#0r-99e999");                      \
+          else                                                 \
+            fprintf (FILE, "#0r99e999");                       \
+        }                                                      \
+      else if (REAL_VALUE_MINUS_ZERO (VALUE))                  \
+        {                                                      \
+          fprintf (FILE, "#0r-0.0");                           \
+        }                                                      \
+      else                                                     \
+        { char dstr[30];                                       \
+          REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr);       \
+          fprintf (FILE, "#0r%s", dstr);                       \
+        }                                                      \
     } while (0)
 
 #undef ASM_OUTPUT_DOUBLE_OPERAND
index b8c67f69fc7a5db5abd73df7e982eb6fa54fe4c5..9ab1bcc2b24ba6b03ab3eec8fa536f36170bfc02 100644 (file)
@@ -224,23 +224,33 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
    There's no way to output a NaN's fraction, so we lose it.  */
   
 #undef ASM_OUTPUT_FLOAT_OPERAND
-#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE)                      \
- do { if (REAL_VALUE_ISINF (VALUE))                                    \
-        {                                                              \
-          if (REAL_VALUE_NEGATIVE (VALUE))                             \
-            asm_fprintf (FILE, "%I0r-99e999");                         \
-          else                                                         \
-            asm_fprintf (FILE, "%I0r99e999");                          \
-        }                                                              \
-      else if (REAL_VALUE_MINUS_ZERO (VALUE))                          \
-        {                                                              \
-          asm_fprintf (FILE, "%I0r-0.0");                              \
-        }                                                              \
-      else                                                             \
-        { char dstr[30];                                               \
-          REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr);               \
-          asm_fprintf (FILE, "%I0r%s", dstr);                          \
-        }                                                              \
+#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE)              \
+ do {                                                          \
+      if (CODE != 'f')                                         \
+        {                                                      \
+          long l;                                              \
+          REAL_VALUE_TO_TARGET_SINGLE (VALUE, l);              \
+          if (sizeof (int) == sizeof (long))                   \
+            asm_fprintf ((FILE), "%I0x%x", l);                 \
+          else                                                 \
+            asm_fprintf ((FILE), "%I0x%lx", l);                        \
+        }                                                      \
+      else if (REAL_VALUE_ISINF (VALUE))                       \
+        {                                                      \
+          if (REAL_VALUE_NEGATIVE (VALUE))                     \
+            asm_fprintf (FILE, "%I0r-99e999");                 \
+          else                                                 \
+            asm_fprintf (FILE, "%I0r99e999");                  \
+        }                                                      \
+      else if (REAL_VALUE_MINUS_ZERO (VALUE))                  \
+        {                                                      \
+          asm_fprintf (FILE, "%I0r-0.0");                      \
+        }                                                      \
+      else                                                     \
+        { char dstr[30];                                       \
+          REAL_VALUE_TO_DECIMAL ((VALUE), "%.9g", dstr);       \
+          asm_fprintf (FILE, "%I0r%s", dstr);                  \
+        }                                                      \
     } while (0)
 
 #undef ASM_OUTPUT_DOUBLE_OPERAND