diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-04 02:19:40 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-04 02:19:40 +0000 |
commit | 18fce2f0dfd3eafaa7d43c8249f98dac608e44a6 (patch) | |
tree | 83b1c680e0b8353f9185997e90b74e3512f4e6f1 /gcc/config/m68k | |
parent | 139b2431f3a89d494a7134c78b5567a4f9028fe2 (diff) | |
download | gcc-18fce2f0dfd3eafaa7d43c8249f98dac608e44a6.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57797 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k')
-rw-r--r-- | gcc/config/m68k/linux.h | 9 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.c | 21 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.h | 10 | ||||
-rw-r--r-- | gcc/config/m68k/m68kelf.h | 14 | ||||
-rw-r--r-- | gcc/config/m68k/m68kv4.h | 13 | ||||
-rw-r--r-- | gcc/config/m68k/netbsd-elf.h | 11 |
6 files changed, 22 insertions, 56 deletions
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 */ |