* 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
+2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * 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.
+
2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gimple-ssa-strength-reduction.c (record_increment): Remove
#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;
\f
#include "gt-i386.h"
#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
#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;
\f
/* Returns TRUE iff the target attribute indicated by ATTR_ID takes a plain
/* 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 */
#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
\f
/* Processor table. */
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. */
#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
#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. */
#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
+2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/Wtrampolines.c: XFAIL warning on ia64-*-* and powerpc64-*-*.
+ * gnat.dg/trampoline4.adb: Minor tweak.
+
2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/77916
double a (int k, pfun x1, pfun x2, pfun x3, pfun x4, pfun x5)
{
- double b (void) /* { dg-warning "trampoline generated for nested function 'b'" } */
+ double b (void) /* { dg-warning "trampoline generated for nested function 'b'" "standard descriptors" { xfail ia64-*-* powerpc64-*-* } } */
{
k = k - 1;
return a (k, b, x1, x2, x3, x4 );
-- { dg-do compile { target *-*-linux* } }
-- { dg-options "-ftrampolines -gnatws" }
--- { dg-skip-if "native descriptors" { ia64-*-* powerpc64-*-* } }
+-- { dg-skip-if "standard descriptors" { ia64-*-* powerpc64-*-* } }
procedure Trampoline4 is