diff options
Diffstat (limited to 'gcc/config/m68k/m68k.h')
-rw-r--r-- | gcc/config/m68k/m68k.h | 39 |
1 files changed, 10 insertions, 29 deletions
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index feb27a2da4a..a5a63544c0b 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -69,7 +69,7 @@ extern int target_flags; #define MASK_68881 2 #define TARGET_68881 (target_flags & MASK_68881) -/* Compile using 68020 bitfield insns. */ +/* Compile using 68020 bit-field insns. */ #define MASK_BITFIELD 4 #define TARGET_BITFIELD (target_flags & MASK_BITFIELD) @@ -277,15 +277,7 @@ extern int target_flags; Don't use this macro to turn on various extra optimizations for `-O'. That is what `OPTIMIZATION_OPTIONS' is for. */ -#define OVERRIDE_OPTIONS \ -{ \ - override_options(); \ - if (! TARGET_68020 && flag_pic == 2) \ - error("-fPIC is not currently supported on the 68000 or 68010\n"); \ - if (TARGET_PCREL && flag_pic == 0) \ - flag_pic = 1; \ - SUBTARGET_OVERRIDE_OPTIONS; \ -} +#define OVERRIDE_OPTIONS override_options() /* These are meant to be redefined in the host dependent files */ #define SUBTARGET_SWITCHES @@ -297,6 +289,11 @@ extern int target_flags; /* Define for XFmode extended real floating point support. */ #define LONG_DOUBLE_TYPE_SIZE 96 +/* Set the value of FLT_EVAL_METHOD in float.h. When using 68040 fp + instructions, we get proper intermediate rounding, otherwise we + get extended precision results. */ +#define TARGET_FLT_EVAL_METHOD (TARGET_68040_ONLY ? 0 : 2) + /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. This is true for 68020 insns such as bfins and bfexts. @@ -1193,10 +1190,8 @@ __transfer_from_trampoline () \ /* Addressing modes, and classification of registers for them. */ #define HAVE_POST_INCREMENT 1 -/* #define HAVE_POST_DECREMENT 0 */ #define HAVE_PRE_DECREMENT 1 -/* #define HAVE_PRE_INCREMENT 0 */ /* Macros to check register numbers against specific register classes. */ @@ -1743,12 +1738,6 @@ __transfer_from_trampoline () \ #define ASM_OUTPUT_LABELREF(FILE,NAME) \ asm_fprintf (FILE, "%0U%s", NAME) -/* This is how to output an internal numbered label where - PREFIX is the class of label and NUM is the number within the class. */ - -#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \ - asm_fprintf (FILE, "%0L%s%d:\n", PREFIX, NUM) - /* This is how to store into the string LABEL the symbol_ref name of an internal numbered label where PREFIX is the class of label and NUM is the number within the class. @@ -1810,14 +1799,6 @@ __transfer_from_trampoline () \ assemble_name ((FILE), (NAME)), \ fprintf ((FILE), ",%u\n", (ROUNDED))) -/* Store in OUTPUT a string (made with alloca) containing - an assembler-name for a local static variable named NAME. - LABELNO is an integer which is different for each call. */ - -#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \ -( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10), \ - sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO))) - /* Output a float value (represented as a C double) as an immediate operand. This macro is a 68k-specific macro. */ @@ -1826,7 +1807,7 @@ __transfer_from_trampoline () \ if (CODE == 'f') \ { \ char dstr[30]; \ - REAL_VALUE_TO_DECIMAL (VALUE, "%.9g", dstr); \ + real_to_decimal (dstr, &(VALUE), sizeof (dstr), 9, 0); \ asm_fprintf ((FILE), "%I0r%s", dstr); \ } \ else \ @@ -1841,7 +1822,7 @@ __transfer_from_trampoline () \ This macro is a 68k-specific macro. */ #define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE) \ do { char dstr[30]; \ - REAL_VALUE_TO_DECIMAL (VALUE, "%.20g", dstr); \ + real_to_decimal (dstr, &(VALUE), sizeof (dstr), 0, 1); \ asm_fprintf (FILE, "%I0r%s", dstr); \ } while (0) @@ -1849,7 +1830,7 @@ __transfer_from_trampoline () \ generated by m68k.md. */ #define ASM_OUTPUT_LONG_DOUBLE_OPERAND(FILE,VALUE) \ do { char dstr[30]; \ - REAL_VALUE_TO_DECIMAL (VALUE, "%.20g", dstr); \ + real_to_decimal (dstr, &(VALUE), sizeof (dstr), 0, 1); \ asm_fprintf (FILE, "%I0r%s", dstr); \ } while (0) |