Commit 6339db3f by Richard Kenner

(PRINT_OPERAND_FLOAT): Removed.

(ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined.
(PRINT_OPERAND): Turned off: use default.

From-SVN: r13644
parent a34259fc
/* 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; \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment