(PRINT_OPERAND_FLOAT): Removed.
(ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined. (PRINT_OPERAND): Turned off: use default. From-SVN: r13644
This commit is contained in:
parent
a34259fc5b
commit
6339db3f4a
|
@ -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; \
|
||||
|
|
Loading…
Reference in New Issue