From adf2ac37137aa5a76823cc24ae5dbebab4e587f5 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 3 Oct 2002 19:19:40 -0700 Subject: [PATCH] m68k.h (OVERRIDE_OPTIONS): Move additional code ... * config/m68k/m68k.h (OVERRIDE_OPTIONS): Move additional code ... * config/m68k/m68k.c (override_options): ... here. * config/m68k/m68kelf.h (OVERRIDE_OPTIONS): Remove. * config/m68k/m68kv4.h (OVERRIDE_OPTIONS): Remove. * config/m68k/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. * config/m68k/netbsd-elf.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. From-SVN: r57797 --- gcc/ChangeLog | 9 +++++++++ gcc/config/m68k/linux.h | 9 --------- gcc/config/m68k/m68k.c | 21 +++++++++++++++++++++ gcc/config/m68k/m68k.h | 10 +--------- gcc/config/m68k/m68kelf.h | 14 -------------- gcc/config/m68k/m68kv4.h | 13 ------------- gcc/config/m68k/netbsd-elf.h | 11 ----------- 7 files changed, 31 insertions(+), 56 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f1e80bbb866..c15ccb72daa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2002-10-03 Richard Henderson + + * config/m68k/m68k.h (OVERRIDE_OPTIONS): Move additional code ... + * config/m68k/m68k.c (override_options): ... here. + * config/m68k/m68kelf.h (OVERRIDE_OPTIONS): Remove. + * config/m68k/m68kv4.h (OVERRIDE_OPTIONS): Remove. + * config/m68k/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. + * config/m68k/netbsd-elf.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. + 2002-10-03 Richard Henderson * real.h (struct real_value): Use ENUM_BITFIELD. diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h index af7b9285c2c..2778d27f5f7 100644 --- a/gcc/config/m68k/linux.h +++ b/gcc/config/m68k/linux.h @@ -315,15 +315,6 @@ do { \ || (GET_CODE (X) == SYMBOL_REF && SYMBOL_REF_FLAG (X)) \ || PCREL_GENERAL_OPERAND_OK) -/* Turn off function cse if we are doing PIC. We always want function - call to be done as `bsr foo@PLTPC', so it will force the assembler - to create the PLT entry for `foo'. Doing function cse will cause - the address of `foo' to be loaded into a register, which is exactly - what we want to avoid when we are doing PIC on svr4 m68k. */ -#undef SUBTARGET_OVERRIDE_OPTIONS -#define SUBTARGET_OVERRIDE_OPTIONS \ - if (flag_pic) flag_no_function_cse = 1; - /* For m68k SVR4, structures are returned using the reentrant technique. */ #undef PCC_STATIC_STRUCT_RETURN diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 6114664bb8b..fc635fb9aa8 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -175,6 +175,27 @@ override_options () m68k_align_funcs = i; } + /* -fPIC uses 32-bit pc-relative displacements, which don't exist + until the 68020. */ + if (! TARGET_68020 && flag_pic == 2) + error("-fPIC is not currently supported on the 68000 or 68010\n"); + + /* ??? A historic way of turning on pic, or is this intended to + be an embedded thing that doesn't have the same name binding + significance that it does on hosted ELF systems? */ + if (TARGET_PCREL && flag_pic == 0) + flag_pic = 1; + + /* Turn off function cse if we are doing PIC. We always want function call + to be done as `bsr foo@PLTPC', so it will force the assembler to create + the PLT entry for `foo'. Doing function cse will cause the address of + `foo' to be loaded into a register, which is exactly what we want to + avoid when we are doing PIC on svr4 m68k. */ + if (flag_pic) + flag_no_function_cse = 1; + + SUBTARGET_OVERRIDE_OPTIONS; + /* Tell the compiler which flavor of XFmode we're using. */ real_format_for_mode[XFmode - QFmode] = &ieee_extended_motorola_format; } diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index 3650b91feef..703a3796611 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -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 diff --git a/gcc/config/m68k/m68kelf.h b/gcc/config/m68k/m68kelf.h index fef3ebcda85..7866a239209 100644 --- a/gcc/config/m68k/m68kelf.h +++ b/gcc/config/m68k/m68kelf.h @@ -251,20 +251,6 @@ extern int switch_table_difference_label_flag; || (GET_CODE (X) == SYMBOL_REF && SYMBOL_REF_FLAG (X)) \ || PCREL_GENERAL_OPERAND_OK) -/* Turn off function cse if we are doing PIC. We always want function call - to be done as `bsr foo@PLTPC', so it will force the assembler to create - the PLT entry for `foo'. Doing function cse will cause the address of `foo' - to be loaded into a register, which is exactly what we want to avoid when - we are doing PIC on svr4 m68k. */ -#undef OVERRIDE_OPTIONS -#define OVERRIDE_OPTIONS \ -{ \ - if (flag_pic) flag_no_function_cse = 1; \ - 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; \ -} /* end of stuff from m68kv4.h */ #undef SGS_CMP_ORDER diff --git a/gcc/config/m68k/m68kv4.h b/gcc/config/m68k/m68kv4.h index fbe7c426731..5318824ecb3 100644 --- a/gcc/config/m68k/m68kv4.h +++ b/gcc/config/m68k/m68kv4.h @@ -283,19 +283,6 @@ int switch_table_difference_label_flag; || (GET_CODE (X) == SYMBOL_REF && SYMBOL_REF_FLAG (X)) \ || PCREL_GENERAL_OPERAND_OK) -/* Turn off function cse if we are doing PIC. We always want function call - to be done as `bsr foo@PLTPC', so it will force the assembler to create - the PLT entry for `foo'. Doing function cse will cause the address of `foo' - to be loaded into a register, which is exactly what we want to avoid when - we are doing PIC on svr4 m68k. */ -#undef OVERRIDE_OPTIONS -#define OVERRIDE_OPTIONS \ -{ \ - if (flag_pic) flag_no_function_cse = 1; \ - if (! TARGET_68020 && flag_pic == 2) \ - error("-fPIC is not currently supported on the 68000 or 68010\n"); \ -} - /* Output assembler code for a block containing the constant parts of a trampoline, leaving space for the variable parts. */ diff --git a/gcc/config/m68k/netbsd-elf.h b/gcc/config/m68k/netbsd-elf.h index 92291445452..078cd14982b 100644 --- a/gcc/config/m68k/netbsd-elf.h +++ b/gcc/config/m68k/netbsd-elf.h @@ -273,17 +273,6 @@ while (0) fprintf ((FILE), ",%u\n", (SIZE))) -/* Turn off function cse if we are doing PIC. We always want function - call to be done as `bsr foo@PLTPC', so it will force the assembler - to create the PLT entry for `foo'. Doing function cse will cause - the address of `foo' to be loaded into a register, which is exactly - what we want to avoid when we are doing PIC on svr4 m68k. */ - -#undef SUBTARGET_OVERRIDE_OPTIONS -#define SUBTARGET_OVERRIDE_OPTIONS \ - if (flag_pic) flag_no_function_cse = 1; - - /* XXX This is the end of the chunk lifted from m68kelf.h */ -- 2.30.2