OSDN Git Service

(PRINT_OPERAND_FLOAT): Removed.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 15 Feb 1997 23:40:22 +0000 (23:40 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 15 Feb 1997 23:40:22 +0000 (23:40 +0000)
(ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined.
(PRINT_OPERAND): Turned off: use default.

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

gcc/config/m68k/hp320.h

index f61e2f2..1388e02 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions of target machine for GNU compiler.  HP-UX 68000/68020 version.
-   Copyright (C) 1987, 88, 93, 94, 95, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1987, 88, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -178,8 +178,6 @@ Boston, MA 02111-1307, USA.  */
 #undef ASM_OUTPUT_COMMON
 #undef ASM_OUTPUT_LOCAL
 #undef ASM_FORMAT_PRIVATE_NAME
-#undef PRINT_OPERAND
-#undef PRINT_OPERAND_ADDRESS
 #undef FUNCTION_PROFILER
 #undef ASM_OUTPUT_INTERNAL_LABEL
 #undef GLOBAL_ASM_OP
@@ -333,23 +331,54 @@ do { long l[3];                                                           \
 #define ASM_OUTPUT_SOURCE_FILENAME(FILE, FILENAME)
 #define ASM_OUTPUT_SOURCE_LINE(FILE, LINENO)
 
+/* Output a float value (represented as a C double) as an immediate operand.
+   This macro is a 68k-specific macro.  */
+
+#undef ASM_OUTPUT_FLOAT_OPERAND
 #ifdef AS_BUG_FLOATING_CONSTANT
-#define PRINT_OPERAND_FLOAT(CODE,FILE,VALUE,INT)       \
- do { REAL_VALUE_TO_TARGET_SINGLE (VALUE, INT);                \
-      fprintf (FILE, "&0x%x", INT); } while (0)
+#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE)              \
+ do { long l;                                                  \
+      REAL_VALUE_TO_TARGET_SINGLE (VALUE, l);                  \
+      fprintf ((FILE), "&0x%lx", l);                           \
+     } while (0)
 #else
-#define PRINT_OPERAND_FLOAT(CODE,FILE,VALUE,INT)       \
- do { if (CODE == 'f')                                 \
-        { char dstr[30];                               \
-          REAL_VALUE_TO_DECIMAL (VALUE, "%.9g", dstr); \
-          fprintf (FILE, "&0f%s", dstr);               \
-        }                                              \
-      else                                             \
-        {                                              \
-          REAL_VALUE_TO_TARGET_SINGLE (VALUE, INT);    \
-          fprintf (FILE, "&0x%x", INT); } } while (0)
+#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE)              \
+ do {                                                          \
+      if (CODE == 'f')                                         \
+        {                                                      \
+          char dstr[30];                                       \
+          REAL_VALUE_TO_DECIMAL (VALUE, "%.9g", dstr);         \
+          fprintf ((FILE), "&0f%s", dstr);                     \
+        }                                                      \
+      else                                                     \
+        {                                                      \
+          long l;                                              \
+          REAL_VALUE_TO_TARGET_SINGLE (VALUE, l);              \
+          fprintf ((FILE), "&0x%lx", l);                       \
+        }                                                      \
+     } while (0)
 #endif /* AS_BUG_FLOATING_CONSTANT */
 
+/* Output a double value (represented as a C double) as an immediate operand.
+   This macro is a 68k-specific macro.  */
+#undef ASM_OUTPUT_DOUBLE_OPERAND
+#define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE)                          \
+ do { char dstr[30];                                                   \
+      REAL_VALUE_TO_DECIMAL (VALUE, "%.20g", dstr);                    \
+      fprintf (FILE, "&0f%s", dstr);                                   \
+    } while (0)
+
+/* Note, long double immediate operands are not actually
+   generated by m68k.md.  */
+#undef ASM_OUTPUT_LONG_DOUBLE_OPERAND
+#define ASM_OUTPUT_LONG_DOUBLE_OPERAND(FILE,VALUE)                     \
+ do { char dstr[30];                                                   \
+      REAL_VALUE_TO_DECIMAL (VALUE, "%.20g", dstr);                    \
+      fprintf (FILE, "&0f%s", dstr);                                   \
+    } while (0)
+
+#if 0
+#undef PRINT_OPERAND
 #define PRINT_OPERAND(FILE, X, CODE)  \
 { if (CODE == '.') fprintf (FILE, ".");                                        \
   else if (CODE == '#') fprintf (FILE, "&");                           \
@@ -380,7 +409,9 @@ do { long l[3];                                                             \
       REAL_VALUE_TO_DECIMAL (r, "%.20g", dstr);                                \
       fprintf (FILE, "&0f%s", dstr); }                                 \
   else { putc ('&', FILE); output_addr_const (FILE, X); }}
+#endif
 
+#undef PRINT_OPERAND_ADDRESS
 #define PRINT_OPERAND_ADDRESS(FILE, ADDR)  \
 { register rtx reg1, reg2, breg, ireg;                                 \
   register rtx addr = ADDR;                                            \