| 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 \
|
|
|