diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2016-10-17 22:34:53 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2016-10-17 22:34:53 +0000 |
commit | 86f980870a28bc9022cc57362b5031ede43ecff9 (patch) | |
tree | b3c12e7259780890218a0b0bd1be0f6dc51b76e6 /gcc/config | |
parent | 806696ebd2938636802ba9a611fcf741bf60f7b7 (diff) | |
download | gcc-86f980870a28bc9022cc57362b5031ede43ecff9.zip gcc-86f980870a28bc9022cc57362b5031ede43ecff9.tar.gz gcc-86f980870a28bc9022cc57362b5031ede43ecff9.tar.bz2 |
i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
* config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
* config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
* config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
* config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
* config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to.
* config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
(rs6000_option_override_internal): Clear it if ABI_AIX.
* config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
* config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here.
From-SVN: r241285
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386.c | 3 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 3 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 3 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.h | 3 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 3 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 3 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.h | 3 |
8 files changed, 16 insertions, 12 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index eef6d7b..bafbe75 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -50833,6 +50833,9 @@ ix86_addr_space_zero_address_valid (addr_space_t as) #undef TARGET_HARD_REGNO_SCRATCH_OK #define TARGET_HARD_REGNO_SCRATCH_OK ix86_hard_regno_scratch_ok +#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS +#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1 + struct gcc_target targetm = TARGET_INITIALIZER; #include "gt-i386.h" diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index fe3735d..add7a64 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -2666,9 +2666,6 @@ extern void debug_dispatch_window (int); #define TARGET_SUPPORTS_WIDE_INT 1 -/* Use custom descriptors instead of trampolines when possible. */ -#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1 - /* Local variables: version-control: t diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 797b1b0..31a2267 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -649,6 +649,9 @@ static const struct attribute_spec ia64_attribute_table[] = #undef TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P #define TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P ia64_attribute_takes_identifier_p +#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS +#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 0 + struct gcc_target targetm = TARGET_INITIALIZER; /* Returns TRUE iff the target attribute indicated by ATTR_ID takes a plain diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index 82971a4..ac0cb86 100644 --- a/gcc/config/ia64/ia64.h +++ b/gcc/config/ia64/ia64.h @@ -1715,7 +1715,4 @@ struct GTY(()) machine_function /* Switch on code for querying unit reservations. */ #define CPU_UNITS_QUERY 1 -/* IA-64 already uses descriptors for its standard calling sequence. */ -#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 0 - /* End of ia64.h */ diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 613af48..2761187 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1867,6 +1867,9 @@ static const struct attribute_spec rs6000_attribute_table[] = #undef TARGET_OPTAB_SUPPORTED_P #define TARGET_OPTAB_SUPPORTED_P rs6000_optab_supported_p + +#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS +#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1 /* Processor table. */ @@ -4862,6 +4865,10 @@ rs6000_option_override_internal (bool global_init_p) Linux and Darwin ABIs at the moment. For now, only AIX is fixed. */ if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) targetm.calls.split_complex_arg = NULL; + + /* The AIX and ELFv1 ABIs define standard function descriptors. */ + if (DEFAULT_ABI == ABI_AIX) + targetm.calls.custom_function_descriptors = 0; } /* Initialize rs6000_cost with the appropriate target costs. */ diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index f1c338e..f53da15 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -2922,9 +2922,6 @@ extern GTY(()) tree rs6000_builtin_decls[RS6000_BUILTIN_COUNT]; #define TARGET_SUPPORTS_WIDE_INT 1 -/* Use custom descriptors instead of trampolines if not AIX or ELFv1. */ -#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS (DEFAULT_ABI != ABI_AIX) - #if (GCC_VERSION >= 3000) #pragma GCC poison TARGET_FLOAT128 OPTION_MASK_FLOAT128 MASK_FLOAT128 #endif diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 74435a5..4b878c1 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -866,6 +866,9 @@ char sparc_hard_reg_printed[8]; #undef TARGET_FIXED_CONDITION_CODE_REGS #define TARGET_FIXED_CONDITION_CODE_REGS sparc_fixed_condition_code_regs +#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS +#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1 + struct gcc_target targetm = TARGET_INITIALIZER; /* Return the memory reference contained in X if any, zero otherwise. */ diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 108769f..5389216 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -1813,6 +1813,3 @@ extern int sparc_indent_opcode; #define SPARC_LOW_FE_EXCEPT_VALUES 0 #define TARGET_SUPPORTS_WIDE_INT 1 - -/* Use custom descriptors instead of trampolines when possible. */ -#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1 |