Index: gcc/gcc/target-def.h |
diff --git a/gcc/gcc/target-def.h b/gcc/gcc/target-def.h |
index e19cde3f0a259fe2a1c39c0801b54549a6d56894..7975f699f9e74a312291583fd6bc16e1d74f0a73 100644 |
--- a/gcc/gcc/target-def.h |
+++ b/gcc/gcc/target-def.h |
@@ -1,5 +1,5 @@ |
/* Default initializers for a generic GCC target. |
- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 |
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
Free Software Foundation, Inc. |
This program is free software; you can redistribute it and/or modify it |
@@ -84,7 +84,7 @@ |
#define TARGET_ASM_INTERNAL_LABEL default_internal_label |
#endif |
-#ifndef TARGET_ARM_TTYPE |
+#ifndef TARGET_ASM_TTYPE |
#define TARGET_ASM_TTYPE hook_bool_rtx_false |
#endif |
@@ -204,6 +204,18 @@ |
#define TARGET_ASM_FILE_END hook_void_void |
#endif |
+#ifndef TARGET_ASM_LTO_START |
+#define TARGET_ASM_LTO_START hook_void_void |
+#endif |
+ |
+#ifndef TARGET_ASM_LTO_END |
+#define TARGET_ASM_LTO_END hook_void_void |
+#endif |
+ |
+#ifndef TARGET_ASM_CODE_END |
+#define TARGET_ASM_CODE_END hook_void_void |
+#endif |
+ |
#ifndef TARGET_EXTRA_LIVE_ON_ENTRY |
#define TARGET_EXTRA_LIVE_ON_ENTRY hook_void_bitmap |
#endif |
@@ -236,6 +248,10 @@ |
#define TARGET_ASM_OUTPUT_DWARF_DTPREL NULL |
#endif |
+#ifndef TARGET_ASM_FINAL_POSTSCAN_INSN |
+#define TARGET_ASM_FINAL_POSTSCAN_INSN NULL |
+#endif |
+ |
#ifndef TARGET_ASM_RECORD_GCC_SWITCHES |
#define TARGET_ASM_RECORD_GCC_SWITCHES NULL |
#endif |
@@ -243,6 +259,8 @@ |
#define TARGET_ASM_RECORD_GCC_SWITCHES_SECTION ".GCC.command.line" |
#endif |
+#define TARGET_ASM_TRAMPOLINE_TEMPLATE NULL |
+ |
#define TARGET_ASM_ALIGNED_INT_OP \ |
{TARGET_ASM_ALIGNED_HI_OP, \ |
TARGET_ASM_ALIGNED_SI_OP, \ |
@@ -286,12 +304,17 @@ |
TARGET_ASM_CAN_OUTPUT_MI_THUNK, \ |
TARGET_ASM_FILE_START, \ |
TARGET_ASM_FILE_END, \ |
+ TARGET_ASM_LTO_START, \ |
+ TARGET_ASM_LTO_END, \ |
+ TARGET_ASM_CODE_END, \ |
TARGET_ASM_EXTERNAL_LIBCALL, \ |
TARGET_ASM_MARK_DECL_PRESERVED, \ |
TARGET_ASM_RECORD_GCC_SWITCHES, \ |
TARGET_ASM_RECORD_GCC_SWITCHES_SECTION, \ |
TARGET_ASM_OUTPUT_ANCHOR, \ |
- TARGET_ASM_OUTPUT_DWARF_DTPREL} |
+ TARGET_ASM_OUTPUT_DWARF_DTPREL, \ |
+ TARGET_ASM_FINAL_POSTSCAN_INSN, \ |
+ TARGET_ASM_TRAMPOLINE_TEMPLATE } |
/* Scheduler hooks. All of these default to null pointers, which |
haifa-sched.c looks for and handles. */ |
@@ -383,6 +406,11 @@ |
#define TARGET_VECTOR_ALIGNMENT_REACHABLE \ |
default_builtin_vector_alignment_reachable |
#define TARGET_VECTORIZE_BUILTIN_VEC_PERM 0 |
+#define TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK \ |
+ hook_bool_tree_tree_true |
+#define TARGET_SUPPORT_VECTOR_MISALIGNMENT \ |
+ default_builtin_support_vector_misalignment |
+ |
#define TARGET_VECTORIZE \ |
{ \ |
@@ -393,11 +421,15 @@ |
TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD, \ |
TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST, \ |
TARGET_VECTOR_ALIGNMENT_REACHABLE, \ |
- TARGET_VECTORIZE_BUILTIN_VEC_PERM \ |
+ TARGET_VECTORIZE_BUILTIN_VEC_PERM, \ |
+ TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK, \ |
+ TARGET_SUPPORT_VECTOR_MISALIGNMENT \ |
} |
#define TARGET_DEFAULT_TARGET_FLAGS 0 |
+#define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE hook_void_void |
+ |
#define TARGET_HANDLE_OPTION hook_bool_size_t_constcharptr_int_true |
#define TARGET_HELP NULL |
@@ -418,12 +450,14 @@ |
/* In cse.c. */ |
#define TARGET_ADDRESS_COST default_address_cost |
+#define TARGET_CONST_ANCHOR 0 |
/* In builtins.c. */ |
#define TARGET_INIT_BUILTINS hook_void_void |
#define TARGET_EXPAND_BUILTIN default_expand_builtin |
#define TARGET_RESOLVE_OVERLOADED_BUILTIN NULL |
#define TARGET_FOLD_BUILTIN hook_tree_tree_tree_bool_null |
+#define TARGET_BUILTIN_DECL NULL |
/* In tree-ssa-math-opts.c */ |
#define TARGET_BUILTIN_RECIPROCAL default_builtin_reciprocal |
@@ -457,6 +491,48 @@ |
#define TARGET_VALID_POINTER_MODE default_valid_pointer_mode |
#endif |
+#ifndef TARGET_ADDR_SPACE_POINTER_MODE |
+#define TARGET_ADDR_SPACE_POINTER_MODE default_addr_space_pointer_mode |
+#endif |
+ |
+#ifndef TARGET_ADDR_SPACE_ADDRESS_MODE |
+#define TARGET_ADDR_SPACE_ADDRESS_MODE default_addr_space_address_mode |
+#endif |
+ |
+#ifndef TARGET_ADDR_SPACE_VALID_POINTER_MODE |
+#define TARGET_ADDR_SPACE_VALID_POINTER_MODE \ |
+ default_addr_space_valid_pointer_mode |
+#endif |
+ |
+#ifndef TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P |
+#define TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P \ |
+ default_addr_space_legitimate_address_p |
+#endif |
+ |
+#ifndef TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS |
+#define TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS \ |
+ default_addr_space_legitimize_address |
+#endif |
+ |
+#ifndef TARGET_ADDR_SPACE_SUBSET_P |
+#define TARGET_ADDR_SPACE_SUBSET_P default_addr_space_subset_p |
+#endif |
+ |
+#ifndef TARGET_ADDR_SPACE_CONVERT |
+#define TARGET_ADDR_SPACE_CONVERT default_addr_space_convert |
+#endif |
+ |
+#define TARGET_ADDR_SPACE_HOOKS \ |
+ { \ |
+ TARGET_ADDR_SPACE_POINTER_MODE, \ |
+ TARGET_ADDR_SPACE_ADDRESS_MODE, \ |
+ TARGET_ADDR_SPACE_VALID_POINTER_MODE, \ |
+ TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P, \ |
+ TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS, \ |
+ TARGET_ADDR_SPACE_SUBSET_P, \ |
+ TARGET_ADDR_SPACE_CONVERT, \ |
+ } |
+ |
#ifndef TARGET_SCALAR_MODE_SUPPORTED_P |
#define TARGET_SCALAR_MODE_SUPPORTED_P default_scalar_mode_supported_p |
#endif |
@@ -473,18 +549,18 @@ |
#define TARGET_VECTOR_MODE_SUPPORTED_P hook_bool_mode_false |
#endif |
-#ifndef TARGET_VECTOR_OPAQUE_P |
-#define TARGET_VECTOR_OPAQUE_P hook_bool_const_tree_false |
-#endif |
- |
/* In hooks.c. */ |
#define TARGET_CANNOT_MODIFY_JUMPS_P hook_bool_void_false |
-#define TARGET_BRANCH_TARGET_REGISTER_CLASS hook_int_void_no_regs |
+#define TARGET_BRANCH_TARGET_REGISTER_CLASS \ |
+ default_branch_target_register_class |
#define TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED hook_bool_bool_false |
+#define TARGET_HAVE_CONDITIONAL_EXECUTION default_have_conditional_execution |
#define TARGET_CANNOT_FORCE_CONST_MEM hook_bool_rtx_false |
#define TARGET_CANNOT_COPY_INSN_P NULL |
#define TARGET_COMMUTATIVE_P hook_bool_const_rtx_commutative_p |
-#define TARGET_DELEGITIMIZE_ADDRESS hook_rtx_rtx_identity |
+#define TARGET_LEGITIMIZE_ADDRESS default_legitimize_address |
+#define TARGET_DELEGITIMIZE_ADDRESS delegitimize_mem_from_attrs |
+#define TARGET_LEGITIMATE_ADDRESS_P default_legitimate_address_p |
#define TARGET_USE_BLOCKS_FOR_CONSTANT_P hook_bool_mode_const_rtx_false |
#define TARGET_MIN_ANCHOR_OFFSET 0 |
#define TARGET_MAX_ANCHOR_OFFSET 0 |
@@ -532,6 +608,10 @@ |
#define TARGET_INVALID_CONVERSION hook_constcharptr_const_tree_const_tree_null |
#define TARGET_INVALID_UNARY_OP hook_constcharptr_int_const_tree_null |
#define TARGET_INVALID_BINARY_OP hook_constcharptr_int_const_tree_const_tree_null |
+#define TARGET_INVALID_PARAMETER_TYPE hook_constcharptr_const_tree_null |
+#define TARGET_INVALID_RETURN_TYPE hook_constcharptr_const_tree_null |
+#define TARGET_PROMOTED_TYPE hook_tree_const_tree_null |
+#define TARGET_CONVERT_TO_TYPE hook_tree_tree_tree_null |
#define TARGET_FIXED_CONDITION_CODE_REGS hook_bool_uintp_uintp_false |
@@ -565,8 +645,7 @@ |
#define TARGET_ARM_EABI_UNWINDER false |
-#define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_const_tree_false |
-#define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_const_tree_false |
+#define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode |
#define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_false |
#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null |
@@ -590,14 +669,17 @@ |
#define TARGET_ARG_PARTIAL_BYTES hook_int_CUMULATIVE_ARGS_mode_tree_bool_0 |
#define TARGET_FUNCTION_VALUE default_function_value |
+#define TARGET_LIBCALL_VALUE default_libcall_value |
#define TARGET_INTERNAL_ARG_POINTER default_internal_arg_pointer |
#define TARGET_UPDATE_STACK_BOUNDARY NULL |
#define TARGET_GET_DRAP_RTX NULL |
#define TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS hook_bool_void_true |
+#define TARGET_STATIC_CHAIN default_static_chain |
+#define TARGET_TRAMPOLINE_INIT default_trampoline_init |
+#define TARGET_TRAMPOLINE_ADJUST_ADDRESS NULL |
#define TARGET_CALLS { \ |
- TARGET_PROMOTE_FUNCTION_ARGS, \ |
- TARGET_PROMOTE_FUNCTION_RETURN, \ |
+ TARGET_PROMOTE_FUNCTION_MODE, \ |
TARGET_PROMOTE_PROTOTYPES, \ |
TARGET_STRUCT_VALUE_RTX, \ |
TARGET_RETURN_IN_MEMORY, \ |
@@ -613,20 +695,20 @@ |
TARGET_ARG_PARTIAL_BYTES, \ |
TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN, \ |
TARGET_FUNCTION_VALUE, \ |
+ TARGET_LIBCALL_VALUE, \ |
TARGET_INTERNAL_ARG_POINTER, \ |
TARGET_UPDATE_STACK_BOUNDARY, \ |
TARGET_GET_DRAP_RTX, \ |
- TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS \ |
+ TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS, \ |
+ TARGET_STATIC_CHAIN, \ |
+ TARGET_TRAMPOLINE_INIT, \ |
+ TARGET_TRAMPOLINE_ADJUST_ADDRESS \ |
} |
#ifndef TARGET_UNWIND_TABLES_DEFAULT |
#define TARGET_UNWIND_TABLES_DEFAULT false |
#endif |
-#ifndef TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME |
-#define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME 0 |
-#endif |
- |
#ifndef TARGET_HANDLE_PRAGMA_EXTERN_PREFIX |
#define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 0 |
#endif |
@@ -653,6 +735,18 @@ |
#define TARGET_HARD_REGNO_SCRATCH_OK default_hard_regno_scratch_ok |
#endif |
+#ifndef TARGET_CASE_VALUES_THRESHOLD |
+#define TARGET_CASE_VALUES_THRESHOLD default_case_values_threshold |
+#endif |
+ |
+#ifndef TARGET_FRAME_POINTER_REQUIRED |
+#define TARGET_FRAME_POINTER_REQUIRED hook_bool_void_false |
+#endif |
+ |
+#ifndef TARGET_CAN_ELIMINATE |
+#define TARGET_CAN_ELIMINATE hook_bool_const_int_const_int_true |
+#endif |
+ |
/* C specific. */ |
#ifndef TARGET_C_MODE_FOR_SUFFIX |
#define TARGET_C_MODE_FOR_SUFFIX default_mode_for_suffix |
@@ -810,8 +904,8 @@ |
#define TARGET_OPTION_PRAGMA_PARSE default_target_option_pragma_parse |
#endif |
-#ifndef TARGET_OPTION_CAN_INLINE_P |
-#define TARGET_OPTION_CAN_INLINE_P default_target_option_can_inline_p |
+#ifndef TARGET_CAN_INLINE_P |
+#define TARGET_CAN_INLINE_P default_target_can_inline_p |
#endif |
#define TARGET_OPTION_HOOKS \ |
@@ -821,7 +915,7 @@ |
TARGET_OPTION_RESTORE, \ |
TARGET_OPTION_PRINT, \ |
TARGET_OPTION_PRAGMA_PARSE, \ |
- TARGET_OPTION_CAN_INLINE_P, \ |
+ TARGET_CAN_INLINE_P, \ |
} |
/* The whole shebang. */ |
@@ -831,6 +925,7 @@ |
TARGET_SCHED, \ |
TARGET_VECTORIZE, \ |
TARGET_DEFAULT_TARGET_FLAGS, \ |
+ TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE, \ |
TARGET_HANDLE_OPTION, \ |
TARGET_HELP, \ |
TARGET_EH_RETURN_FILTER_MODE, \ |
@@ -850,6 +945,7 @@ |
TARGET_ALIGN_ANON_BITFIELD, \ |
TARGET_NARROW_VOLATILE_BITFIELD, \ |
TARGET_INIT_BUILTINS, \ |
+ TARGET_BUILTIN_DECL, \ |
TARGET_EXPAND_BUILTIN, \ |
TARGET_RESOLVE_OVERLOADED_BUILTIN, \ |
TARGET_FOLD_BUILTIN, \ |
@@ -860,10 +956,13 @@ |
TARGET_CANNOT_MODIFY_JUMPS_P, \ |
TARGET_BRANCH_TARGET_REGISTER_CLASS, \ |
TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED, \ |
+ TARGET_HAVE_CONDITIONAL_EXECUTION, \ |
TARGET_CANNOT_FORCE_CONST_MEM, \ |
TARGET_CANNOT_COPY_INSN_P, \ |
TARGET_COMMUTATIVE_P, \ |
+ TARGET_LEGITIMIZE_ADDRESS, \ |
TARGET_DELEGITIMIZE_ADDRESS, \ |
+ TARGET_LEGITIMATE_ADDRESS_P, \ |
TARGET_USE_BLOCKS_FOR_CONSTANT_P, \ |
TARGET_MIN_ANCHOR_OFFSET, \ |
TARGET_MAX_ANCHOR_OFFSET, \ |
@@ -879,9 +978,9 @@ |
TARGET_MIN_DIVISIONS_FOR_RECIP_MUL, \ |
TARGET_MODE_REP_EXTENDED, \ |
TARGET_VALID_POINTER_MODE, \ |
+ TARGET_ADDR_SPACE_HOOKS, \ |
TARGET_SCALAR_MODE_SUPPORTED_P, \ |
TARGET_VECTOR_MODE_SUPPORTED_P, \ |
- TARGET_VECTOR_OPAQUE_P, \ |
TARGET_RTX_COSTS, \ |
TARGET_ADDRESS_COST, \ |
TARGET_ALLOCATE_INITIAL_VALUE, \ |
@@ -909,15 +1008,23 @@ |
TARGET_STACK_PROTECT_FAIL, \ |
TARGET_INVALID_WITHIN_DOLOOP, \ |
TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, \ |
+ TARGET_CONST_ANCHOR, \ |
TARGET_CALLS, \ |
TARGET_INVALID_CONVERSION, \ |
TARGET_INVALID_UNARY_OP, \ |
TARGET_INVALID_BINARY_OP, \ |
+ TARGET_INVALID_PARAMETER_TYPE, \ |
+ TARGET_INVALID_RETURN_TYPE, \ |
+ TARGET_PROMOTED_TYPE, \ |
+ TARGET_CONVERT_TO_TYPE, \ |
TARGET_IRA_COVER_CLASSES, \ |
TARGET_SECONDARY_RELOAD, \ |
TARGET_EXPAND_TO_RTL_HOOK, \ |
TARGET_INSTANTIATE_DECLS, \ |
TARGET_HARD_REGNO_SCRATCH_OK, \ |
+ TARGET_CASE_VALUES_THRESHOLD, \ |
+ TARGET_FRAME_POINTER_REQUIRED, \ |
+ TARGET_CAN_ELIMINATE, \ |
TARGET_C, \ |
TARGET_CXX, \ |
TARGET_EMUTLS, \ |
@@ -932,7 +1039,6 @@ |
TARGET_TERMINATE_DW2_EH_FRAME_INFO, \ |
TARGET_ASM_FILE_START_APP_OFF, \ |
TARGET_ASM_FILE_START_FILE_DIRECTIVE, \ |
- TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, \ |
TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, \ |
TARGET_RELAXED_ORDERING, \ |
TARGET_ARM_EABI_UNWINDER \ |