diff options
author | Naveen H.S <naveen.S@kpitcummins.com> | 2010-09-05 00:46:33 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2010-09-05 00:46:33 +0000 |
commit | e7a8f681c069f09f53be3f94e220669247379a48 (patch) | |
tree | 69e08fb23974f9ecd22a5c56159a8eeaf6612a31 /gcc/config/sh | |
parent | 879a629b685a60a20046c583956050c502e1bfe1 (diff) | |
download | gcc-e7a8f681c069f09f53be3f94e220669247379a48.zip gcc-e7a8f681c069f09f53be3f94e220669247379a48.tar.gz gcc-e7a8f681c069f09f53be3f94e220669247379a48.tar.bz2 |
sh.c (sh_option_override): Make static.
* config/sh/sh.c (sh_option_override): Make static.
Adjust comments. Declare.
(sh_function_value_regno_p): Likewise.
(sh_register_move_cost): Modify the arguments, make static.
Adjust comments. Declare.
(TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
TARGET_FUNCTION_VALUE_REGNO_P): Define.
* config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
REGISTER_MOVE_COST): Delete.
* config/sh/sh-protos.h (sh_override_options): Delete.
(sh_register_move_cost): Delete.
(sh_function_value_regno_p): Delete.
From-SVN: r163873
Diffstat (limited to 'gcc/config/sh')
-rw-r--r-- | gcc/config/sh/sh-protos.h | 4 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 27 | ||||
-rw-r--r-- | gcc/config/sh/sh.h | 7 |
3 files changed, 19 insertions, 19 deletions
diff --git a/gcc/config/sh/sh-protos.h b/gcc/config/sh/sh-protos.h index 7a52ade..f6741ee 100644 --- a/gcc/config/sh/sh-protos.h +++ b/gcc/config/sh/sh-protos.h @@ -125,7 +125,6 @@ extern bool sh_vector_mode_supported_p (enum machine_mode); #endif /* RTX_CODE */ extern void sh_optimization_options (int, int); -extern void sh_override_options (void); extern const char *output_jump_label_table (void); extern int sh_handle_pragma (int (*)(void), void (*)(int), const char *); extern struct rtx_def *get_fpscr_rtx (void); @@ -145,8 +144,6 @@ extern bool sh_cannot_change_mode_class (enum machine_mode, enum machine_mode, enum reg_class); extern bool sh_small_register_classes_for_mode_p (enum machine_mode); extern void sh_mark_label (rtx, int); -extern int sh_register_move_cost - (enum machine_mode mode, enum reg_class, enum reg_class); extern int check_use_sfunc_addr (rtx, rtx); #ifdef HARD_CONST @@ -161,7 +158,6 @@ extern rtx sh_get_pr_initial_val (void); extern int sh_pass_in_reg_p (CUMULATIVE_ARGS *, enum machine_mode, tree); extern void sh_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, signed int, enum machine_mode); -extern bool sh_function_value_regno_p (const unsigned int); extern rtx sh_dwarf_register_span (rtx); extern rtx replace_n_hard_rtx (rtx, rtx *, int , int); diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 9eebf14..aa31c27 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -182,6 +182,7 @@ static rtx find_barrier (int, rtx, rtx); static int noncall_uses_reg (rtx, rtx, rtx *); static rtx gen_block_redirect (rtx, int, int); static void sh_reorg (void); +static void sh_option_override (void); static void output_stack_adjust (int, rtx, int, HARD_REG_SET *, bool); static rtx frame_insn (rtx); static rtx push (int); @@ -205,6 +206,7 @@ static bool sh_print_operand_punct_valid_p (unsigned char code); static void sh_output_function_epilogue (FILE *, HOST_WIDE_INT); static void sh_insert_attributes (tree, tree *); static const char *sh_check_pch_target_flags (int); +static int sh_register_move_cost (enum machine_mode, reg_class_t, reg_class_t); static int sh_adjust_cost (rtx, rtx, rtx, int); static int sh_issue_rate (void); static int sh_dfa_new_cycle (FILE *, int, rtx, int, int, int *sort_p); @@ -261,6 +263,7 @@ static struct save_entry_s *sh5_schedule_saves (HARD_REG_SET *, static rtx sh_struct_value_rtx (tree, int); static rtx sh_function_value (const_tree, const_tree, bool); +static bool sh_function_value_regno_p (const unsigned int); static rtx sh_libcall_value (enum machine_mode, const_rtx); static bool sh_return_in_memory (const_tree, const_tree); static rtx sh_builtin_saveregs (void); @@ -334,6 +337,9 @@ static const struct attribute_spec sh_attribute_table[] = #undef TARGET_ASM_ALIGNED_DI_OP #define TARGET_ASM_ALIGNED_DI_OP "\t.quad\t" +#undef TARGET_OPTION_OVERRIDE +#define TARGET_OPTION_OVERRIDE sh_option_override + #undef TARGET_PRINT_OPERAND #define TARGET_PRINT_OPERAND sh_print_operand #undef TARGET_PRINT_OPERAND_ADDRESS @@ -360,6 +366,9 @@ static const struct attribute_spec sh_attribute_table[] = #undef TARGET_HANDLE_OPTION #define TARGET_HANDLE_OPTION sh_handle_option +#undef TARGET_REGISTER_MOVE_COST +#define TARGET_REGISTER_MOVE_COST sh_register_move_cost + #undef TARGET_INSERT_ATTRIBUTES #define TARGET_INSERT_ATTRIBUTES sh_insert_attributes @@ -476,6 +485,8 @@ static const struct attribute_spec sh_attribute_table[] = #undef TARGET_FUNCTION_VALUE #define TARGET_FUNCTION_VALUE sh_function_value +#undef TARGET_FUNCTION_VALUE_REGNO_P +#define TARGET_FUNCTION_VALUE_REGNO_P sh_function_value_regno_p #undef TARGET_LIBCALL_VALUE #define TARGET_LIBCALL_VALUE sh_libcall_value #undef TARGET_STRUCT_VALUE_RTX @@ -721,10 +732,10 @@ sh_optimization_options (int level ATTRIBUTE_UNUSED, int size ATTRIBUTE_UNUSED) set_param_value ("simultaneous-prefetches", 2); } -/* Implement OVERRIDE_OPTIONS macro. Validate and override various - options, and do some machine dependent initialization. */ -void -sh_override_options (void) +/* Implement TARGET_OPTION_OVERRIDE macro. Validate and override + various options, and do some machine dependent initialization. */ +static void +sh_option_override (void) { int regno; @@ -8524,9 +8535,9 @@ sh_libcall_value (enum machine_mode mode, const_rtx fun ATTRIBUTE_UNUSED) return gen_rtx_REG (mode, BASE_RETURN_VALUE_REG (mode)); } -/* Worker function for FUNCTION_VALUE_REGNO_P. */ +/* Return true if N is a possible register number of function value. */ -bool +static bool sh_function_value_regno_p (const unsigned int regno) { return ((regno) == FIRST_RET_REG @@ -11387,9 +11398,9 @@ sh_mark_label (rtx address, int nuses) uses this information. Hence, the general register <-> floating point register information here is not used for SFmode. */ -int +static int sh_register_move_cost (enum machine_mode mode, - enum reg_class srcclass, enum reg_class dstclass) + reg_class_t srcclass, reg_class_t dstclass) { if (dstclass == T_REGS || dstclass == PR_REGS) return 10; diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index cb78667..7bcf9e9 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -507,8 +507,6 @@ extern enum sh_divide_strategy_e sh_div_strategy; extern const char *sh_fixed_range_str; -#define OVERRIDE_OPTIONS sh_override_options () - /* Target machine storage layout. */ @@ -1451,8 +1449,6 @@ extern enum reg_class regno_reg_class[FIRST_PSEUDO_REGISTER]; ? FIRST_FP_PARM_REG \ : FIRST_PARM_REG) -#define FUNCTION_VALUE_REGNO_P(REGNO) sh_function_value_regno_p (REGNO) - /* 1 if N is a possible register number for function argument passing. */ /* ??? There are some callers that pass REGNO as int, and others that pass it as unsigned. We get warnings unless we do casts everywhere. */ @@ -2174,9 +2170,6 @@ struct sh_args { ((CLASS) == FP0_REGS || (CLASS) == FP_REGS \ || (CLASS) == DF_REGS || (CLASS) == DF_HI_REGS) -#define REGISTER_MOVE_COST(MODE, SRCCLASS, DSTCLASS) \ - sh_register_move_cost ((MODE), (SRCCLASS), (DSTCLASS)) - /* ??? Perhaps make MEMORY_MOVE_COST depend on compiler option? This would be so that people with slow memory systems could generate different code that does fewer memory accesses. */ |