Commit f2206911 by Kelley Cook Committed by R. Kelley Cook

frv-protos.h: Update for C90.

2003-11-14  Kelley Cook  <kcook@gcc.gnu.org>

	* config/frv/frv-protos.h: Update for C90.
	* config/frv/frv.h: Likewise.
	* config/frv/frvbegin.c: Likewise.
	* config/frv/frv.c: Likewise.
	(frv_adjust_field_align): Delete unused variable.

From-SVN: r73613
parent 39e63627
2003-11-14 Kelley Cook <kcook@gcc.gnu.org>
* config/frv/frv-protos.h: Update for C90.
* config/frv/frv.h: Likewise.
* config/frv/frvbegin.c: Likewise.
* config/frv/frv.c: Likewise.
(frv_adjust_field_align): Delete unused variable.
2003-11-14 Geoffrey Keating <geoffk@apple.com> 2003-11-14 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN' * config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN'
......
...@@ -52,194 +52,187 @@ typedef enum frv_cpu ...@@ -52,194 +52,187 @@ typedef enum frv_cpu
extern frv_cpu_t frv_cpu_type; /* value of -mcpu= */ extern frv_cpu_t frv_cpu_type; /* value of -mcpu= */
/* Define functions defined in frv.c */ /* Define functions defined in frv.c */
extern void frv_expand_prologue PARAMS ((void)); extern void frv_expand_prologue (void);
extern void frv_expand_epilogue PARAMS ((int)); extern void frv_expand_epilogue (int);
extern void frv_override_options PARAMS ((void)); extern void frv_override_options (void);
extern void frv_optimization_options PARAMS ((int, int)); extern void frv_optimization_options (int, int);
extern void frv_conditional_register_usage PARAMS ((void)); extern void frv_conditional_register_usage (void);
extern frv_stack_t *frv_stack_info PARAMS ((void)); extern frv_stack_t *frv_stack_info (void);
extern void frv_debug_stack PARAMS ((frv_stack_t *)); extern void frv_debug_stack (frv_stack_t *);
extern int frv_frame_pointer_required PARAMS ((void)); extern int frv_frame_pointer_required (void);
extern int frv_initial_elimination_offset PARAMS ((int, int)); extern int frv_initial_elimination_offset (int, int);
#ifdef RTX_CODE #ifdef RTX_CODE
extern int frv_legitimate_address_p PARAMS ((enum machine_mode, rtx, extern int frv_legitimate_address_p (enum machine_mode, rtx,
int, int)); int, int);
extern rtx frv_legitimize_address PARAMS ((rtx, rtx, extern rtx frv_legitimize_address (rtx, rtx, enum machine_mode);
enum machine_mode));
#ifdef TREE_CODE #ifdef TREE_CODE
extern void frv_init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, tree, extern void frv_init_cumulative_args (CUMULATIVE_ARGS *, tree,
rtx, tree, int)); rtx, tree, int);
extern int frv_function_arg_boundary PARAMS ((enum machine_mode, tree)); extern int frv_function_arg_boundary (enum machine_mode, tree);
extern rtx frv_function_arg PARAMS ((CUMULATIVE_ARGS *, extern rtx frv_function_arg (CUMULATIVE_ARGS *,
enum machine_mode, enum machine_mode,
tree, int, int)); tree, int, int);
extern void frv_function_arg_advance PARAMS ((CUMULATIVE_ARGS *, extern void frv_function_arg_advance (CUMULATIVE_ARGS *,
enum machine_mode, enum machine_mode,
tree, int)); tree, int);
extern int frv_function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *, extern int frv_function_arg_partial_nregs (CUMULATIVE_ARGS *,
enum machine_mode, enum machine_mode,
tree, int)); tree, int);
extern int frv_function_arg_pass_by_reference PARAMS ((CUMULATIVE_ARGS *, extern int frv_function_arg_pass_by_reference (CUMULATIVE_ARGS *,
enum machine_mode, enum machine_mode,
tree, int)); tree, int);
extern int frv_function_arg_callee_copies PARAMS ((CUMULATIVE_ARGS *, extern int frv_function_arg_callee_copies (CUMULATIVE_ARGS *,
enum machine_mode, enum machine_mode,
tree, int)); tree, int);
extern int frv_function_arg_keep_as_reference PARAMS ((CUMULATIVE_ARGS *, extern int frv_function_arg_keep_as_reference (CUMULATIVE_ARGS *,
enum machine_mode, enum machine_mode,
tree, int)); tree, int);
extern rtx frv_expand_builtin_saveregs PARAMS ((void)); extern rtx frv_expand_builtin_saveregs (void);
extern void frv_setup_incoming_varargs PARAMS ((CUMULATIVE_ARGS *, extern void frv_setup_incoming_varargs (CUMULATIVE_ARGS *,
enum machine_mode, enum machine_mode,
tree, int *, int)); tree, int *, int);
extern void frv_expand_builtin_va_start PARAMS ((tree, rtx)); extern void frv_expand_builtin_va_start (tree, rtx);
extern rtx frv_expand_builtin_va_arg PARAMS ((tree, tree)); extern rtx frv_expand_builtin_va_arg (tree, tree);
#endif /* TREE_CODE */ #endif /* TREE_CODE */
extern int frv_expand_block_move PARAMS ((rtx *)); extern int frv_expand_block_move (rtx *);
extern int frv_expand_block_clear PARAMS ((rtx *)); extern int frv_expand_block_clear (rtx *);
extern rtx frv_dynamic_chain_address PARAMS ((rtx)); extern rtx frv_dynamic_chain_address (rtx);
extern rtx frv_return_addr_rtx PARAMS ((int, rtx)); extern rtx frv_return_addr_rtx (int, rtx);
extern rtx frv_index_memory PARAMS ((rtx, extern rtx frv_index_memory (rtx, enum machine_mode, int);
enum machine_mode,
int));
extern const char *frv_asm_output_opcode extern const char *frv_asm_output_opcode
PARAMS ((FILE *, const char *)); (FILE *, const char *);
extern void frv_final_prescan_insn PARAMS ((rtx, rtx *, int)); extern void frv_final_prescan_insn (rtx, rtx *, int);
extern void frv_print_operand PARAMS ((FILE *, rtx, int)); extern void frv_print_operand (FILE *, rtx, int);
extern void frv_print_operand_address PARAMS ((FILE *, rtx)); extern void frv_print_operand_address (FILE *, rtx);
extern int frv_emit_movsi PARAMS ((rtx, rtx)); extern int frv_emit_movsi (rtx, rtx);
extern const char *output_move_single PARAMS ((rtx *, rtx)); extern const char *output_move_single (rtx *, rtx);
extern const char *output_move_double PARAMS ((rtx *, rtx)); extern const char *output_move_double (rtx *, rtx);
extern const char *output_condmove_single extern const char *output_condmove_single
PARAMS ((rtx *, rtx)); (rtx *, rtx);
extern int frv_emit_cond_branch PARAMS ((enum rtx_code, rtx)); extern int frv_emit_cond_branch (enum rtx_code, rtx);
extern int frv_emit_scc PARAMS ((enum rtx_code, rtx)); extern int frv_emit_scc (enum rtx_code, rtx);
extern rtx frv_split_scc PARAMS ((rtx, rtx, rtx, rtx, extern rtx frv_split_scc (rtx, rtx, rtx, rtx, HOST_WIDE_INT);
HOST_WIDE_INT)); extern int frv_emit_cond_move (rtx, rtx, rtx, rtx);
extern int frv_emit_cond_move PARAMS ((rtx, rtx, rtx, rtx)); extern rtx frv_split_cond_move (rtx *);
extern rtx frv_split_cond_move PARAMS ((rtx *)); extern rtx frv_split_minmax (rtx *);
extern rtx frv_split_minmax PARAMS ((rtx *)); extern rtx frv_split_abs (rtx *);
extern rtx frv_split_abs PARAMS ((rtx *)); extern void frv_split_double_load (rtx, rtx);
extern void frv_split_double_load PARAMS ((rtx, rtx)); extern void frv_split_double_store (rtx, rtx);
extern void frv_split_double_store PARAMS ((rtx, rtx));
#ifdef BLOCK_HEAD #ifdef BLOCK_HEAD
extern void frv_ifcvt_init_extra_fields PARAMS ((ce_if_block_t *)); extern void frv_ifcvt_init_extra_fields (ce_if_block_t *);
extern void frv_ifcvt_modify_tests PARAMS ((ce_if_block_t *, extern void frv_ifcvt_modify_tests (ce_if_block_t *, rtx *, rtx *);
rtx *, rtx *));
extern void frv_ifcvt_modify_multiple_tests extern void frv_ifcvt_modify_multiple_tests
PARAMS ((ce_if_block_t *, (ce_if_block_t *, basic_block,
basic_block, rtx *, rtx *);
rtx *, rtx *)); extern rtx frv_ifcvt_modify_insn (ce_if_block_t *, rtx, rtx);
extern rtx frv_ifcvt_modify_insn PARAMS ((ce_if_block_t *, extern void frv_ifcvt_modify_final (ce_if_block_t *);
rtx, rtx)); extern void frv_ifcvt_modify_cancel (ce_if_block_t *);
extern void frv_ifcvt_modify_final PARAMS ((ce_if_block_t *));
extern void frv_ifcvt_modify_cancel PARAMS ((ce_if_block_t *));
#endif #endif
extern int frv_trampoline_size PARAMS ((void)); extern int frv_trampoline_size (void);
extern void frv_initialize_trampoline PARAMS ((rtx, rtx, rtx)); extern void frv_initialize_trampoline (rtx, rtx, rtx);
extern enum reg_class frv_secondary_reload_class extern enum reg_class frv_secondary_reload_class
PARAMS ((enum reg_class class, (enum reg_class class,
enum machine_mode mode, enum machine_mode mode,
rtx x, int)); rtx x, int);
extern int frv_class_likely_spilled_p PARAMS ((enum reg_class class)); extern int frv_class_likely_spilled_p (enum reg_class class);
extern int frv_hard_regno_mode_ok PARAMS ((int, enum machine_mode)); extern int frv_hard_regno_mode_ok (int, enum machine_mode);
extern int frv_hard_regno_nregs PARAMS ((int, enum machine_mode)); extern int frv_hard_regno_nregs (int, enum machine_mode);
extern int frv_class_max_nregs PARAMS ((enum reg_class class, extern int frv_class_max_nregs (enum reg_class class,
enum machine_mode mode)); enum machine_mode mode);
extern int frv_legitimate_constant_p PARAMS ((rtx)); extern int frv_legitimate_constant_p (rtx);
#endif /* RTX_CODE */ #endif /* RTX_CODE */
extern int direct_return_p PARAMS ((void)); extern int direct_return_p (void);
extern int frv_register_move_cost PARAMS ((enum reg_class, enum reg_class)); extern int frv_register_move_cost (enum reg_class, enum reg_class);
#ifdef TREE_CODE #ifdef TREE_CODE
extern int frv_adjust_field_align PARAMS ((tree, int)); extern int frv_adjust_field_align (tree, int);
#endif #endif
extern void fixup_section PARAMS ((void)); extern void fixup_section (void);
extern void sdata_section PARAMS ((void)); extern void sdata_section (void);
extern void sbss_section PARAMS ((void)); extern void sbss_section (void);
extern void data_section PARAMS ((void)); extern void data_section (void);
#ifdef RTX_CODE #ifdef RTX_CODE
extern int integer_register_operand PARAMS ((rtx, enum machine_mode)); extern int integer_register_operand (rtx, enum machine_mode);
extern int frv_load_operand PARAMS ((rtx, enum machine_mode)); extern int frv_load_operand (rtx, enum machine_mode);
extern int gpr_or_fpr_operand PARAMS ((rtx, enum machine_mode)); extern int gpr_or_fpr_operand (rtx, enum machine_mode);
extern int gpr_no_subreg_operand PARAMS ((rtx, enum machine_mode)); extern int gpr_no_subreg_operand (rtx, enum machine_mode);
extern int gpr_or_int6_operand PARAMS ((rtx, enum machine_mode)); extern int gpr_or_int6_operand (rtx, enum machine_mode);
extern int fpr_or_int6_operand PARAMS ((rtx, enum machine_mode)); extern int fpr_or_int6_operand (rtx, enum machine_mode);
extern int gpr_or_int_operand PARAMS ((rtx, enum machine_mode)); extern int gpr_or_int_operand (rtx, enum machine_mode);
extern int gpr_or_int12_operand PARAMS ((rtx, enum machine_mode)); extern int gpr_or_int12_operand (rtx, enum machine_mode);
extern int gpr_fpr_or_int12_operand PARAMS ((rtx, enum machine_mode)); extern int gpr_fpr_or_int12_operand (rtx, enum machine_mode);
extern int gpr_or_int10_operand PARAMS ((rtx, enum machine_mode)); extern int gpr_or_int10_operand (rtx, enum machine_mode);
extern int move_source_operand PARAMS ((rtx, enum machine_mode)); extern int move_source_operand (rtx, enum machine_mode);
extern int move_destination_operand PARAMS ((rtx, enum machine_mode)); extern int move_destination_operand (rtx, enum machine_mode);
extern int condexec_source_operand PARAMS ((rtx, enum machine_mode)); extern int condexec_source_operand (rtx, enum machine_mode);
extern int condexec_dest_operand PARAMS ((rtx, enum machine_mode)); extern int condexec_dest_operand (rtx, enum machine_mode);
extern int lr_operand PARAMS ((rtx, enum machine_mode)); extern int lr_operand (rtx, enum machine_mode);
extern int gpr_or_memory_operand PARAMS ((rtx, enum machine_mode)); extern int gpr_or_memory_operand (rtx, enum machine_mode);
extern int fpr_or_memory_operand PARAMS ((rtx, enum machine_mode)); extern int fpr_or_memory_operand (rtx, enum machine_mode);
extern int reg_or_0_operand PARAMS ((rtx, enum machine_mode)); extern int reg_or_0_operand (rtx, enum machine_mode);
extern int fcc_operand PARAMS ((rtx, enum machine_mode)); extern int fcc_operand (rtx, enum machine_mode);
extern int icc_operand PARAMS ((rtx, enum machine_mode)); extern int icc_operand (rtx, enum machine_mode);
extern int cc_operand PARAMS ((rtx, enum machine_mode)); extern int cc_operand (rtx, enum machine_mode);
extern int fcr_operand PARAMS ((rtx, enum machine_mode)); extern int fcr_operand (rtx, enum machine_mode);
extern int icr_operand PARAMS ((rtx, enum machine_mode)); extern int icr_operand (rtx, enum machine_mode);
extern int cr_operand PARAMS ((rtx, enum machine_mode)); extern int cr_operand (rtx, enum machine_mode);
extern int call_operand PARAMS ((rtx, enum machine_mode)); extern int call_operand (rtx, enum machine_mode);
extern int fpr_operand PARAMS ((rtx, enum machine_mode)); extern int fpr_operand (rtx, enum machine_mode);
extern int even_reg_operand PARAMS ((rtx, enum machine_mode)); extern int even_reg_operand (rtx, enum machine_mode);
extern int odd_reg_operand PARAMS ((rtx, enum machine_mode)); extern int odd_reg_operand (rtx, enum machine_mode);
extern int even_gpr_operand PARAMS ((rtx, enum machine_mode)); extern int even_gpr_operand (rtx, enum machine_mode);
extern int odd_gpr_operand PARAMS ((rtx, enum machine_mode)); extern int odd_gpr_operand (rtx, enum machine_mode);
extern int quad_fpr_operand PARAMS ((rtx, enum machine_mode)); extern int quad_fpr_operand (rtx, enum machine_mode);
extern int even_fpr_operand PARAMS ((rtx, enum machine_mode)); extern int even_fpr_operand (rtx, enum machine_mode);
extern int odd_fpr_operand PARAMS ((rtx, enum machine_mode)); extern int odd_fpr_operand (rtx, enum machine_mode);
extern int dbl_memory_one_insn_operand PARAMS ((rtx, enum machine_mode)); extern int dbl_memory_one_insn_operand (rtx, enum machine_mode);
extern int dbl_memory_two_insn_operand PARAMS ((rtx, enum machine_mode)); extern int dbl_memory_two_insn_operand (rtx, enum machine_mode);
extern int int12_operand PARAMS ((rtx, enum machine_mode)); extern int int12_operand (rtx, enum machine_mode);
extern int int6_operand PARAMS ((rtx, enum machine_mode)); extern int int6_operand (rtx, enum machine_mode);
extern int int5_operand PARAMS ((rtx, enum machine_mode)); extern int int5_operand (rtx, enum machine_mode);
extern int uint5_operand PARAMS ((rtx, enum machine_mode)); extern int uint5_operand (rtx, enum machine_mode);
extern int uint4_operand PARAMS ((rtx, enum machine_mode)); extern int uint4_operand (rtx, enum machine_mode);
extern int uint1_operand PARAMS ((rtx, enum machine_mode)); extern int uint1_operand (rtx, enum machine_mode);
extern int int_2word_operand PARAMS ((rtx, enum machine_mode)); extern int int_2word_operand (rtx, enum machine_mode);
extern int pic_register_operand PARAMS ((rtx, enum machine_mode)); extern int pic_register_operand (rtx, enum machine_mode);
extern int pic_symbolic_operand PARAMS ((rtx, enum machine_mode)); extern int pic_symbolic_operand (rtx, enum machine_mode);
extern int small_data_register_operand PARAMS ((rtx, enum machine_mode)); extern int small_data_register_operand (rtx, enum machine_mode);
extern int small_data_symbolic_operand PARAMS ((rtx, enum machine_mode)); extern int small_data_symbolic_operand (rtx, enum machine_mode);
extern int upper_int16_operand PARAMS ((rtx, enum machine_mode)); extern int upper_int16_operand (rtx, enum machine_mode);
extern int uint16_operand PARAMS ((rtx, enum machine_mode)); extern int uint16_operand (rtx, enum machine_mode);
extern int relational_operator PARAMS ((rtx, enum machine_mode)); extern int relational_operator (rtx, enum machine_mode);
extern int signed_relational_operator PARAMS ((rtx, enum machine_mode)); extern int signed_relational_operator (rtx, enum machine_mode);
extern int unsigned_relational_operator PARAMS ((rtx, enum machine_mode)); extern int unsigned_relational_operator (rtx, enum machine_mode);
extern int float_relational_operator PARAMS ((rtx, enum machine_mode)); extern int float_relational_operator (rtx, enum machine_mode);
extern int ccr_eqne_operator PARAMS ((rtx, enum machine_mode)); extern int ccr_eqne_operator (rtx, enum machine_mode);
extern int minmax_operator PARAMS ((rtx, enum machine_mode)); extern int minmax_operator (rtx, enum machine_mode);
extern int condexec_si_binary_operator PARAMS ((rtx, enum machine_mode)); extern int condexec_si_binary_operator (rtx, enum machine_mode);
extern int condexec_si_media_operator PARAMS ((rtx, enum machine_mode)); extern int condexec_si_media_operator (rtx, enum machine_mode);
extern int condexec_si_divide_operator PARAMS ((rtx, enum machine_mode)); extern int condexec_si_divide_operator (rtx, enum machine_mode);
extern int condexec_si_unary_operator PARAMS ((rtx, enum machine_mode)); extern int condexec_si_unary_operator (rtx, enum machine_mode);
extern int condexec_sf_conv_operator PARAMS ((rtx, enum machine_mode)); extern int condexec_sf_conv_operator (rtx, enum machine_mode);
extern int condexec_sf_add_operator PARAMS ((rtx, enum machine_mode)); extern int condexec_sf_add_operator (rtx, enum machine_mode);
extern int condexec_memory_operand PARAMS ((rtx, enum machine_mode)); extern int condexec_memory_operand (rtx, enum machine_mode);
extern int intop_compare_operator PARAMS ((rtx, enum machine_mode)); extern int intop_compare_operator (rtx, enum machine_mode);
extern int condexec_intop_cmp_operator PARAMS ((rtx, enum machine_mode)); extern int condexec_intop_cmp_operator (rtx, enum machine_mode);
extern int acc_operand PARAMS ((rtx, enum machine_mode)); extern int acc_operand (rtx, enum machine_mode);
extern int even_acc_operand PARAMS ((rtx, enum machine_mode)); extern int even_acc_operand (rtx, enum machine_mode);
extern int quad_acc_operand PARAMS ((rtx, enum machine_mode)); extern int quad_acc_operand (rtx, enum machine_mode);
extern int accg_operand PARAMS ((rtx, enum machine_mode)); extern int accg_operand (rtx, enum machine_mode);
extern rtx frv_matching_accg_for_acc PARAMS ((rtx)); extern rtx frv_matching_accg_for_acc (rtx);
#endif #endif
...@@ -196,96 +196,75 @@ const char *frv_sched_lookahead_str; /* -msched-lookahead=n */ ...@@ -196,96 +196,75 @@ const char *frv_sched_lookahead_str; /* -msched-lookahead=n */
int frv_sched_lookahead = 4; /* -msched-lookahead=n */ int frv_sched_lookahead = 4; /* -msched-lookahead=n */
/* Forward references */ /* Forward references */
static int frv_default_flags_for_cpu PARAMS ((void)); static int frv_default_flags_for_cpu (void);
static int frv_string_begins_with PARAMS ((tree, const char *)); static int frv_string_begins_with (tree, const char *);
static FRV_INLINE int const_small_data_p PARAMS ((rtx)); static FRV_INLINE int const_small_data_p (rtx);
static FRV_INLINE int plus_small_data_p PARAMS ((rtx, rtx)); static FRV_INLINE int plus_small_data_p (rtx, rtx);
static void frv_print_operand_memory_reference_reg static void frv_print_operand_memory_reference_reg
PARAMS ((FILE *, rtx)); (FILE *, rtx);
static void frv_print_operand_memory_reference PARAMS ((FILE *, rtx, int)); static void frv_print_operand_memory_reference (FILE *, rtx, int);
static int frv_print_operand_jump_hint PARAMS ((rtx)); static int frv_print_operand_jump_hint (rtx);
static FRV_INLINE int frv_regno_ok_for_base_p PARAMS ((int, int)); static FRV_INLINE int frv_regno_ok_for_base_p (int, int);
static rtx single_set_pattern PARAMS ((rtx)); static rtx single_set_pattern (rtx);
static int frv_function_contains_far_jump PARAMS ((void)); static int frv_function_contains_far_jump (void);
static rtx frv_alloc_temp_reg PARAMS ((frv_tmp_reg_t *, static rtx frv_alloc_temp_reg (frv_tmp_reg_t *,
enum reg_class, enum reg_class,
enum machine_mode, enum machine_mode,
int, int)); int, int);
static rtx frv_frame_offset_rtx PARAMS ((int)); static rtx frv_frame_offset_rtx (int);
static rtx frv_frame_mem PARAMS ((enum machine_mode, static rtx frv_frame_mem (enum machine_mode, rtx, int);
rtx, int)); static rtx frv_dwarf_store (rtx, int);
static rtx frv_dwarf_store PARAMS ((rtx, int)); static void frv_frame_insn (rtx, rtx);
static void frv_frame_insn PARAMS ((rtx, rtx)); static void frv_frame_access (frv_frame_accessor_t*,
static void frv_frame_access PARAMS ((frv_frame_accessor_t*, rtx, int);
rtx, int)); static void frv_frame_access_multi (frv_frame_accessor_t*,
static void frv_frame_access_multi PARAMS ((frv_frame_accessor_t*, frv_stack_t *, int);
frv_stack_t *, int)); static void frv_frame_access_standard_regs (enum frv_stack_op,
static void frv_frame_access_standard_regs PARAMS ((enum frv_stack_op, frv_stack_t *);
frv_stack_t *)); static struct machine_function *frv_init_machine_status (void);
static struct machine_function *frv_init_machine_status PARAMS ((void)); static int frv_legitimate_memory_operand (rtx, enum machine_mode, int);
static int frv_legitimate_memory_operand PARAMS ((rtx, static rtx frv_int_to_acc (enum insn_code, int, rtx);
enum machine_mode, static enum machine_mode frv_matching_accg_mode (enum machine_mode);
int)); static rtx frv_read_argument (tree *);
static rtx frv_int_to_acc PARAMS ((enum insn_code, static int frv_check_constant_argument (enum insn_code, int, rtx);
int, rtx)); static rtx frv_legitimize_target (enum insn_code, rtx);
static enum machine_mode frv_matching_accg_mode PARAMS ((enum machine_mode)); static rtx frv_legitimize_argument (enum insn_code, int, rtx);
static rtx frv_read_argument PARAMS ((tree *)); static rtx frv_expand_set_builtin (enum insn_code, tree, rtx);
static int frv_check_constant_argument PARAMS ((enum insn_code, static rtx frv_expand_unop_builtin (enum insn_code, tree, rtx);
int, rtx)); static rtx frv_expand_binop_builtin (enum insn_code, tree, rtx);
static rtx frv_legitimize_target PARAMS ((enum insn_code, rtx)); static rtx frv_expand_cut_builtin (enum insn_code, tree, rtx);
static rtx frv_legitimize_argument PARAMS ((enum insn_code, static rtx frv_expand_binopimm_builtin (enum insn_code, tree, rtx);
int, rtx)); static rtx frv_expand_voidbinop_builtin (enum insn_code, tree);
static rtx frv_expand_set_builtin PARAMS ((enum insn_code, static rtx frv_expand_voidtriop_builtin (enum insn_code, tree);
tree, rtx)); static rtx frv_expand_voidaccop_builtin (enum insn_code, tree);
static rtx frv_expand_unop_builtin PARAMS ((enum insn_code, static rtx frv_expand_mclracc_builtin (tree);
tree, rtx)); static rtx frv_expand_mrdacc_builtin (enum insn_code, tree);
static rtx frv_expand_binop_builtin PARAMS ((enum insn_code, static rtx frv_expand_mwtacc_builtin (enum insn_code, tree);
tree, rtx)); static rtx frv_expand_noargs_builtin (enum insn_code);
static rtx frv_expand_cut_builtin PARAMS ((enum insn_code, static rtx frv_emit_comparison (enum rtx_code, rtx, rtx);
tree, rtx)); static int frv_clear_registers_used (rtx *, void *);
static rtx frv_expand_binopimm_builtin PARAMS ((enum insn_code, static void frv_ifcvt_add_insn (rtx, rtx, int);
tree, rtx)); static rtx frv_ifcvt_rewrite_mem (rtx, enum machine_mode, rtx);
static rtx frv_expand_voidbinop_builtin PARAMS ((enum insn_code, static rtx frv_ifcvt_load_value (rtx, rtx);
tree)); static void frv_registers_update (rtx, unsigned char [],
static rtx frv_expand_voidtriop_builtin PARAMS ((enum insn_code, int [], int *, int);
tree)); static int frv_registers_used_p (rtx, unsigned char [], int);
static rtx frv_expand_voidaccop_builtin PARAMS ((enum insn_code, static int frv_registers_set_p (rtx, unsigned char [], int);
tree)); static int frv_issue_rate (void);
static rtx frv_expand_mclracc_builtin PARAMS ((tree)); static int frv_use_dfa_pipeline_interface (void);
static rtx frv_expand_mrdacc_builtin PARAMS ((enum insn_code, static void frv_pack_insns (void);
tree)); static void frv_function_prologue (FILE *, HOST_WIDE_INT);
static rtx frv_expand_mwtacc_builtin PARAMS ((enum insn_code, static void frv_function_epilogue (FILE *, HOST_WIDE_INT);
tree)); static bool frv_assemble_integer (rtx, unsigned, int);
static rtx frv_expand_noargs_builtin PARAMS ((enum insn_code)); static void frv_init_builtins (void);
static rtx frv_emit_comparison PARAMS ((enum rtx_code, rtx, static rtx frv_expand_builtin (tree, rtx, rtx, enum machine_mode, int);
rtx)); static void frv_init_libfuncs (void);
static int frv_clear_registers_used PARAMS ((rtx *, void *)); static bool frv_in_small_data_p (tree);
static void frv_ifcvt_add_insn PARAMS ((rtx, rtx, int));
static rtx frv_ifcvt_rewrite_mem PARAMS ((rtx,
enum machine_mode,
rtx));
static rtx frv_ifcvt_load_value PARAMS ((rtx, rtx));
static void frv_registers_update PARAMS ((rtx, unsigned char [],
int [], int *, int));
static int frv_registers_used_p PARAMS ((rtx, unsigned char [],
int));
static int frv_registers_set_p PARAMS ((rtx, unsigned char [],
int));
static int frv_issue_rate PARAMS ((void));
static int frv_use_dfa_pipeline_interface PARAMS ((void));
static void frv_pack_insns PARAMS ((void));
static void frv_function_prologue PARAMS ((FILE *, HOST_WIDE_INT));
static void frv_function_epilogue PARAMS ((FILE *, HOST_WIDE_INT));
static bool frv_assemble_integer PARAMS ((rtx, unsigned, int));
static void frv_init_builtins PARAMS ((void));
static rtx frv_expand_builtin PARAMS ((tree, rtx, rtx, enum machine_mode, int));
static void frv_init_libfuncs PARAMS ((void));
static bool frv_in_small_data_p PARAMS ((tree));
static void frv_asm_output_mi_thunk static void frv_asm_output_mi_thunk
PARAMS ((FILE *, tree, HOST_WIDE_INT, HOST_WIDE_INT, tree)); (FILE *, tree, HOST_WIDE_INT, HOST_WIDE_INT, tree);
static bool frv_rtx_costs PARAMS ((rtx, int, int, int*)); static bool frv_rtx_costs (rtx, int, int, int*);
static void frv_asm_out_constructor PARAMS ((rtx, int)); static void frv_asm_out_constructor (rtx, int);
static void frv_asm_out_destructor PARAMS ((rtx, int)); static void frv_asm_out_destructor (rtx, int);
/* Initialize the GCC target structure. */ /* Initialize the GCC target structure. */
#undef TARGET_ASM_FUNCTION_PROLOGUE #undef TARGET_ASM_FUNCTION_PROLOGUE
...@@ -324,8 +303,7 @@ struct gcc_target targetm = TARGET_INITIALIZER; ...@@ -324,8 +303,7 @@ struct gcc_target targetm = TARGET_INITIALIZER;
/* Given a CONST, return true if the symbol_ref points to small data. */ /* Given a CONST, return true if the symbol_ref points to small data. */
static FRV_INLINE int static FRV_INLINE int
const_small_data_p (x) const_small_data_p (rtx x)
rtx x;
{ {
rtx x0, x1; rtx x0, x1;
...@@ -347,9 +325,7 @@ const_small_data_p (x) ...@@ -347,9 +325,7 @@ const_small_data_p (x)
/* Given a PLUS, return true if this is a small data reference. */ /* Given a PLUS, return true if this is a small data reference. */
static FRV_INLINE int static FRV_INLINE int
plus_small_data_p (op0, op1) plus_small_data_p (rtx op0, rtx op1)
rtx op0;
rtx op1;
{ {
if (GET_MODE (op0) == SImode if (GET_MODE (op0) == SImode
&& GET_CODE (op0) == REG && GET_CODE (op0) == REG
...@@ -367,7 +343,7 @@ plus_small_data_p (op0, op1) ...@@ -367,7 +343,7 @@ plus_small_data_p (op0, op1)
static int static int
frv_default_flags_for_cpu () frv_default_flags_for_cpu (void)
{ {
switch (frv_cpu_type) switch (frv_cpu_type)
{ {
...@@ -398,7 +374,7 @@ frv_default_flags_for_cpu () ...@@ -398,7 +374,7 @@ frv_default_flags_for_cpu ()
`-O'. That is what `OPTIMIZATION_OPTIONS' is for. */ `-O'. That is what `OPTIMIZATION_OPTIONS' is for. */
void void
frv_override_options () frv_override_options (void)
{ {
int regno, i; int regno, i;
...@@ -620,9 +596,7 @@ frv_override_options () ...@@ -620,9 +596,7 @@ frv_override_options ()
/* On the FRV, possibly disable VLIW packing which is done by the 2nd /* On the FRV, possibly disable VLIW packing which is done by the 2nd
scheduling pass at the current time. */ scheduling pass at the current time. */
void void
frv_optimization_options (level, size) frv_optimization_options (int level, int size ATTRIBUTE_UNUSED)
int level;
int size ATTRIBUTE_UNUSED;
{ {
if (level >= 2) if (level >= 2)
{ {
...@@ -639,9 +613,7 @@ frv_optimization_options (level, size) ...@@ -639,9 +613,7 @@ frv_optimization_options (level, size)
/* Return true if NAME (a STRING_CST node) begins with PREFIX. */ /* Return true if NAME (a STRING_CST node) begins with PREFIX. */
static int static int
frv_string_begins_with (name, prefix) frv_string_begins_with (tree name, const char *prefix)
tree name;
const char *prefix;
{ {
int prefix_len = strlen (prefix); int prefix_len = strlen (prefix);
...@@ -671,7 +643,7 @@ frv_string_begins_with (name, prefix) ...@@ -671,7 +643,7 @@ frv_string_begins_with (name, prefix)
target switches are opposed to them.) */ target switches are opposed to them.) */
void void
frv_conditional_register_usage () frv_conditional_register_usage (void)
{ {
int i; int i;
...@@ -878,7 +850,7 @@ frv_conditional_register_usage () ...@@ -878,7 +850,7 @@ frv_conditional_register_usage ()
*/ */
frv_stack_t * frv_stack_t *
frv_stack_info () frv_stack_info (void)
{ {
static frv_stack_t info, zero_info; static frv_stack_t info, zero_info;
frv_stack_t *info_ptr = &info; frv_stack_t *info_ptr = &info;
...@@ -1206,8 +1178,7 @@ frv_stack_info () ...@@ -1206,8 +1178,7 @@ frv_stack_info ()
/* Print the information about the frv stack offsets, etc. when debugging. */ /* Print the information about the frv stack offsets, etc. when debugging. */
void void
frv_debug_stack (info) frv_debug_stack (frv_stack_t *info)
frv_stack_t *info;
{ {
int range; int range;
...@@ -1273,7 +1244,7 @@ static int frv_insn_packing_flag; ...@@ -1273,7 +1244,7 @@ static int frv_insn_packing_flag;
/* True if the current function contains a far jump. */ /* True if the current function contains a far jump. */
static int static int
frv_function_contains_far_jump () frv_function_contains_far_jump (void)
{ {
rtx insn = get_insns (); rtx insn = get_insns ();
while (insn != NULL while (insn != NULL
...@@ -1290,9 +1261,7 @@ frv_function_contains_far_jump () ...@@ -1290,9 +1261,7 @@ frv_function_contains_far_jump ()
will return correctly. It also does the VLIW packing. */ will return correctly. It also does the VLIW packing. */
static void static void
frv_function_prologue (file, size) frv_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
FILE *file;
HOST_WIDE_INT size ATTRIBUTE_UNUSED;
{ {
/* If no frame was created, check whether the function uses a call /* If no frame was created, check whether the function uses a call
instruction to implement a far jump. If so, save the link in gr3 and instruction to implement a far jump. If so, save the link in gr3 and
...@@ -1339,12 +1308,12 @@ frv_function_prologue (file, size) ...@@ -1339,12 +1308,12 @@ frv_function_prologue (file, size)
/* Return the next available temporary register in a given class. */ /* Return the next available temporary register in a given class. */
static rtx static rtx
frv_alloc_temp_reg (info, class, mode, mark_as_used, no_abort) frv_alloc_temp_reg (
frv_tmp_reg_t *info; /* which registers are available */ frv_tmp_reg_t *info, /* which registers are available */
enum reg_class class; /* register class desired */ enum reg_class class, /* register class desired */
enum machine_mode mode; /* mode to allocate register with */ enum machine_mode mode, /* mode to allocate register with */
int mark_as_used; /* register not available after allocation */ int mark_as_used, /* register not available after allocation */
int no_abort; /* return NULL instead of aborting */ int no_abort) /* return NULL instead of aborting */
{ {
int regno = info->next_reg[ (int)class ]; int regno = info->next_reg[ (int)class ];
int orig_regno = regno; int orig_regno = regno;
...@@ -1386,8 +1355,7 @@ frv_alloc_temp_reg (info, class, mode, mark_as_used, no_abort) ...@@ -1386,8 +1355,7 @@ frv_alloc_temp_reg (info, class, mode, mark_as_used, no_abort)
The function returns a constant rtx if OFFSET is small enough, otherwise The function returns a constant rtx if OFFSET is small enough, otherwise
it loads the constant into register OFFSET_REGNO and returns that. */ it loads the constant into register OFFSET_REGNO and returns that. */
static rtx static rtx
frv_frame_offset_rtx (offset) frv_frame_offset_rtx (int offset)
int offset;
{ {
rtx offset_rtx = GEN_INT (offset); rtx offset_rtx = GEN_INT (offset);
if (IN_RANGE_P (offset, -2048, 2047)) if (IN_RANGE_P (offset, -2048, 2047))
...@@ -1409,10 +1377,7 @@ frv_frame_offset_rtx (offset) ...@@ -1409,10 +1377,7 @@ frv_frame_offset_rtx (offset)
/* Generate (mem:MODE (plus:Pmode BASE (frv_frame_offset OFFSET)))). The /* Generate (mem:MODE (plus:Pmode BASE (frv_frame_offset OFFSET)))). The
prologue and epilogue uses such expressions to access the stack. */ prologue and epilogue uses such expressions to access the stack. */
static rtx static rtx
frv_frame_mem (mode, base, offset) frv_frame_mem (enum machine_mode mode, rtx base, int offset)
enum machine_mode mode;
rtx base;
int offset;
{ {
return gen_rtx_MEM (mode, gen_rtx_PLUS (Pmode, return gen_rtx_MEM (mode, gen_rtx_PLUS (Pmode,
base, base,
...@@ -1429,9 +1394,7 @@ frv_frame_mem (mode, base, offset) ...@@ -1429,9 +1394,7 @@ frv_frame_mem (mode, base, offset)
or SEQUENCE that has several sets, each set must be individually marked or SEQUENCE that has several sets, each set must be individually marked
as frame-related. */ as frame-related. */
static rtx static rtx
frv_dwarf_store (reg, offset) frv_dwarf_store (rtx reg, int offset)
rtx reg;
int offset;
{ {
rtx set = gen_rtx_SET (VOIDmode, rtx set = gen_rtx_SET (VOIDmode,
gen_rtx_MEM (GET_MODE (reg), gen_rtx_MEM (GET_MODE (reg),
...@@ -1448,9 +1411,7 @@ frv_dwarf_store (reg, offset) ...@@ -1448,9 +1411,7 @@ frv_dwarf_store (reg, offset)
frame-related and has a REG_FRAME_RELATED_EXPR note containing frame-related and has a REG_FRAME_RELATED_EXPR note containing
DWARF_PATTERN. */ DWARF_PATTERN. */
static void static void
frv_frame_insn (pattern, dwarf_pattern) frv_frame_insn (rtx pattern, rtx dwarf_pattern)
rtx pattern;
rtx dwarf_pattern;
{ {
rtx insn = emit_insn (pattern); rtx insn = emit_insn (pattern);
RTX_FRAME_RELATED_P (insn) = 1; RTX_FRAME_RELATED_P (insn) = 1;
...@@ -1477,10 +1438,7 @@ frv_frame_insn (pattern, dwarf_pattern) ...@@ -1477,10 +1438,7 @@ frv_frame_insn (pattern, dwarf_pattern)
The function takes care of the moves to and from SPRs, using TEMP_REGNO The function takes care of the moves to and from SPRs, using TEMP_REGNO
as a temporary in such cases. */ as a temporary in such cases. */
static void static void
frv_frame_access (accessor, reg, stack_offset) frv_frame_access (frv_frame_accessor_t *accessor, rtx reg, int stack_offset)
frv_frame_accessor_t *accessor;
rtx reg;
int stack_offset;
{ {
enum machine_mode mode = GET_MODE (reg); enum machine_mode mode = GET_MODE (reg);
rtx mem = frv_frame_mem (mode, rtx mem = frv_frame_mem (mode,
...@@ -1531,10 +1489,9 @@ frv_frame_access (accessor, reg, stack_offset) ...@@ -1531,10 +1489,9 @@ frv_frame_access (accessor, reg, stack_offset)
is the stack information generated by frv_stack_info, and REG_SET is the is the stack information generated by frv_stack_info, and REG_SET is the
number of the register set to transfer. */ number of the register set to transfer. */
static void static void
frv_frame_access_multi (accessor, info, reg_set) frv_frame_access_multi (frv_frame_accessor_t *accessor,
frv_frame_accessor_t *accessor; frv_stack_t *info,
frv_stack_t *info; int reg_set)
int reg_set;
{ {
frv_stack_regs_t *regs_info; frv_stack_regs_t *regs_info;
int regno; int regno;
...@@ -1554,9 +1511,7 @@ frv_frame_access_multi (accessor, info, reg_set) ...@@ -1554,9 +1511,7 @@ frv_frame_access_multi (accessor, info, reg_set)
them if OP is FRV_LOAD. INFO is the stack information generated by them if OP is FRV_LOAD. INFO is the stack information generated by
frv_stack_info. */ frv_stack_info. */
static void static void
frv_frame_access_standard_regs (op, info) frv_frame_access_standard_regs (enum frv_stack_op op, frv_stack_t *info)
enum frv_stack_op op;
frv_stack_t *info;
{ {
frv_frame_accessor_t accessor; frv_frame_accessor_t accessor;
...@@ -1579,7 +1534,7 @@ frv_frame_access_standard_regs (op, info) ...@@ -1579,7 +1534,7 @@ frv_frame_access_standard_regs (op, info)
Also any insns generated here should have RTX_FRAME_RELATED_P(insn) = 1 Also any insns generated here should have RTX_FRAME_RELATED_P(insn) = 1
so that the debug info generation code can handle them properly. */ so that the debug info generation code can handle them properly. */
void void
frv_expand_prologue () frv_expand_prologue (void)
{ {
frv_stack_t *info = frv_stack_info (); frv_stack_t *info = frv_stack_info ();
rtx sp = stack_pointer_rtx; rtx sp = stack_pointer_rtx;
...@@ -1692,9 +1647,8 @@ frv_expand_prologue () ...@@ -1692,9 +1647,8 @@ frv_expand_prologue ()
this function provides a convient place to do cleanup. */ this function provides a convient place to do cleanup. */
static void static void
frv_function_epilogue (file, size) frv_function_epilogue (FILE *file ATTRIBUTE_UNUSED,
FILE *file ATTRIBUTE_UNUSED; HOST_WIDE_INT size ATTRIBUTE_UNUSED)
HOST_WIDE_INT size ATTRIBUTE_UNUSED;
{ {
frv_stack_cache = (frv_stack_t *)0; frv_stack_cache = (frv_stack_t *)0;
...@@ -1719,8 +1673,7 @@ frv_function_epilogue (file, size) ...@@ -1719,8 +1673,7 @@ frv_function_epilogue (file, size)
slots for arguments passed to the current function. */ slots for arguments passed to the current function. */
void void
frv_expand_epilogue (sibcall_p) frv_expand_epilogue (int sibcall_p)
int sibcall_p;
{ {
frv_stack_t *info = frv_stack_info (); frv_stack_t *info = frv_stack_info ();
rtx fp = frame_pointer_rtx; rtx fp = frame_pointer_rtx;
...@@ -1821,12 +1774,11 @@ frv_expand_epilogue (sibcall_p) ...@@ -1821,12 +1774,11 @@ frv_expand_epilogue (sibcall_p)
varargs. */ varargs. */
static void static void
frv_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function) frv_asm_output_mi_thunk (FILE *file,
FILE *file; tree thunk_fndecl ATTRIBUTE_UNUSED,
tree thunk_fndecl ATTRIBUTE_UNUSED; HOST_WIDE_INT delta,
HOST_WIDE_INT delta; HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED,
HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED; tree function)
tree function;
{ {
const char *name_func = XSTR (XEXP (DECL_RTL (function), 0), 0); const char *name_func = XSTR (XEXP (DECL_RTL (function), 0), 0);
const char *name_arg0 = reg_names[FIRST_ARG_REGNUM]; const char *name_arg0 = reg_names[FIRST_ARG_REGNUM];
...@@ -1909,7 +1861,7 @@ frv_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function) ...@@ -1909,7 +1861,7 @@ frv_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function)
/* On frv, create a frame whenever we need to create stack */ /* On frv, create a frame whenever we need to create stack */
int int
frv_frame_pointer_required () frv_frame_pointer_required (void)
{ {
if (! current_function_is_leaf) if (! current_function_is_leaf)
return TRUE; return TRUE;
...@@ -1943,9 +1895,7 @@ frv_frame_pointer_required () ...@@ -1943,9 +1895,7 @@ frv_frame_pointer_required ()
/* See frv_stack_info for more details on the frv stack frame. */ /* See frv_stack_info for more details on the frv stack frame. */
int int
frv_initial_elimination_offset (from, to) frv_initial_elimination_offset (int from, int to)
int from;
int to;
{ {
frv_stack_t *info = frv_stack_info (); frv_stack_t *info = frv_stack_info ();
int ret = 0; int ret = 0;
...@@ -2002,12 +1952,11 @@ frv_initial_elimination_offset (from, to) ...@@ -2002,12 +1952,11 @@ frv_initial_elimination_offset (from, to)
this case. */ this case. */
void void
frv_setup_incoming_varargs (cum, mode, type, pretend_size, second_time) frv_setup_incoming_varargs (CUMULATIVE_ARGS *cum,
CUMULATIVE_ARGS *cum; enum machine_mode mode,
enum machine_mode mode; tree type ATTRIBUTE_UNUSED,
tree type ATTRIBUTE_UNUSED; int *pretend_size,
int *pretend_size; int second_time)
int second_time;
{ {
if (TARGET_DEBUG_ARG) if (TARGET_DEBUG_ARG)
fprintf (stderr, fprintf (stderr,
...@@ -2026,7 +1975,7 @@ frv_setup_incoming_varargs (cum, mode, type, pretend_size, second_time) ...@@ -2026,7 +1975,7 @@ frv_setup_incoming_varargs (cum, mode, type, pretend_size, second_time)
the library function `__builtin_saveregs'. */ the library function `__builtin_saveregs'. */
rtx rtx
frv_expand_builtin_saveregs () frv_expand_builtin_saveregs (void)
{ {
int offset = UNITS_PER_WORD * FRV_NUM_ARG_REGS; int offset = UNITS_PER_WORD * FRV_NUM_ARG_REGS;
...@@ -2041,9 +1990,7 @@ frv_expand_builtin_saveregs () ...@@ -2041,9 +1990,7 @@ frv_expand_builtin_saveregs ()
/* Expand __builtin_va_start to do the va_start macro. */ /* Expand __builtin_va_start to do the va_start macro. */
void void
frv_expand_builtin_va_start (valist, nextarg) frv_expand_builtin_va_start (tree valist, rtx nextarg)
tree valist;
rtx nextarg;
{ {
tree t; tree t;
int num = cfun->args_info - FIRST_ARG_REGNUM - FRV_NUM_ARG_REGS; int num = cfun->args_info - FIRST_ARG_REGNUM - FRV_NUM_ARG_REGS;
...@@ -2070,9 +2017,7 @@ frv_expand_builtin_va_start (valist, nextarg) ...@@ -2070,9 +2017,7 @@ frv_expand_builtin_va_start (valist, nextarg)
/* Expand __builtin_va_arg to do the va_arg macro. */ /* Expand __builtin_va_arg to do the va_arg macro. */
rtx rtx
frv_expand_builtin_va_arg(valist, type) frv_expand_builtin_va_arg (tree valist, tree type)
tree valist;
tree type;
{ {
rtx addr; rtx addr;
rtx mem; rtx mem;
...@@ -2117,8 +2062,7 @@ frv_expand_builtin_va_arg(valist, type) ...@@ -2117,8 +2062,7 @@ frv_expand_builtin_va_arg(valist, type)
#endif #endif
int int
frv_expand_block_move (operands) frv_expand_block_move (rtx operands[])
rtx operands[];
{ {
rtx orig_dest = operands[0]; rtx orig_dest = operands[0];
rtx orig_src = operands[1]; rtx orig_src = operands[1];
...@@ -2218,8 +2162,7 @@ frv_expand_block_move (operands) ...@@ -2218,8 +2162,7 @@ frv_expand_block_move (operands)
operands[2] is the alignment */ operands[2] is the alignment */
int int
frv_expand_block_clear (operands) frv_expand_block_clear (rtx operands[])
rtx operands[];
{ {
rtx orig_dest = operands[0]; rtx orig_dest = operands[0];
rtx bytes_rtx = operands[1]; rtx bytes_rtx = operands[1];
...@@ -2291,9 +2234,7 @@ static rtx *frv_insn_operands; ...@@ -2291,9 +2234,7 @@ static rtx *frv_insn_operands;
if it is necessary. */ if it is necessary. */
const char * const char *
frv_asm_output_opcode (f, ptr) frv_asm_output_opcode (FILE *f, const char *ptr)
FILE *f;
const char *ptr;
{ {
int c; int c;
...@@ -2328,10 +2269,7 @@ frv_asm_output_opcode (f, ptr) ...@@ -2328,10 +2269,7 @@ frv_asm_output_opcode (f, ptr)
insns. */ insns. */
void void
frv_final_prescan_insn (insn, opvec, noperands) frv_final_prescan_insn (rtx insn, rtx *opvec, int noperands ATTRIBUTE_UNUSED)
rtx insn;
rtx *opvec;
int noperands ATTRIBUTE_UNUSED;
{ {
if (! PACKING_FLAG_USED_P()) if (! PACKING_FLAG_USED_P())
return; return;
...@@ -2381,8 +2319,7 @@ frv_final_prescan_insn (insn, opvec, noperands) ...@@ -2381,8 +2319,7 @@ frv_final_prescan_insn (insn, opvec, noperands)
/* The default is correct, but we need to make sure the frame gets created. */ /* The default is correct, but we need to make sure the frame gets created. */
rtx rtx
frv_dynamic_chain_address (frame) frv_dynamic_chain_address (rtx frame)
rtx frame;
{ {
cfun->machine->frame_needed = 1; cfun->machine->frame_needed = 1;
return frame; return frame;
...@@ -2400,9 +2337,7 @@ frv_dynamic_chain_address (frame) ...@@ -2400,9 +2337,7 @@ frv_dynamic_chain_address (frame)
address of other frames. */ address of other frames. */
rtx rtx
frv_return_addr_rtx (count, frame) frv_return_addr_rtx (int count ATTRIBUTE_UNUSED, rtx frame)
int count ATTRIBUTE_UNUSED;
rtx frame;
{ {
cfun->machine->frame_needed = 1; cfun->machine->frame_needed = 1;
return gen_rtx_MEM (Pmode, plus_constant (frame, 8)); return gen_rtx_MEM (Pmode, plus_constant (frame, 8));
...@@ -2417,10 +2352,7 @@ frv_return_addr_rtx (count, frame) ...@@ -2417,10 +2352,7 @@ frv_return_addr_rtx (count, frame)
GO_IF_LEGITIMATE_ADDRESS forbids register+register addresses, which GO_IF_LEGITIMATE_ADDRESS forbids register+register addresses, which
this function cannot handle. */ this function cannot handle. */
rtx rtx
frv_index_memory (memref, mode, index) frv_index_memory (rtx memref, enum machine_mode mode, int index)
rtx memref;
enum machine_mode mode;
int index;
{ {
rtx base = XEXP (memref, 0); rtx base = XEXP (memref, 0);
if (GET_CODE (base) == PRE_MODIFY) if (GET_CODE (base) == PRE_MODIFY)
...@@ -2432,9 +2364,7 @@ frv_index_memory (memref, mode, index) ...@@ -2432,9 +2364,7 @@ frv_index_memory (memref, mode, index)
/* Print a memory address as an operand to reference that memory location. */ /* Print a memory address as an operand to reference that memory location. */
void void
frv_print_operand_address (stream, x) frv_print_operand_address (FILE * stream, rtx x)
FILE * stream;
rtx x;
{ {
if (GET_CODE (x) == MEM) if (GET_CODE (x) == MEM)
x = XEXP (x, 0); x = XEXP (x, 0);
...@@ -2467,9 +2397,7 @@ frv_print_operand_address (stream, x) ...@@ -2467,9 +2397,7 @@ frv_print_operand_address (stream, x)
static void static void
frv_print_operand_memory_reference_reg (stream, x) frv_print_operand_memory_reference_reg (FILE * stream, rtx x)
FILE *stream;
rtx x;
{ {
int regno = true_regnum (x); int regno = true_regnum (x);
if (GPR_P (regno)) if (GPR_P (regno))
...@@ -2481,10 +2409,7 @@ frv_print_operand_memory_reference_reg (stream, x) ...@@ -2481,10 +2409,7 @@ frv_print_operand_memory_reference_reg (stream, x)
/* Print a memory reference suitable for the ld/st instructions. */ /* Print a memory reference suitable for the ld/st instructions. */
static void static void
frv_print_operand_memory_reference (stream, x, addr_offset) frv_print_operand_memory_reference (FILE * stream, rtx x, int addr_offset)
FILE *stream;
rtx x;
int addr_offset;
{ {
rtx x0 = NULL_RTX; rtx x0 = NULL_RTX;
rtx x1 = NULL_RTX; rtx x1 = NULL_RTX;
...@@ -2594,8 +2519,7 @@ frv_print_operand_memory_reference (stream, x, addr_offset) ...@@ -2594,8 +2519,7 @@ frv_print_operand_memory_reference (stream, x, addr_offset)
#define FRV_JUMP_NOT_LIKELY 0 #define FRV_JUMP_NOT_LIKELY 0
static int static int
frv_print_operand_jump_hint (insn) frv_print_operand_jump_hint (rtx insn)
rtx insn;
{ {
rtx note; rtx note;
rtx labelref; rtx labelref;
...@@ -2692,10 +2616,7 @@ frv_print_operand_jump_hint (insn) ...@@ -2692,10 +2616,7 @@ frv_print_operand_jump_hint (insn)
are valid with the `PRINT_OPERAND_PUNCT_VALID_P' macro. */ are valid with the `PRINT_OPERAND_PUNCT_VALID_P' macro. */
void void
frv_print_operand (file, x, code) frv_print_operand (FILE * file, rtx x, int code)
FILE * file;
rtx x;
int code;
{ {
HOST_WIDE_INT value; HOST_WIDE_INT value;
int offset; int offset;
...@@ -3022,12 +2943,11 @@ frv_print_operand (file, x, code) ...@@ -3022,12 +2943,11 @@ frv_print_operand (file, x, code)
FNTYPE is nonzero, but never both of them at once. */ FNTYPE is nonzero, but never both of them at once. */
void void
frv_init_cumulative_args (cum, fntype, libname, fndecl, incoming) frv_init_cumulative_args (CUMULATIVE_ARGS *cum,
CUMULATIVE_ARGS *cum; tree fntype,
tree fntype; rtx libname,
rtx libname; tree fndecl,
tree fndecl; int incoming)
int incoming;
{ {
*cum = FIRST_ARG_REGNUM; *cum = FIRST_ARG_REGNUM;
...@@ -3063,9 +2983,8 @@ frv_init_cumulative_args (cum, fntype, libname, fndecl, incoming) ...@@ -3063,9 +2983,8 @@ frv_init_cumulative_args (cum, fntype, libname, fndecl, incoming)
`PARM_BOUNDARY' is used for all arguments. */ `PARM_BOUNDARY' is used for all arguments. */
int int
frv_function_arg_boundary (mode, type) frv_function_arg_boundary (enum machine_mode mode ATTRIBUTE_UNUSED,
enum machine_mode mode ATTRIBUTE_UNUSED; tree type ATTRIBUTE_UNUSED)
tree type ATTRIBUTE_UNUSED;
{ {
return BITS_PER_WORD; return BITS_PER_WORD;
} }
...@@ -3102,12 +3021,11 @@ frv_function_arg_boundary (mode, type) ...@@ -3102,12 +3021,11 @@ frv_function_arg_boundary (mode, type)
stack and then loaded into a register. */ stack and then loaded into a register. */
rtx rtx
frv_function_arg (cum, mode, type, named, incoming) frv_function_arg (CUMULATIVE_ARGS *cum,
CUMULATIVE_ARGS *cum; enum machine_mode mode,
enum machine_mode mode; tree type ATTRIBUTE_UNUSED,
tree type ATTRIBUTE_UNUSED; int named,
int named; int incoming ATTRIBUTE_UNUSED)
int incoming ATTRIBUTE_UNUSED;
{ {
enum machine_mode xmode = (mode == BLKmode) ? SImode : mode; enum machine_mode xmode = (mode == BLKmode) ? SImode : mode;
int arg_num = *cum; int arg_num = *cum;
...@@ -3152,11 +3070,10 @@ frv_function_arg (cum, mode, type, named, incoming) ...@@ -3152,11 +3070,10 @@ frv_function_arg (cum, mode, type, named, incoming)
for arguments without any special help. */ for arguments without any special help. */
void void
frv_function_arg_advance (cum, mode, type, named) frv_function_arg_advance (CUMULATIVE_ARGS *cum,
CUMULATIVE_ARGS *cum; enum machine_mode mode,
enum machine_mode mode; tree type ATTRIBUTE_UNUSED,
tree type ATTRIBUTE_UNUSED; int named)
int named;
{ {
enum machine_mode xmode = (mode == BLKmode) ? SImode : mode; enum machine_mode xmode = (mode == BLKmode) ? SImode : mode;
int bytes = GET_MODE_SIZE (xmode); int bytes = GET_MODE_SIZE (xmode);
...@@ -3189,11 +3106,10 @@ frv_function_arg_advance (cum, mode, type, named) ...@@ -3189,11 +3106,10 @@ frv_function_arg_advance (cum, mode, type, named)
the called function. */ the called function. */
int int
frv_function_arg_partial_nregs (cum, mode, type, named) frv_function_arg_partial_nregs (CUMULATIVE_ARGS *cum,
CUMULATIVE_ARGS *cum; enum machine_mode mode,
enum machine_mode mode; tree type ATTRIBUTE_UNUSED,
tree type ATTRIBUTE_UNUSED; int named ATTRIBUTE_UNUSED)
int named ATTRIBUTE_UNUSED;
{ {
enum machine_mode xmode = (mode == BLKmode) ? SImode : mode; enum machine_mode xmode = (mode == BLKmode) ? SImode : mode;
int bytes = GET_MODE_SIZE (xmode); int bytes = GET_MODE_SIZE (xmode);
...@@ -3226,11 +3142,10 @@ frv_function_arg_partial_nregs (cum, mode, type, named) ...@@ -3226,11 +3142,10 @@ frv_function_arg_partial_nregs (cum, mode, type, named)
MUST_PASS_IN_STACK (MODE, TYPE) */ MUST_PASS_IN_STACK (MODE, TYPE) */
int int
frv_function_arg_pass_by_reference (cum, mode, type, named) frv_function_arg_pass_by_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED,
CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED; enum machine_mode mode,
enum machine_mode mode; tree type,
tree type; int named ATTRIBUTE_UNUSED)
int named ATTRIBUTE_UNUSED;
{ {
return MUST_PASS_IN_STACK (mode, type); return MUST_PASS_IN_STACK (mode, type);
} }
...@@ -3245,11 +3160,10 @@ frv_function_arg_pass_by_reference (cum, mode, type, named) ...@@ -3245,11 +3160,10 @@ frv_function_arg_pass_by_reference (cum, mode, type, named)
otherwise a copy must be made. */ otherwise a copy must be made. */
int int
frv_function_arg_callee_copies (cum, mode, type, named) frv_function_arg_callee_copies (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED,
CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED; enum machine_mode mode ATTRIBUTE_UNUSED,
enum machine_mode mode ATTRIBUTE_UNUSED; tree type ATTRIBUTE_UNUSED,
tree type ATTRIBUTE_UNUSED; int named ATTRIBUTE_UNUSED)
int named ATTRIBUTE_UNUSED;
{ {
return 0; return 0;
} }
...@@ -3259,11 +3173,10 @@ frv_function_arg_callee_copies (cum, mode, type, named) ...@@ -3259,11 +3173,10 @@ frv_function_arg_callee_copies (cum, mode, type, named)
copying it to a pseudo register. */ copying it to a pseudo register. */
int int
frv_function_arg_keep_as_reference (cum, mode, type, named) frv_function_arg_keep_as_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED,
CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED; enum machine_mode mode ATTRIBUTE_UNUSED,
enum machine_mode mode ATTRIBUTE_UNUSED; tree type ATTRIBUTE_UNUSED,
tree type ATTRIBUTE_UNUSED; int named ATTRIBUTE_UNUSED)
int named ATTRIBUTE_UNUSED;
{ {
return 0; return 0;
} }
...@@ -3272,9 +3185,7 @@ frv_function_arg_keep_as_reference (cum, mode, type, named) ...@@ -3272,9 +3185,7 @@ frv_function_arg_keep_as_reference (cum, mode, type, named)
/* Return true if a register is ok to use as a base or index register. */ /* Return true if a register is ok to use as a base or index register. */
static FRV_INLINE int static FRV_INLINE int
frv_regno_ok_for_base_p (regno, strict_p) frv_regno_ok_for_base_p (int regno, int strict_p)
int regno;
int strict_p;
{ {
if (GPR_P (regno)) if (GPR_P (regno))
return TRUE; return TRUE;
...@@ -3346,11 +3257,10 @@ frv_regno_ok_for_base_p (regno, strict_p) ...@@ -3346,11 +3257,10 @@ frv_regno_ok_for_base_p (regno, strict_p)
`PRINT_OPERAND_ADDRESS'. */ `PRINT_OPERAND_ADDRESS'. */
int int
frv_legitimate_address_p (mode, x, strict_p, condexec_p) frv_legitimate_address_p (enum machine_mode mode,
enum machine_mode mode; rtx x,
rtx x; int strict_p,
int strict_p; int condexec_p)
int condexec_p;
{ {
rtx x0, x1; rtx x0, x1;
int ret = 0; int ret = 0;
...@@ -3503,10 +3413,9 @@ frv_legitimate_address_p (mode, x, strict_p, condexec_p) ...@@ -3503,10 +3413,9 @@ frv_legitimate_address_p (mode, x, strict_p, condexec_p)
can generate better code. */ can generate better code. */
rtx rtx
frv_legitimize_address (x, oldx, mode) frv_legitimize_address (rtx x,
rtx x; rtx oldx ATTRIBUTE_UNUSED,
rtx oldx ATTRIBUTE_UNUSED; enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
rtx ret = NULL_RTX; rtx ret = NULL_RTX;
...@@ -3537,10 +3446,7 @@ frv_legitimize_address (x, oldx, mode) ...@@ -3537,10 +3446,7 @@ frv_legitimize_address (x, oldx, mode)
the operand is used by a predicated instruction. */ the operand is used by a predicated instruction. */
static int static int
frv_legitimate_memory_operand (op, mode, condexec_p) frv_legitimate_memory_operand (rtx op, enum machine_mode mode, int condexec_p)
rtx op;
enum machine_mode mode;
int condexec_p;
{ {
return ((GET_MODE (op) == mode || mode == VOIDmode) return ((GET_MODE (op) == mode || mode == VOIDmode)
&& GET_CODE (op) == MEM && GET_CODE (op) == MEM
...@@ -3552,9 +3458,8 @@ frv_legitimate_memory_operand (op, mode, condexec_p) ...@@ -3552,9 +3458,8 @@ frv_legitimate_memory_operand (op, mode, condexec_p)
/* Return 1 is OP is a memory operand, or will be turned into one by /* Return 1 is OP is a memory operand, or will be turned into one by
reload. */ reload. */
int frv_load_operand (op, mode) int
rtx op; frv_load_operand (rtx op, enum machine_mode mode)
enum machine_mode mode;
{ {
if (GET_MODE (op) != mode && mode != VOIDmode) if (GET_MODE (op) != mode && mode != VOIDmode)
return FALSE; return FALSE;
...@@ -3575,9 +3480,8 @@ int frv_load_operand (op, mode) ...@@ -3575,9 +3480,8 @@ int frv_load_operand (op, mode)
/* Return 1 if operand is a GPR register or a FPR register. */ /* Return 1 if operand is a GPR register or a FPR register. */
int gpr_or_fpr_operand (op, mode) int
rtx op; gpr_or_fpr_operand (rtx op, enum machine_mode mode)
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -3604,9 +3508,8 @@ int gpr_or_fpr_operand (op, mode) ...@@ -3604,9 +3508,8 @@ int gpr_or_fpr_operand (op, mode)
/* Return 1 if operand is a GPR register or 12 bit signed immediate. */ /* Return 1 if operand is a GPR register or 12 bit signed immediate. */
int gpr_or_int12_operand (op, mode) int
rtx op; gpr_or_int12_operand (rtx op, enum machine_mode mode)
enum machine_mode mode;
{ {
if (GET_CODE (op) == CONST_INT) if (GET_CODE (op) == CONST_INT)
return IN_RANGE_P (INTVAL (op), -2048, 2047); return IN_RANGE_P (INTVAL (op), -2048, 2047);
...@@ -3631,9 +3534,8 @@ int gpr_or_int12_operand (op, mode) ...@@ -3631,9 +3534,8 @@ int gpr_or_int12_operand (op, mode)
/* Return 1 if operand is a GPR register, or a FPR register, or a 12 bit /* Return 1 if operand is a GPR register, or a FPR register, or a 12 bit
signed immediate. */ signed immediate. */
int gpr_fpr_or_int12_operand (op, mode) int
rtx op; gpr_fpr_or_int12_operand (rtx op, enum machine_mode mode)
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -3663,9 +3565,8 @@ int gpr_fpr_or_int12_operand (op, mode) ...@@ -3663,9 +3565,8 @@ int gpr_fpr_or_int12_operand (op, mode)
/* Return 1 if operand is a register or 6 bit signed immediate. */ /* Return 1 if operand is a register or 6 bit signed immediate. */
int fpr_or_int6_operand (op, mode) int
rtx op; fpr_or_int6_operand (rtx op, enum machine_mode mode)
enum machine_mode mode;
{ {
if (GET_CODE (op) == CONST_INT) if (GET_CODE (op) == CONST_INT)
return IN_RANGE_P (INTVAL (op), -32, 31); return IN_RANGE_P (INTVAL (op), -32, 31);
...@@ -3689,9 +3590,8 @@ int fpr_or_int6_operand (op, mode) ...@@ -3689,9 +3590,8 @@ int fpr_or_int6_operand (op, mode)
/* Return 1 if operand is a register or 10 bit signed immediate. */ /* Return 1 if operand is a register or 10 bit signed immediate. */
int gpr_or_int10_operand (op, mode) int
rtx op; gpr_or_int10_operand (rtx op, enum machine_mode mode)
enum machine_mode mode;
{ {
if (GET_CODE (op) == CONST_INT) if (GET_CODE (op) == CONST_INT)
return IN_RANGE_P (INTVAL (op), -512, 511); return IN_RANGE_P (INTVAL (op), -512, 511);
...@@ -3715,9 +3615,8 @@ int gpr_or_int10_operand (op, mode) ...@@ -3715,9 +3615,8 @@ int gpr_or_int10_operand (op, mode)
/* Return 1 if operand is a register or an integer immediate. */ /* Return 1 if operand is a register or an integer immediate. */
int gpr_or_int_operand (op, mode) int
rtx op; gpr_or_int_operand (rtx op, enum machine_mode mode)
enum machine_mode mode;
{ {
if (GET_CODE (op) == CONST_INT) if (GET_CODE (op) == CONST_INT)
return TRUE; return TRUE;
...@@ -3741,9 +3640,8 @@ int gpr_or_int_operand (op, mode) ...@@ -3741,9 +3640,8 @@ int gpr_or_int_operand (op, mode)
/* Return 1 if operand is a 12 bit signed immediate. */ /* Return 1 if operand is a 12 bit signed immediate. */
int int12_operand (op, mode) int
rtx op; int12_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
if (GET_CODE (op) != CONST_INT) if (GET_CODE (op) != CONST_INT)
return FALSE; return FALSE;
...@@ -3753,9 +3651,8 @@ int int12_operand (op, mode) ...@@ -3753,9 +3651,8 @@ int int12_operand (op, mode)
/* Return 1 if operand is a 6 bit signed immediate. */ /* Return 1 if operand is a 6 bit signed immediate. */
int int6_operand (op, mode) int
rtx op; int6_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
if (GET_CODE (op) != CONST_INT) if (GET_CODE (op) != CONST_INT)
return FALSE; return FALSE;
...@@ -3765,36 +3662,32 @@ int int6_operand (op, mode) ...@@ -3765,36 +3662,32 @@ int int6_operand (op, mode)
/* Return 1 if operand is a 5 bit signed immediate. */ /* Return 1 if operand is a 5 bit signed immediate. */
int int5_operand (op, mode) int
rtx op; int5_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
return GET_CODE (op) == CONST_INT && IN_RANGE_P (INTVAL (op), -16, 15); return GET_CODE (op) == CONST_INT && IN_RANGE_P (INTVAL (op), -16, 15);
} }
/* Return 1 if operand is a 5 bit unsigned immediate. */ /* Return 1 if operand is a 5 bit unsigned immediate. */
int uint5_operand (op, mode) int
rtx op; uint5_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
return GET_CODE (op) == CONST_INT && IN_RANGE_P (INTVAL (op), 0, 31); return GET_CODE (op) == CONST_INT && IN_RANGE_P (INTVAL (op), 0, 31);
} }
/* Return 1 if operand is a 4 bit unsigned immediate. */ /* Return 1 if operand is a 4 bit unsigned immediate. */
int uint4_operand (op, mode) int
rtx op; uint4_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
return GET_CODE (op) == CONST_INT && IN_RANGE_P (INTVAL (op), 0, 15); return GET_CODE (op) == CONST_INT && IN_RANGE_P (INTVAL (op), 0, 15);
} }
/* Return 1 if operand is a 1 bit unsigned immediate (0 or 1). */ /* Return 1 if operand is a 1 bit unsigned immediate (0 or 1). */
int uint1_operand (op, mode) int
rtx op; uint1_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
return GET_CODE (op) == CONST_INT && IN_RANGE_P (INTVAL (op), 0, 1); return GET_CODE (op) == CONST_INT && IN_RANGE_P (INTVAL (op), 0, 1);
} }
...@@ -3802,9 +3695,8 @@ int uint1_operand (op, mode) ...@@ -3802,9 +3695,8 @@ int uint1_operand (op, mode)
/* Return 1 if operand is an integer constant that takes 2 instructions /* Return 1 if operand is an integer constant that takes 2 instructions
to load up and can be split into sethi/setlo instructions.. */ to load up and can be split into sethi/setlo instructions.. */
int int_2word_operand (op, mode) int
rtx op; int_2word_operand(rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
HOST_WIDE_INT value; HOST_WIDE_INT value;
REAL_VALUE_TYPE rv; REAL_VALUE_TYPE rv;
...@@ -3850,9 +3742,7 @@ int int_2word_operand (op, mode) ...@@ -3850,9 +3742,7 @@ int int_2word_operand (op, mode)
/* Return 1 if operand is the pic address register. */ /* Return 1 if operand is the pic address register. */
int int
pic_register_operand (op, mode) pic_register_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
rtx op;
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
if (! flag_pic) if (! flag_pic)
return FALSE; return FALSE;
...@@ -3869,9 +3759,8 @@ pic_register_operand (op, mode) ...@@ -3869,9 +3759,8 @@ pic_register_operand (op, mode)
/* Return 1 if operand is a symbolic reference when a PIC option is specified /* Return 1 if operand is a symbolic reference when a PIC option is specified
that takes 3 seperate instructions to form. */ that takes 3 seperate instructions to form. */
int pic_symbolic_operand (op, mode) int
rtx op; pic_symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
if (! flag_pic) if (! flag_pic)
return FALSE; return FALSE;
...@@ -3898,9 +3787,7 @@ int pic_symbolic_operand (op, mode) ...@@ -3898,9 +3787,7 @@ int pic_symbolic_operand (op, mode)
/* Return 1 if operand is the small data register. */ /* Return 1 if operand is the small data register. */
int int
small_data_register_operand (op, mode) small_data_register_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
rtx op;
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
if (GET_CODE (op) != REG) if (GET_CODE (op) != REG)
return FALSE; return FALSE;
...@@ -3914,9 +3801,8 @@ small_data_register_operand (op, mode) ...@@ -3914,9 +3801,8 @@ small_data_register_operand (op, mode)
/* Return 1 if operand is a symbolic reference to a small data area static or /* Return 1 if operand is a symbolic reference to a small data area static or
global object. */ global object. */
int small_data_symbolic_operand (op, mode) int
rtx op; small_data_symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
switch (GET_CODE (op)) switch (GET_CODE (op))
{ {
...@@ -3935,9 +3821,8 @@ int small_data_symbolic_operand (op, mode) ...@@ -3935,9 +3821,8 @@ int small_data_symbolic_operand (op, mode)
/* Return 1 if operand is a 16 bit unsigned immediate */ /* Return 1 if operand is a 16 bit unsigned immediate */
int uint16_operand (op, mode) int
rtx op; uint16_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
if (GET_CODE (op) != CONST_INT) if (GET_CODE (op) != CONST_INT)
return FALSE; return FALSE;
...@@ -3947,9 +3832,8 @@ int uint16_operand (op, mode) ...@@ -3947,9 +3832,8 @@ int uint16_operand (op, mode)
/* Return 1 if operand is an integer constant with the bottom 16 bits clear */ /* Return 1 if operand is an integer constant with the bottom 16 bits clear */
int upper_int16_operand (op, mode) int
rtx op; upper_int16_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
enum machine_mode mode ATTRIBUTE_UNUSED;
{ {
if (GET_CODE (op) != CONST_INT) if (GET_CODE (op) != CONST_INT)
return FALSE; return FALSE;
...@@ -3960,9 +3844,7 @@ int upper_int16_operand (op, mode) ...@@ -3960,9 +3844,7 @@ int upper_int16_operand (op, mode)
/* Return true if operand is a GPR register. */ /* Return true if operand is a GPR register. */
int int
integer_register_operand (op, mode) integer_register_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
if (GET_MODE (op) != mode && mode != VOIDmode) if (GET_MODE (op) != mode && mode != VOIDmode)
return FALSE; return FALSE;
...@@ -3985,9 +3867,7 @@ integer_register_operand (op, mode) ...@@ -3985,9 +3867,7 @@ integer_register_operand (op, mode)
here, in order to prevent a combine bug. */ here, in order to prevent a combine bug. */
int int
gpr_no_subreg_operand (op, mode) gpr_no_subreg_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
if (GET_MODE (op) != mode && mode != VOIDmode) if (GET_MODE (op) != mode && mode != VOIDmode)
return FALSE; return FALSE;
...@@ -4001,9 +3881,7 @@ gpr_no_subreg_operand (op, mode) ...@@ -4001,9 +3881,7 @@ gpr_no_subreg_operand (op, mode)
/* Return true if operand is a FPR register. */ /* Return true if operand is a FPR register. */
int int
fpr_operand (op, mode) fpr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
if (GET_MODE (op) != mode && mode != VOIDmode) if (GET_MODE (op) != mode && mode != VOIDmode)
return FALSE; return FALSE;
...@@ -4025,9 +3903,7 @@ fpr_operand (op, mode) ...@@ -4025,9 +3903,7 @@ fpr_operand (op, mode)
/* Return true if operand is an even GPR or FPR register. */ /* Return true if operand is an even GPR or FPR register. */
int int
even_reg_operand (op, mode) even_reg_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4061,9 +3937,7 @@ even_reg_operand (op, mode) ...@@ -4061,9 +3937,7 @@ even_reg_operand (op, mode)
/* Return true if operand is an odd GPR register. */ /* Return true if operand is an odd GPR register. */
int int
odd_reg_operand (op, mode) odd_reg_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4098,9 +3972,7 @@ odd_reg_operand (op, mode) ...@@ -4098,9 +3972,7 @@ odd_reg_operand (op, mode)
/* Return true if operand is an even GPR register. */ /* Return true if operand is an even GPR register. */
int int
even_gpr_operand (op, mode) even_gpr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4131,9 +4003,7 @@ even_gpr_operand (op, mode) ...@@ -4131,9 +4003,7 @@ even_gpr_operand (op, mode)
/* Return true if operand is an odd GPR register. */ /* Return true if operand is an odd GPR register. */
int int
odd_gpr_operand (op, mode) odd_gpr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4165,9 +4035,7 @@ odd_gpr_operand (op, mode) ...@@ -4165,9 +4035,7 @@ odd_gpr_operand (op, mode)
/* Return true if operand is a quad aligned FPR register. */ /* Return true if operand is a quad aligned FPR register. */
int int
quad_fpr_operand (op, mode) quad_fpr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4198,9 +4066,7 @@ quad_fpr_operand (op, mode) ...@@ -4198,9 +4066,7 @@ quad_fpr_operand (op, mode)
/* Return true if operand is an even FPR register. */ /* Return true if operand is an even FPR register. */
int int
even_fpr_operand (op, mode) even_fpr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4231,9 +4097,7 @@ even_fpr_operand (op, mode) ...@@ -4231,9 +4097,7 @@ even_fpr_operand (op, mode)
/* Return true if operand is an odd FPR register. */ /* Return true if operand is an odd FPR register. */
int int
odd_fpr_operand (op, mode) odd_fpr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4270,9 +4134,7 @@ odd_fpr_operand (op, mode) ...@@ -4270,9 +4134,7 @@ odd_fpr_operand (op, mode)
the stack and the address taken and passed through to another function. */ the stack and the address taken and passed through to another function. */
int int
dbl_memory_one_insn_operand (op, mode) dbl_memory_one_insn_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
rtx addr; rtx addr;
rtx addr_reg; rtx addr_reg;
...@@ -4323,9 +4185,7 @@ dbl_memory_one_insn_operand (op, mode) ...@@ -4323,9 +4185,7 @@ dbl_memory_one_insn_operand (op, mode)
use two instructions to load or store. */ use two instructions to load or store. */
int int
dbl_memory_two_insn_operand (op, mode) dbl_memory_two_insn_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
if (GET_CODE (op) != MEM) if (GET_CODE (op) != MEM)
return FALSE; return FALSE;
...@@ -4343,9 +4203,7 @@ dbl_memory_two_insn_operand (op, mode) ...@@ -4343,9 +4203,7 @@ dbl_memory_two_insn_operand (op, mode)
operation. */ operation. */
int int
move_destination_operand (op, mode) move_destination_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
rtx subreg; rtx subreg;
enum rtx_code code; enum rtx_code code;
...@@ -4387,9 +4245,7 @@ move_destination_operand (op, mode) ...@@ -4387,9 +4245,7 @@ move_destination_operand (op, mode)
operation. */ operation. */
int int
move_source_operand (op, mode) move_source_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
rtx subreg; rtx subreg;
enum rtx_code code; enum rtx_code code;
...@@ -4438,9 +4294,7 @@ move_source_operand (op, mode) ...@@ -4438,9 +4294,7 @@ move_source_operand (op, mode)
move operation. */ move operation. */
int int
condexec_dest_operand (op, mode) condexec_dest_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
rtx subreg; rtx subreg;
enum rtx_code code; enum rtx_code code;
...@@ -4482,9 +4336,7 @@ condexec_dest_operand (op, mode) ...@@ -4482,9 +4336,7 @@ condexec_dest_operand (op, mode)
move operation. */ move operation. */
int int
condexec_source_operand (op, mode) condexec_source_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
rtx subreg; rtx subreg;
enum rtx_code code; enum rtx_code code;
...@@ -4530,9 +4382,7 @@ condexec_source_operand (op, mode) ...@@ -4530,9 +4382,7 @@ condexec_source_operand (op, mode)
appropriate type. */ appropriate type. */
int int
reg_or_0_operand (op, mode) reg_or_0_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
switch (GET_CODE (op)) switch (GET_CODE (op))
{ {
...@@ -4557,9 +4407,7 @@ reg_or_0_operand (op, mode) ...@@ -4557,9 +4407,7 @@ reg_or_0_operand (op, mode)
/* Return true if operand is the link register */ /* Return true if operand is the link register */
int int
lr_operand (op, mode) lr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
if (GET_CODE (op) != REG) if (GET_CODE (op) != REG)
return FALSE; return FALSE;
...@@ -4576,9 +4424,7 @@ lr_operand (op, mode) ...@@ -4576,9 +4424,7 @@ lr_operand (op, mode)
/* Return true if operand is a gpr register or a valid memory operation. */ /* Return true if operand is a gpr register or a valid memory operation. */
int int
gpr_or_memory_operand (op, mode) gpr_or_memory_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
return (integer_register_operand (op, mode) return (integer_register_operand (op, mode)
|| frv_legitimate_memory_operand (op, mode, FALSE)); || frv_legitimate_memory_operand (op, mode, FALSE));
...@@ -4587,9 +4433,7 @@ gpr_or_memory_operand (op, mode) ...@@ -4587,9 +4433,7 @@ gpr_or_memory_operand (op, mode)
/* Return true if operand is a fpr register or a valid memory operation. */ /* Return true if operand is a fpr register or a valid memory operation. */
int int
fpr_or_memory_operand (op, mode) fpr_or_memory_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
return (fpr_operand (op, mode) return (fpr_operand (op, mode)
|| frv_legitimate_memory_operand (op, mode, FALSE)); || frv_legitimate_memory_operand (op, mode, FALSE));
...@@ -4598,9 +4442,7 @@ fpr_or_memory_operand (op, mode) ...@@ -4598,9 +4442,7 @@ fpr_or_memory_operand (op, mode)
/* Return true if operand is an icc register */ /* Return true if operand is an icc register */
int int
icc_operand (op, mode) icc_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4617,9 +4459,7 @@ icc_operand (op, mode) ...@@ -4617,9 +4459,7 @@ icc_operand (op, mode)
/* Return true if operand is an fcc register */ /* Return true if operand is an fcc register */
int int
fcc_operand (op, mode) fcc_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4636,9 +4476,7 @@ fcc_operand (op, mode) ...@@ -4636,9 +4476,7 @@ fcc_operand (op, mode)
/* Return true if operand is either an fcc or icc register */ /* Return true if operand is either an fcc or icc register */
int int
cc_operand (op, mode) cc_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4658,9 +4496,7 @@ cc_operand (op, mode) ...@@ -4658,9 +4496,7 @@ cc_operand (op, mode)
/* Return true if operand is an integer CCR register */ /* Return true if operand is an integer CCR register */
int int
icr_operand (op, mode) icr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4677,9 +4513,7 @@ icr_operand (op, mode) ...@@ -4677,9 +4513,7 @@ icr_operand (op, mode)
/* Return true if operand is an fcc register */ /* Return true if operand is an fcc register */
int int
fcr_operand (op, mode) fcr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4696,9 +4530,7 @@ fcr_operand (op, mode) ...@@ -4696,9 +4530,7 @@ fcr_operand (op, mode)
/* Return true if operand is either an fcc or icc register */ /* Return true if operand is either an fcc or icc register */
int int
cr_operand (op, mode) cr_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -4718,9 +4550,7 @@ cr_operand (op, mode) ...@@ -4718,9 +4550,7 @@ cr_operand (op, mode)
/* Return true if operand is a memory reference suitable for a call. */ /* Return true if operand is a memory reference suitable for a call. */
int int
call_operand (op, mode) call_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
if (GET_MODE (op) != mode && mode != VOIDmode && GET_CODE (op) != CONST_INT) if (GET_MODE (op) != mode && mode != VOIDmode && GET_CODE (op) != CONST_INT)
return FALSE; return FALSE;
...@@ -4738,9 +4568,7 @@ call_operand (op, mode) ...@@ -4738,9 +4568,7 @@ call_operand (op, mode)
/* Return true if operator is a kind of relational operator. */ /* Return true if operator is a kind of relational operator. */
int int
relational_operator (op, mode) relational_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
rtx op0; rtx op0;
rtx op1; rtx op1;
...@@ -4798,9 +4626,7 @@ relational_operator (op, mode) ...@@ -4798,9 +4626,7 @@ relational_operator (op, mode)
/* Return true if operator is a signed integer relational operator */ /* Return true if operator is a signed integer relational operator */
int int
signed_relational_operator (op, mode) signed_relational_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
rtx op0; rtx op0;
rtx op1; rtx op1;
...@@ -4844,9 +4670,7 @@ signed_relational_operator (op, mode) ...@@ -4844,9 +4670,7 @@ signed_relational_operator (op, mode)
/* Return true if operator is a signed integer relational operator */ /* Return true if operator is a signed integer relational operator */
int int
unsigned_relational_operator (op, mode) unsigned_relational_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
rtx op0; rtx op0;
rtx op1; rtx op1;
...@@ -4888,9 +4712,7 @@ unsigned_relational_operator (op, mode) ...@@ -4888,9 +4712,7 @@ unsigned_relational_operator (op, mode)
/* Return true if operator is a floating point relational operator */ /* Return true if operator is a floating point relational operator */
int int
float_relational_operator (op, mode) float_relational_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
rtx op0; rtx op0;
rtx op1; rtx op1;
...@@ -4938,9 +4760,7 @@ float_relational_operator (op, mode) ...@@ -4938,9 +4760,7 @@ float_relational_operator (op, mode)
/* Return true if operator is EQ/NE of a conditional execution register. */ /* Return true if operator is EQ/NE of a conditional execution register. */
int int
ccr_eqne_operator (op, mode) ccr_eqne_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
rtx op0; rtx op0;
...@@ -4979,9 +4799,7 @@ ccr_eqne_operator (op, mode) ...@@ -4979,9 +4799,7 @@ ccr_eqne_operator (op, mode)
unsigned). */ unsigned). */
int int
minmax_operator (op, mode) minmax_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
if (mode != VOIDmode && mode != GET_MODE (op)) if (mode != VOIDmode && mode != GET_MODE (op))
return FALSE; return FALSE;
...@@ -5011,9 +4829,7 @@ minmax_operator (op, mode) ...@@ -5011,9 +4829,7 @@ minmax_operator (op, mode)
conditionally and takes 1 cycle. */ conditionally and takes 1 cycle. */
int int
condexec_si_binary_operator (op, mode) condexec_si_binary_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
...@@ -5041,9 +4857,7 @@ condexec_si_binary_operator (op, mode) ...@@ -5041,9 +4857,7 @@ condexec_si_binary_operator (op, mode)
executed conditionally by a media instruction. */ executed conditionally by a media instruction. */
int int
condexec_si_media_operator (op, mode) condexec_si_media_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
...@@ -5066,9 +4880,7 @@ condexec_si_media_operator (op, mode) ...@@ -5066,9 +4880,7 @@ condexec_si_media_operator (op, mode)
conditionally. */ conditionally. */
int int
condexec_si_divide_operator (op, mode) condexec_si_divide_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
...@@ -5090,9 +4902,7 @@ condexec_si_divide_operator (op, mode) ...@@ -5090,9 +4902,7 @@ condexec_si_divide_operator (op, mode)
conditionally. */ conditionally. */
int int
condexec_si_unary_operator (op, mode) condexec_si_unary_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
...@@ -5114,9 +4924,7 @@ condexec_si_unary_operator (op, mode) ...@@ -5114,9 +4924,7 @@ condexec_si_unary_operator (op, mode)
evaluated conditionally by floating-point instructions. */ evaluated conditionally by floating-point instructions. */
int int
condexec_sf_conv_operator (op, mode) condexec_sf_conv_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
...@@ -5139,9 +4947,7 @@ condexec_sf_conv_operator (op, mode) ...@@ -5139,9 +4947,7 @@ condexec_sf_conv_operator (op, mode)
instructions. */ instructions. */
int int
condexec_sf_add_operator (op, mode) condexec_sf_add_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
...@@ -5163,9 +4969,7 @@ condexec_sf_add_operator (op, mode) ...@@ -5163,9 +4969,7 @@ condexec_sf_add_operator (op, mode)
executed. */ executed. */
int int
condexec_memory_operand (op, mode) condexec_memory_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
rtx addr; rtx addr;
...@@ -5202,9 +5006,7 @@ condexec_memory_operand (op, mode) ...@@ -5202,9 +5006,7 @@ condexec_memory_operand (op, mode)
register. */ register. */
int int
intop_compare_operator (op, mode) intop_compare_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
...@@ -5237,9 +5039,7 @@ intop_compare_operator (op, mode) ...@@ -5237,9 +5039,7 @@ intop_compare_operator (op, mode)
with a setcc operation inside of a conditional execution. */ with a setcc operation inside of a conditional execution. */
int int
condexec_intop_cmp_operator (op, mode) condexec_intop_cmp_operator (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
enum machine_mode op_mode = GET_MODE (op); enum machine_mode op_mode = GET_MODE (op);
...@@ -5271,9 +5071,7 @@ condexec_intop_cmp_operator (op, mode) ...@@ -5271,9 +5071,7 @@ condexec_intop_cmp_operator (op, mode)
/* Return 1 if operand is a valid ACC register number */ /* Return 1 if operand is a valid ACC register number */
int int
acc_operand (op, mode) acc_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -5298,9 +5096,7 @@ acc_operand (op, mode) ...@@ -5298,9 +5096,7 @@ acc_operand (op, mode)
/* Return 1 if operand is a valid even ACC register number */ /* Return 1 if operand is a valid even ACC register number */
int int
even_acc_operand (op, mode) even_acc_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -5325,9 +5121,7 @@ even_acc_operand (op, mode) ...@@ -5325,9 +5121,7 @@ even_acc_operand (op, mode)
/* Return 1 if operand is zero or four */ /* Return 1 if operand is zero or four */
int int
quad_acc_operand (op, mode) quad_acc_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
int regno; int regno;
...@@ -5352,9 +5146,7 @@ quad_acc_operand (op, mode) ...@@ -5352,9 +5146,7 @@ quad_acc_operand (op, mode)
/* Return 1 if operand is a valid ACCG register number */ /* Return 1 if operand is a valid ACCG register number */
int int
accg_operand (op, mode) accg_operand (rtx op, enum machine_mode mode)
rtx op;
enum machine_mode mode;
{ {
if (GET_MODE (op) != mode && mode != VOIDmode) if (GET_MODE (op) != mode && mode != VOIDmode)
return FALSE; return FALSE;
...@@ -5378,7 +5170,7 @@ accg_operand (op, mode) ...@@ -5378,7 +5170,7 @@ accg_operand (op, mode)
epilog code. For frv, we only do it if there was no stack allocation. */ epilog code. For frv, we only do it if there was no stack allocation. */
int int
direct_return_p () direct_return_p (void)
{ {
frv_stack_t *info; frv_stack_t *info;
...@@ -5395,9 +5187,7 @@ direct_return_p () ...@@ -5395,9 +5187,7 @@ direct_return_p ()
instructions are emitted. */ instructions are emitted. */
int int
frv_emit_movsi (dest, src) frv_emit_movsi (rtx dest, rtx src)
rtx dest;
rtx src;
{ {
int base_regno = -1; int base_regno = -1;
...@@ -5468,9 +5258,7 @@ frv_emit_movsi (dest, src) ...@@ -5468,9 +5258,7 @@ frv_emit_movsi (dest, src)
/* Return a string to output a single word move. */ /* Return a string to output a single word move. */
const char * const char *
output_move_single (operands, insn) output_move_single (rtx operands[], rtx insn)
rtx operands[];
rtx insn;
{ {
rtx dest = operands[0]; rtx dest = operands[0];
rtx src = operands[1]; rtx src = operands[1];
...@@ -5688,9 +5476,7 @@ output_move_single (operands, insn) ...@@ -5688,9 +5476,7 @@ output_move_single (operands, insn)
/* Return a string to output a double word move. */ /* Return a string to output a double word move. */
const char * const char *
output_move_double (operands, insn) output_move_double (rtx operands[], rtx insn)
rtx operands[];
rtx insn;
{ {
rtx dest = operands[0]; rtx dest = operands[0];
rtx src = operands[1]; rtx src = operands[1];
...@@ -5821,9 +5607,7 @@ output_move_double (operands, insn) ...@@ -5821,9 +5607,7 @@ output_move_double (operands, insn)
Operand3 -- source */ Operand3 -- source */
const char * const char *
output_condmove_single (operands, insn) output_condmove_single (rtx operands[], rtx insn)
rtx operands[];
rtx insn;
{ {
rtx dest = operands[2]; rtx dest = operands[2];
rtx src = operands[3]; rtx src = operands[3];
...@@ -5962,10 +5746,7 @@ output_condmove_single (operands, insn) ...@@ -5962,10 +5746,7 @@ output_condmove_single (operands, insn)
comparison was done it. */ comparison was done it. */
static rtx static rtx
frv_emit_comparison (test, op0, op1) frv_emit_comparison (enum rtx_code test, rtx op0, rtx op1)
enum rtx_code test;
rtx op0;
rtx op1;
{ {
enum machine_mode cc_mode; enum machine_mode cc_mode;
rtx cc_reg; rtx cc_reg;
...@@ -5996,9 +5777,7 @@ frv_emit_comparison (test, op0, op1) ...@@ -5996,9 +5777,7 @@ frv_emit_comparison (test, op0, op1)
conditional execution, but that confuses the rest of the compiler. */ conditional execution, but that confuses the rest of the compiler. */
int int
frv_emit_cond_branch (test, label) frv_emit_cond_branch (enum rtx_code test, rtx label)
enum rtx_code test;
rtx label;
{ {
rtx test_rtx; rtx test_rtx;
rtx label_ref; rtx label_ref;
...@@ -6023,9 +5802,7 @@ frv_emit_cond_branch (test, label) ...@@ -6023,9 +5802,7 @@ frv_emit_cond_branch (test, label)
operands were previously stored in frv_compare_op0 and frv_compare_op1. */ operands were previously stored in frv_compare_op0 and frv_compare_op1. */
int int
frv_emit_scc (test, target) frv_emit_scc (enum rtx_code test, rtx target)
enum rtx_code test;
rtx target;
{ {
rtx set; rtx set;
rtx test_rtx; rtx test_rtx;
...@@ -6056,12 +5833,7 @@ frv_emit_scc (test, target) ...@@ -6056,12 +5833,7 @@ frv_emit_scc (test, target)
the seperate insns. */ the seperate insns. */
rtx rtx
frv_split_scc (dest, test, cc_reg, cr_reg, value) frv_split_scc (rtx dest, rtx test, rtx cc_reg, rtx cr_reg, HOST_WIDE_INT value)
rtx dest;
rtx test;
rtx cc_reg;
rtx cr_reg;
HOST_WIDE_INT value;
{ {
rtx ret; rtx ret;
...@@ -6096,11 +5868,7 @@ frv_split_scc (dest, test, cc_reg, cr_reg, value) ...@@ -6096,11 +5868,7 @@ frv_split_scc (dest, test, cc_reg, cr_reg, value)
move. */ move. */
int int
frv_emit_cond_move (dest, test_rtx, src1, src2) frv_emit_cond_move (rtx dest, rtx test_rtx, rtx src1, rtx src2)
rtx dest;
rtx test_rtx;
rtx src1;
rtx src2;
{ {
rtx set; rtx set;
rtx clobber_cc; rtx clobber_cc;
...@@ -6177,8 +5945,7 @@ frv_emit_cond_move (dest, test_rtx, src1, src2) ...@@ -6177,8 +5945,7 @@ frv_emit_cond_move (dest, test_rtx, src1, src2)
containing all of the insns. */ containing all of the insns. */
rtx rtx
frv_split_cond_move (operands) frv_split_cond_move (rtx operands[])
rtx operands[];
{ {
rtx dest = operands[0]; rtx dest = operands[0];
rtx test = operands[1]; rtx test = operands[1];
...@@ -6273,9 +6040,7 @@ frv_split_cond_move (operands) ...@@ -6273,9 +6040,7 @@ frv_split_cond_move (operands)
/* Split (set DEST SOURCE), where DEST is a double register and SOURCE is a /* Split (set DEST SOURCE), where DEST is a double register and SOURCE is a
memory location that is not known to be dword-aligned. */ memory location that is not known to be dword-aligned. */
void void
frv_split_double_load (dest, source) frv_split_double_load (rtx dest, rtx source)
rtx dest;
rtx source;
{ {
int regno = REGNO (dest); int regno = REGNO (dest);
rtx dest1 = gen_highpart (SImode, dest); rtx dest1 = gen_highpart (SImode, dest);
...@@ -6311,9 +6076,7 @@ frv_split_double_load (dest, source) ...@@ -6311,9 +6076,7 @@ frv_split_double_load (dest, source)
/* Split (set DEST SOURCE), where DEST refers to a dword memory location /* Split (set DEST SOURCE), where DEST refers to a dword memory location
and SOURCE is either a double register or the constant zero. */ and SOURCE is either a double register or the constant zero. */
void void
frv_split_double_store (dest, source) frv_split_double_store (rtx dest, rtx source)
rtx dest;
rtx source;
{ {
rtx dest1 = change_address (dest, SImode, NULL); rtx dest1 = change_address (dest, SImode, NULL);
rtx dest2 = frv_index_memory (dest, SImode, 1); rtx dest2 = frv_index_memory (dest, SImode, 1);
...@@ -6334,8 +6097,7 @@ frv_split_double_store (dest, source) ...@@ -6334,8 +6097,7 @@ frv_split_double_store (dest, source)
insns. */ insns. */
rtx rtx
frv_split_minmax (operands) frv_split_minmax (rtx operands[])
rtx operands[];
{ {
rtx dest = operands[0]; rtx dest = operands[0];
rtx minmax = operands[1]; rtx minmax = operands[1];
...@@ -6415,8 +6177,7 @@ frv_split_minmax (operands) ...@@ -6415,8 +6177,7 @@ frv_split_minmax (operands)
insns. */ insns. */
rtx rtx
frv_split_abs (operands) frv_split_abs (rtx operands[])
rtx operands[];
{ {
rtx dest = operands[0]; rtx dest = operands[0];
rtx src = operands[1]; rtx src = operands[1];
...@@ -6458,9 +6219,7 @@ frv_split_abs (operands) ...@@ -6458,9 +6219,7 @@ frv_split_abs (operands)
register used in an insn. */ register used in an insn. */
static int static int
frv_clear_registers_used (ptr, data) frv_clear_registers_used (rtx *ptr, void *data)
rtx *ptr;
void *data;
{ {
if (GET_CODE (*ptr) == REG) if (GET_CODE (*ptr) == REG)
{ {
...@@ -6488,8 +6247,7 @@ frv_clear_registers_used (ptr, data) ...@@ -6488,8 +6247,7 @@ frv_clear_registers_used (ptr, data)
/* On the FR-V, we don't have any extra fields per se, but it is useful hook to /* On the FR-V, we don't have any extra fields per se, but it is useful hook to
initialize the static storage. */ initialize the static storage. */
void void
frv_ifcvt_init_extra_fields (ce_info) frv_ifcvt_init_extra_fields (ce_if_block_t *ce_info ATTRIBUTE_UNUSED)
ce_if_block_t *ce_info ATTRIBUTE_UNUSED;
{ {
frv_ifcvt.added_insns_list = NULL_RTX; frv_ifcvt.added_insns_list = NULL_RTX;
frv_ifcvt.cur_scratch_regs = 0; frv_ifcvt.cur_scratch_regs = 0;
...@@ -6506,10 +6264,7 @@ frv_ifcvt_init_extra_fields (ce_info) ...@@ -6506,10 +6264,7 @@ frv_ifcvt_init_extra_fields (ce_info)
if the conditional execution conversion is successful. */ if the conditional execution conversion is successful. */
static void static void
frv_ifcvt_add_insn (pattern, insn, before_p) frv_ifcvt_add_insn (rtx pattern, rtx insn, int before_p)
rtx pattern;
rtx insn;
int before_p;
{ {
rtx link = alloc_EXPR_LIST (VOIDmode, pattern, insn); rtx link = alloc_EXPR_LIST (VOIDmode, pattern, insn);
...@@ -6536,10 +6291,7 @@ frv_ifcvt_add_insn (pattern, insn, before_p) ...@@ -6536,10 +6291,7 @@ frv_ifcvt_add_insn (pattern, insn, before_p)
tests cannot be converted. */ tests cannot be converted. */
void void
frv_ifcvt_modify_tests (ce_info, p_true, p_false) frv_ifcvt_modify_tests (ce_if_block_t *ce_info, rtx *p_true, rtx *p_false)
ce_if_block_t *ce_info;
rtx *p_true;
rtx *p_false;
{ {
basic_block test_bb = ce_info->test_bb; /* test basic block */ basic_block test_bb = ce_info->test_bb; /* test basic block */
basic_block then_bb = ce_info->then_bb; /* THEN */ basic_block then_bb = ce_info->then_bb; /* THEN */
...@@ -6893,11 +6645,10 @@ frv_ifcvt_modify_tests (ce_info, p_true, p_false) ...@@ -6893,11 +6645,10 @@ frv_ifcvt_modify_tests (ce_info, p_true, p_false)
(const_int 0))) */ (const_int 0))) */
void void
frv_ifcvt_modify_multiple_tests (ce_info, bb, p_true, p_false) frv_ifcvt_modify_multiple_tests (ce_if_block_t *ce_info,
ce_if_block_t *ce_info; basic_block bb,
basic_block bb; rtx *p_true,
rtx *p_true; rtx *p_false)
rtx *p_false;
{ {
rtx old_true = XEXP (*p_true, 0); rtx old_true = XEXP (*p_true, 0);
rtx old_false = XEXP (*p_false, 0); rtx old_false = XEXP (*p_false, 0);
...@@ -7026,9 +6777,7 @@ frv_ifcvt_modify_multiple_tests (ce_info, bb, p_true, p_false) ...@@ -7026,9 +6777,7 @@ frv_ifcvt_modify_multiple_tests (ce_info, bb, p_true, p_false)
that use constants to ones that just use registers. */ that use constants to ones that just use registers. */
static rtx static rtx
frv_ifcvt_load_value (value, insn) frv_ifcvt_load_value (rtx value, rtx insn ATTRIBUTE_UNUSED)
rtx value;
rtx insn ATTRIBUTE_UNUSED;
{ {
int num_alloc = frv_ifcvt.cur_scratch_regs; int num_alloc = frv_ifcvt.cur_scratch_regs;
int i; int i;
...@@ -7098,10 +6847,7 @@ frv_ifcvt_load_value (value, insn) ...@@ -7098,10 +6847,7 @@ frv_ifcvt_load_value (value, insn)
into a temporary register, or the new MEM if we were successful. */ into a temporary register, or the new MEM if we were successful. */
static rtx static rtx
frv_ifcvt_rewrite_mem (mem, mode, insn) frv_ifcvt_rewrite_mem (rtx mem, enum machine_mode mode, rtx insn)
rtx mem;
enum machine_mode mode;
rtx insn;
{ {
rtx addr = XEXP (mem, 0); rtx addr = XEXP (mem, 0);
...@@ -7149,8 +6895,7 @@ frv_ifcvt_rewrite_mem (mem, mode, insn) ...@@ -7149,8 +6895,7 @@ frv_ifcvt_rewrite_mem (mem, mode, insn)
SET, possibly conditionally executed. It may also have CLOBBERs, USEs. */ SET, possibly conditionally executed. It may also have CLOBBERs, USEs. */
static rtx static rtx
single_set_pattern (pattern) single_set_pattern (rtx pattern)
rtx pattern;
{ {
rtx set; rtx set;
int i; int i;
...@@ -7197,10 +6942,9 @@ single_set_pattern (pattern) ...@@ -7197,10 +6942,9 @@ single_set_pattern (pattern)
insn cannot be converted to be executed conditionally. */ insn cannot be converted to be executed conditionally. */
rtx rtx
frv_ifcvt_modify_insn (ce_info, pattern, insn) frv_ifcvt_modify_insn (ce_if_block_t *ce_info ATTRIBUTE_UNUSED,
ce_if_block_t *ce_info ATTRIBUTE_UNUSED; rtx pattern,
rtx pattern; rtx insn)
rtx insn;
{ {
rtx orig_ce_pattern = pattern; rtx orig_ce_pattern = pattern;
rtx set; rtx set;
...@@ -7452,8 +7196,7 @@ frv_ifcvt_modify_insn (ce_info, pattern, insn) ...@@ -7452,8 +7196,7 @@ frv_ifcvt_modify_insn (ce_info, pattern, insn)
conditional if information CE_INFO. */ conditional if information CE_INFO. */
void void
frv_ifcvt_modify_final (ce_info) frv_ifcvt_modify_final (ce_if_block_t *ce_info ATTRIBUTE_UNUSED)
ce_if_block_t *ce_info ATTRIBUTE_UNUSED;
{ {
rtx existing_insn; rtx existing_insn;
rtx check_insn; rtx check_insn;
...@@ -7509,8 +7252,7 @@ frv_ifcvt_modify_final (ce_info) ...@@ -7509,8 +7252,7 @@ frv_ifcvt_modify_final (ce_info)
information CE_INFO. */ information CE_INFO. */
void void
frv_ifcvt_modify_cancel (ce_info) frv_ifcvt_modify_cancel (ce_if_block_t *ce_info ATTRIBUTE_UNUSED)
ce_if_block_t *ce_info ATTRIBUTE_UNUSED;
{ {
int i; int i;
rtx p = frv_ifcvt.added_insns_list; rtx p = frv_ifcvt.added_insns_list;
...@@ -7545,7 +7287,7 @@ frv_ifcvt_modify_cancel (ce_info) ...@@ -7545,7 +7287,7 @@ frv_ifcvt_modify_cancel (ce_info)
jmpl @(gr0,<jmp_reg>) */ jmpl @(gr0,<jmp_reg>) */
int int
frv_trampoline_size () frv_trampoline_size (void)
{ {
return 5 /* instructions */ * 4 /* instruction size */; return 5 /* instructions */ * 4 /* instruction size */;
} }
...@@ -7565,10 +7307,7 @@ frv_trampoline_size () ...@@ -7565,10 +7307,7 @@ frv_trampoline_size ()
jmpl @(gr0,<jmp_reg>) */ jmpl @(gr0,<jmp_reg>) */
void void
frv_initialize_trampoline (addr, fnaddr, static_chain) frv_initialize_trampoline (rtx addr, rtx fnaddr, rtx static_chain)
rtx addr;
rtx fnaddr;
rtx static_chain;
{ {
rtx sc_reg = force_reg (Pmode, static_chain); rtx sc_reg = force_reg (Pmode, static_chain);
...@@ -7634,11 +7373,10 @@ frv_initialize_trampoline (addr, fnaddr, static_chain) ...@@ -7634,11 +7373,10 @@ frv_initialize_trampoline (addr, fnaddr, static_chain)
This case often occurs between floating-point and general registers. */ This case often occurs between floating-point and general registers. */
enum reg_class enum reg_class
frv_secondary_reload_class (class, mode, x, in_p) frv_secondary_reload_class (enum reg_class class,
enum reg_class class; enum machine_mode mode ATTRIBUTE_UNUSED,
enum machine_mode mode ATTRIBUTE_UNUSED; rtx x,
rtx x; int in_p ATTRIBUTE_UNUSED)
int in_p ATTRIBUTE_UNUSED;
{ {
enum reg_class ret; enum reg_class ret;
...@@ -7714,8 +7452,7 @@ frv_secondary_reload_class (class, mode, x, in_p) ...@@ -7714,8 +7452,7 @@ frv_secondary_reload_class (class, mode, x, in_p)
register allocation. */ register allocation. */
int int
frv_class_likely_spilled_p (class) frv_class_likely_spilled_p (enum reg_class class)
enum reg_class class;
{ {
switch (class) switch (class)
{ {
...@@ -7790,13 +7527,8 @@ frv_class_likely_spilled_p (class) ...@@ -7790,13 +7527,8 @@ frv_class_likely_spilled_p (class)
*/ */
int int
frv_adjust_field_align (field, computed) frv_adjust_field_align (tree field, int computed)
tree field;
int computed;
{ {
tree type = TREE_TYPE (field);
/* Make sure that the bitfield is not wider than the type. */ /* Make sure that the bitfield is not wider than the type. */
if (DECL_BIT_FIELD (field) if (DECL_BIT_FIELD (field)
&& !DECL_ARTIFICIAL (field)) && !DECL_ARTIFICIAL (field))
...@@ -7889,9 +7621,7 @@ frv_adjust_field_align (field, computed) ...@@ -7889,9 +7621,7 @@ frv_adjust_field_align (field, computed)
pattern's constraint asks for one. */ pattern's constraint asks for one. */
int int
frv_hard_regno_mode_ok (regno, mode) frv_hard_regno_mode_ok (int regno, enum machine_mode mode)
int regno;
enum machine_mode mode;
{ {
int base; int base;
int mask; int mask;
...@@ -7973,9 +7703,7 @@ frv_hard_regno_mode_ok (regno, mode) ...@@ -7973,9 +7703,7 @@ frv_hard_regno_mode_ok (regno, mode)
for each byte. */ for each byte. */
int int
frv_hard_regno_nregs (regno, mode) frv_hard_regno_nregs (int regno, enum machine_mode mode)
int regno;
enum machine_mode mode;
{ {
if (ACCG_P (regno)) if (ACCG_P (regno))
return GET_MODE_SIZE (mode); return GET_MODE_SIZE (mode);
...@@ -7997,9 +7725,7 @@ frv_hard_regno_nregs (regno, mode) ...@@ -7997,9 +7725,7 @@ frv_hard_regno_nregs (regno, mode)
This declaration is required. */ This declaration is required. */
int int
frv_class_max_nregs (class, mode) frv_class_max_nregs (enum reg_class class, enum machine_mode mode)
enum reg_class class;
enum machine_mode mode;
{ {
if (class == ACCG_REGS) if (class == ACCG_REGS)
/* An N-byte value requires N accumulator guards. */ /* An N-byte value requires N accumulator guards. */
...@@ -8015,8 +7741,7 @@ frv_class_max_nregs (class, mode) ...@@ -8015,8 +7741,7 @@ frv_class_max_nregs (class, mode)
definition for this macro on machines where anything `CONSTANT_P' is valid. */ definition for this macro on machines where anything `CONSTANT_P' is valid. */
int int
frv_legitimate_constant_p (x) frv_legitimate_constant_p (rtx x)
rtx x;
{ {
enum machine_mode mode = GET_MODE (x); enum machine_mode mode = GET_MODE (x);
...@@ -8065,9 +7790,7 @@ frv_legitimate_constant_p (x) ...@@ -8065,9 +7790,7 @@ frv_legitimate_constant_p (x)
#define LOW_COST 1 #define LOW_COST 1
int int
frv_register_move_cost (from, to) frv_register_move_cost (enum reg_class from, enum reg_class to)
enum reg_class from;
enum reg_class to;
{ {
switch (from) switch (from)
{ {
...@@ -8156,10 +7879,7 @@ frv_register_move_cost (from, to) ...@@ -8156,10 +7879,7 @@ frv_register_move_cost (from, to)
need a fixup entry for aligned (non-debugging) code. */ need a fixup entry for aligned (non-debugging) code. */
static bool static bool
frv_assemble_integer (value, size, aligned_p) frv_assemble_integer (rtx value, unsigned int size, int aligned_p)
rtx value;
unsigned int size;
int aligned_p;
{ {
if (flag_pic && size == UNITS_PER_WORD) if (flag_pic && size == UNITS_PER_WORD)
{ {
...@@ -8198,7 +7918,7 @@ frv_assemble_integer (value, size, aligned_p) ...@@ -8198,7 +7918,7 @@ frv_assemble_integer (value, size, aligned_p)
/* Function to set up the backend function structure. */ /* Function to set up the backend function structure. */
static struct machine_function * static struct machine_function *
frv_init_machine_status () frv_init_machine_status (void)
{ {
return ggc_alloc_cleared (sizeof (struct machine_function)); return ggc_alloc_cleared (sizeof (struct machine_function));
} }
...@@ -8241,12 +7961,11 @@ frv_use_dfa_pipeline_interface (void) ...@@ -8241,12 +7961,11 @@ frv_use_dfa_pipeline_interface (void)
or clobbered. */ or clobbered. */
static void static void
frv_registers_update (x, reg_state, modified, p_num_mod, flag) frv_registers_update (rtx x,
rtx x; unsigned char reg_state[],
unsigned char reg_state[]; int modified[],
int modified[]; int *p_num_mod,
int *p_num_mod; int flag)
int flag;
{ {
int regno, reg_max; int regno, reg_max;
rtx reg; rtx reg;
...@@ -8389,10 +8108,7 @@ frv_registers_update (x, reg_state, modified, p_num_mod, flag) ...@@ -8389,10 +8108,7 @@ frv_registers_update (x, reg_state, modified, p_num_mod, flag)
/* Return if any registers in a hard register set were used an insn. */ /* Return if any registers in a hard register set were used an insn. */
static int static int
frv_registers_used_p (x, reg_state, flag) frv_registers_used_p (rtx x, unsigned char reg_state[], int flag)
rtx x;
unsigned char reg_state[];
int flag;
{ {
int regno, reg_max; int regno, reg_max;
rtx reg; rtx reg;
...@@ -8549,10 +8265,7 @@ frv_registers_used_p (x, reg_state, flag) ...@@ -8549,10 +8265,7 @@ frv_registers_used_p (x, reg_state, flag)
/* Return if any registers in a hard register set were set in an insn. */ /* Return if any registers in a hard register set were set in an insn. */
static int static int
frv_registers_set_p (x, reg_state, modify_p) frv_registers_set_p (rtx x, unsigned char reg_state[], int modify_p)
rtx x;
unsigned char reg_state[];
int modify_p;
{ {
int regno, reg_max; int regno, reg_max;
rtx reg; rtx reg;
...@@ -8663,7 +8376,7 @@ frv_registers_set_p (x, reg_state, modify_p) ...@@ -8663,7 +8376,7 @@ frv_registers_set_p (x, reg_state, modify_p)
information in a reasonable state. */ information in a reasonable state. */
static void static void
frv_pack_insns () frv_pack_insns (void)
{ {
state_t frv_state; /* frv state machine */ state_t frv_state; /* frv state machine */
int cur_start_vliw_p; /* current insn starts a VLIW insn */ int cur_start_vliw_p; /* current insn starts a VLIW insn */
...@@ -8970,7 +8683,7 @@ static struct builtin_description bdesc_voidacc[] = ...@@ -8970,7 +8683,7 @@ static struct builtin_description bdesc_voidacc[] =
/* Initialize media builtins. */ /* Initialize media builtins. */
static void static void
frv_init_builtins () frv_init_builtins (void)
{ {
tree endlink = void_list_node; tree endlink = void_list_node;
tree accumulator = integer_type_node; tree accumulator = integer_type_node;
...@@ -9176,10 +8889,7 @@ frv_init_libfuncs (void) ...@@ -9176,10 +8889,7 @@ frv_init_libfuncs (void)
instruction. */ instruction. */
static rtx static rtx
frv_int_to_acc (icode, opnum, opval) frv_int_to_acc (enum insn_code icode, int opnum, rtx opval)
enum insn_code icode;
int opnum;
rtx opval;
{ {
rtx reg; rtx reg;
...@@ -9211,8 +8921,7 @@ frv_int_to_acc (icode, opnum, opval) ...@@ -9211,8 +8921,7 @@ frv_int_to_acc (icode, opnum, opval)
should have. */ should have. */
static enum machine_mode static enum machine_mode
frv_matching_accg_mode (mode) frv_matching_accg_mode (enum machine_mode mode)
enum machine_mode mode;
{ {
switch (mode) switch (mode)
{ {
...@@ -9235,8 +8944,7 @@ frv_matching_accg_mode (mode) ...@@ -9235,8 +8944,7 @@ frv_matching_accg_mode (mode)
class as ACC, but is four times smaller. */ class as ACC, but is four times smaller. */
rtx rtx
frv_matching_accg_for_acc (acc) frv_matching_accg_for_acc (rtx acc)
rtx acc;
{ {
return gen_rtx_REG (frv_matching_accg_mode (GET_MODE (acc)), return gen_rtx_REG (frv_matching_accg_mode (GET_MODE (acc)),
REGNO (acc) - ACC_FIRST + ACCG_FIRST); REGNO (acc) - ACC_FIRST + ACCG_FIRST);
...@@ -9247,8 +8955,7 @@ frv_matching_accg_for_acc (acc) ...@@ -9247,8 +8955,7 @@ frv_matching_accg_for_acc (acc)
list. */ list. */
static rtx static rtx
frv_read_argument (arglistptr) frv_read_argument (tree *arglistptr)
tree *arglistptr;
{ {
tree next = TREE_VALUE (*arglistptr); tree next = TREE_VALUE (*arglistptr);
*arglistptr = TREE_CHAIN (*arglistptr); *arglistptr = TREE_CHAIN (*arglistptr);
...@@ -9260,10 +8967,7 @@ frv_read_argument (arglistptr) ...@@ -9260,10 +8967,7 @@ frv_read_argument (arglistptr)
function prints an error if OPVAL is not valid. */ function prints an error if OPVAL is not valid. */
static int static int
frv_check_constant_argument (icode, opnum, opval) frv_check_constant_argument (enum insn_code icode, int opnum, rtx opval)
enum insn_code icode;
int opnum;
rtx opval;
{ {
if (GET_CODE (opval) != CONST_INT) if (GET_CODE (opval) != CONST_INT)
{ {
...@@ -9283,9 +8987,7 @@ frv_check_constant_argument (icode, opnum, opval) ...@@ -9283,9 +8987,7 @@ frv_check_constant_argument (icode, opnum, opval)
predicate. */ predicate. */
static rtx static rtx
frv_legitimize_target (icode, target) frv_legitimize_target (enum insn_code icode, rtx target)
enum insn_code icode;
rtx target;
{ {
enum machine_mode mode = insn_data[icode].operand[0].mode; enum machine_mode mode = insn_data[icode].operand[0].mode;
...@@ -9303,10 +9005,7 @@ frv_legitimize_target (icode, target) ...@@ -9303,10 +9005,7 @@ frv_legitimize_target (icode, target)
itself. */ itself. */
static rtx static rtx
frv_legitimize_argument (icode, opnum, arg) frv_legitimize_argument (enum insn_code icode, int opnum, rtx arg)
enum insn_code icode;
int opnum;
rtx arg;
{ {
enum machine_mode mode = insn_data[icode].operand[opnum].mode; enum machine_mode mode = insn_data[icode].operand[opnum].mode;
...@@ -9320,10 +9019,7 @@ frv_legitimize_argument (icode, opnum, arg) ...@@ -9320,10 +9019,7 @@ frv_legitimize_argument (icode, opnum, arg)
only MHDSETS falls into this category. */ only MHDSETS falls into this category. */
static rtx static rtx
frv_expand_set_builtin (icode, arglist, target) frv_expand_set_builtin (enum insn_code icode, tree arglist, rtx target)
enum insn_code icode;
tree arglist;
rtx target;
{ {
rtx pat; rtx pat;
rtx op0 = frv_read_argument (&arglist); rtx op0 = frv_read_argument (&arglist);
...@@ -9343,10 +9039,7 @@ frv_expand_set_builtin (icode, arglist, target) ...@@ -9343,10 +9039,7 @@ frv_expand_set_builtin (icode, arglist, target)
/* Expand builtins that take one operand. */ /* Expand builtins that take one operand. */
static rtx static rtx
frv_expand_unop_builtin (icode, arglist, target) frv_expand_unop_builtin (enum insn_code icode, tree arglist, rtx target)
enum insn_code icode;
tree arglist;
rtx target;
{ {
rtx pat; rtx pat;
rtx op0 = frv_read_argument (&arglist); rtx op0 = frv_read_argument (&arglist);
...@@ -9364,10 +9057,7 @@ frv_expand_unop_builtin (icode, arglist, target) ...@@ -9364,10 +9057,7 @@ frv_expand_unop_builtin (icode, arglist, target)
/* Expand builtins that take two operands. */ /* Expand builtins that take two operands. */
static rtx static rtx
frv_expand_binop_builtin (icode, arglist, target) frv_expand_binop_builtin (enum insn_code icode, tree arglist, rtx target)
enum insn_code icode;
tree arglist;
rtx target;
{ {
rtx pat; rtx pat;
rtx op0 = frv_read_argument (&arglist); rtx op0 = frv_read_argument (&arglist);
...@@ -9388,10 +9078,7 @@ frv_expand_binop_builtin (icode, arglist, target) ...@@ -9388,10 +9078,7 @@ frv_expand_binop_builtin (icode, arglist, target)
one. */ one. */
static rtx static rtx
frv_expand_cut_builtin (icode, arglist, target) frv_expand_cut_builtin (enum insn_code icode, tree arglist, rtx target)
enum insn_code icode;
tree arglist;
rtx target;
{ {
rtx pat; rtx pat;
rtx op0 = frv_read_argument (&arglist); rtx op0 = frv_read_argument (&arglist);
...@@ -9423,10 +9110,7 @@ frv_expand_cut_builtin (icode, arglist, target) ...@@ -9423,10 +9110,7 @@ frv_expand_cut_builtin (icode, arglist, target)
/* Expand builtins that take two operands and the second is immediate. */ /* Expand builtins that take two operands and the second is immediate. */
static rtx static rtx
frv_expand_binopimm_builtin (icode, arglist, target) frv_expand_binopimm_builtin (enum insn_code icode, tree arglist, rtx target)
enum insn_code icode;
tree arglist;
rtx target;
{ {
rtx pat; rtx pat;
rtx op0 = frv_read_argument (&arglist); rtx op0 = frv_read_argument (&arglist);
...@@ -9449,9 +9133,7 @@ frv_expand_binopimm_builtin (icode, arglist, target) ...@@ -9449,9 +9133,7 @@ frv_expand_binopimm_builtin (icode, arglist, target)
ints and return void. */ ints and return void. */
static rtx static rtx
frv_expand_voidbinop_builtin (icode, arglist) frv_expand_voidbinop_builtin (enum insn_code icode, tree arglist)
enum insn_code icode;
tree arglist;
{ {
rtx pat; rtx pat;
rtx op0 = frv_read_argument (&arglist); rtx op0 = frv_read_argument (&arglist);
...@@ -9492,9 +9174,7 @@ frv_expand_voidbinop_builtin (icode, arglist) ...@@ -9492,9 +9174,7 @@ frv_expand_voidbinop_builtin (icode, arglist)
corresponds to the accumulator. */ corresponds to the accumulator. */
static rtx static rtx
frv_expand_voidtriop_builtin (icode, arglist) frv_expand_voidtriop_builtin (enum insn_code icode, tree arglist)
enum insn_code icode;
tree arglist;
{ {
rtx pat; rtx pat;
rtx op0 = frv_read_argument (&arglist); rtx op0 = frv_read_argument (&arglist);
...@@ -9522,9 +9202,7 @@ frv_expand_voidtriop_builtin (icode, arglist) ...@@ -9522,9 +9202,7 @@ frv_expand_voidtriop_builtin (icode, arglist)
void. */ void. */
static rtx static rtx
frv_expand_voidaccop_builtin (icode, arglist) frv_expand_voidaccop_builtin (enum insn_code icode, tree arglist)
enum insn_code icode;
tree arglist;
{ {
rtx pat; rtx pat;
rtx op0 = frv_read_argument (&arglist); rtx op0 = frv_read_argument (&arglist);
...@@ -9554,8 +9232,7 @@ frv_expand_voidaccop_builtin (icode, arglist) ...@@ -9554,8 +9232,7 @@ frv_expand_voidaccop_builtin (icode, arglist)
number as argument. */ number as argument. */
static rtx static rtx
frv_expand_mclracc_builtin (arglist) frv_expand_mclracc_builtin (tree arglist)
tree arglist;
{ {
enum insn_code icode = CODE_FOR_mclracc; enum insn_code icode = CODE_FOR_mclracc;
rtx pat; rtx pat;
...@@ -9575,8 +9252,7 @@ frv_expand_mclracc_builtin (arglist) ...@@ -9575,8 +9252,7 @@ frv_expand_mclracc_builtin (arglist)
/* Expand builtins that take no arguments. */ /* Expand builtins that take no arguments. */
static rtx static rtx
frv_expand_noargs_builtin (icode) frv_expand_noargs_builtin (enum insn_code icode)
enum insn_code icode;
{ {
rtx pat = GEN_FCN (icode) (GEN_INT (0)); rtx pat = GEN_FCN (icode) (GEN_INT (0));
if (pat) if (pat)
...@@ -9589,9 +9265,7 @@ frv_expand_noargs_builtin (icode) ...@@ -9589,9 +9265,7 @@ frv_expand_noargs_builtin (icode)
number or accumulator guard number as argument and return an SI integer. */ number or accumulator guard number as argument and return an SI integer. */
static rtx static rtx
frv_expand_mrdacc_builtin (icode, arglist) frv_expand_mrdacc_builtin (enum insn_code icode, tree arglist)
enum insn_code icode;
tree arglist;
{ {
rtx pat; rtx pat;
rtx target = gen_reg_rtx (SImode); rtx target = gen_reg_rtx (SImode);
...@@ -9614,9 +9288,7 @@ frv_expand_mrdacc_builtin (icode, arglist) ...@@ -9614,9 +9288,7 @@ frv_expand_mrdacc_builtin (icode, arglist)
second. */ second. */
static rtx static rtx
frv_expand_mwtacc_builtin (icode, arglist) frv_expand_mwtacc_builtin (enum insn_code icode, tree arglist)
enum insn_code icode;
tree arglist;
{ {
rtx pat; rtx pat;
rtx op0 = frv_read_argument (&arglist); rtx op0 = frv_read_argument (&arglist);
...@@ -9637,12 +9309,11 @@ frv_expand_mwtacc_builtin (icode, arglist) ...@@ -9637,12 +9309,11 @@ frv_expand_mwtacc_builtin (icode, arglist)
/* Expand builtins. */ /* Expand builtins. */
static rtx static rtx
frv_expand_builtin (exp, target, subtarget, mode, ignore) frv_expand_builtin (tree exp,
tree exp; rtx target,
rtx target; rtx subtarget ATTRIBUTE_UNUSED,
rtx subtarget ATTRIBUTE_UNUSED; enum machine_mode mode ATTRIBUTE_UNUSED,
enum machine_mode mode ATTRIBUTE_UNUSED; int ignore ATTRIBUTE_UNUSED)
int ignore ATTRIBUTE_UNUSED;
{ {
tree arglist = TREE_OPERAND (exp, 1); tree arglist = TREE_OPERAND (exp, 1);
tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0); tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
...@@ -9771,8 +9442,7 @@ frv_expand_builtin (exp, target, subtarget, mode, ignore) ...@@ -9771,8 +9442,7 @@ frv_expand_builtin (exp, target, subtarget, mode, ignore)
} }
static bool static bool
frv_in_small_data_p (decl) frv_in_small_data_p (tree decl)
tree decl;
{ {
HOST_WIDE_INT size; HOST_WIDE_INT size;
tree section_name; tree section_name;
...@@ -9806,10 +9476,10 @@ frv_in_small_data_p (decl) ...@@ -9806,10 +9476,10 @@ frv_in_small_data_p (decl)
} }
static bool static bool
frv_rtx_costs (x, code, outer_code, total) frv_rtx_costs (rtx x,
rtx x; int code ATTRIBUTE_UNUSED,
int code, outer_code ATTRIBUTE_UNUSED; int outer_code ATTRIBUTE_UNUSED,
int *total; int *total)
{ {
switch (code) switch (code)
{ {
...@@ -9868,9 +9538,7 @@ frv_rtx_costs (x, code, outer_code, total) ...@@ -9868,9 +9538,7 @@ frv_rtx_costs (x, code, outer_code, total)
} }
static void static void
frv_asm_out_constructor (symbol, priority) frv_asm_out_constructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
rtx symbol;
int priority ATTRIBUTE_UNUSED;
{ {
ctors_section (); ctors_section ();
assemble_align (POINTER_SIZE); assemble_align (POINTER_SIZE);
...@@ -9878,9 +9546,7 @@ frv_asm_out_constructor (symbol, priority) ...@@ -9878,9 +9546,7 @@ frv_asm_out_constructor (symbol, priority)
} }
static void static void
frv_asm_out_destructor (symbol, priority) frv_asm_out_destructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
rtx symbol;
int priority ATTRIBUTE_UNUSED;
{ {
dtors_section (); dtors_section ();
assemble_align (POINTER_SIZE); assemble_align (POINTER_SIZE);
......
...@@ -1885,7 +1885,7 @@ struct machine_function GTY(()) ...@@ -1885,7 +1885,7 @@ struct machine_function GTY(())
#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) \ #define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) \
frv_function_arg_partial_nregs (&CUM, MODE, TYPE, NAMED) frv_function_arg_partial_nregs (&CUM, MODE, TYPE, NAMED)
/* extern int frv_function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS, int, Tree, int)); */ /* extern int frv_function_arg_partial_nregs (CUMULATIVE_ARGS, int, Tree, int); */
/* A C expression that indicates when an argument must be passed by reference. /* A C expression that indicates when an argument must be passed by reference.
If nonzero for an argument, a copy of that argument is made in memory and a If nonzero for an argument, a copy of that argument is made in memory and a
...@@ -2180,11 +2180,7 @@ struct machine_function GTY(()) ...@@ -2180,11 +2180,7 @@ struct machine_function GTY(())
extern int _write (int, const void *, unsigned); \ extern int _write (int, const void *, unsigned); \
\ \
void \ void \
__trampoline_setup (addr, size, fnaddr, sc) \ __trampoline_setup (short * addr, int size, int fnaddr, int sc) \
short * addr; \
int size; \
int fnaddr; \
int sc; \
{ \ { \
extern short __trampoline_template[]; \ extern short __trampoline_template[]; \
short * to = addr; \ short * to = addr; \
...@@ -2565,7 +2561,7 @@ __asm__("\n" \ ...@@ -2565,7 +2561,7 @@ __asm__("\n" \
#define SDATA_SECTION_FUNCTION \ #define SDATA_SECTION_FUNCTION \
void \ void \
sdata_section () \ sdata_section (void) \
{ \ { \
if (in_section != in_sdata) \ if (in_section != in_sdata) \
{ \ { \
...@@ -2576,7 +2572,7 @@ sdata_section () \ ...@@ -2576,7 +2572,7 @@ sdata_section () \
#define FIXUP_SECTION_FUNCTION \ #define FIXUP_SECTION_FUNCTION \
void \ void \
fixup_section () \ fixup_section (void) \
{ \ { \
if (in_section != in_fixup) \ if (in_section != in_fixup) \
{ \ { \
......
...@@ -110,7 +110,7 @@ __frv_deregister_eh (void) ...@@ -110,7 +110,7 @@ __frv_deregister_eh (void)
/* Run the global destructors */ /* Run the global destructors */
void void
__do_global_dtors () __do_global_dtors (void)
{ {
static func_ptr *p = __DTOR_LIST__ + 1; static func_ptr *p = __DTOR_LIST__ + 1;
while (*p) while (*p)
...@@ -122,7 +122,7 @@ __do_global_dtors () ...@@ -122,7 +122,7 @@ __do_global_dtors ()
/* Run the global constructors */ /* Run the global constructors */
void void
__do_global_ctors () __do_global_ctors (void)
{ {
unsigned long nptrs = (unsigned long) __CTOR_LIST__[0]; unsigned long nptrs = (unsigned long) __CTOR_LIST__[0];
unsigned i; unsigned i;
...@@ -145,7 +145,7 @@ __do_global_ctors () ...@@ -145,7 +145,7 @@ __do_global_ctors ()
to run __do_global_ctors, so we need not do anything here. */ to run __do_global_ctors, so we need not do anything here. */
void void
__main () __main (void)
{ {
/* Support recursive calls to `main': run initializers just once. */ /* Support recursive calls to `main': run initializers just once. */
static int initialized; static int initialized;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment