From e1ffc70a2d470cdeb423a572621cbe1d0e2bf64c Mon Sep 17 00:00:00 2001 From: Stephane Carrez Date: Mon, 27 Oct 2003 13:26:19 +0100 Subject: [PATCH] m68hc11.c: Convert to ISO C90. * config/m68hc11/m68hc11.c: Convert to ISO C90. * config/m68hc11/m68hc11-protos.h: Likewise. From-SVN: r72981 --- gcc/ChangeLog | 5 + gcc/config/m68hc11/m68hc11-protos.h | 186 ++++++------ gcc/config/m68hc11/m68hc11.c | 442 ++++++++++------------------ 3 files changed, 245 insertions(+), 388 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 92e701d1e5f..4353ee7e28a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-10-27 Stephane Carrez + + * config/m68hc11/m68hc11.c: Convert to ISO C90. + * config/m68hc11/m68hc11-protos.h: Likewise. + 2003-10-27 Jan Hubicka Eric Botcazou diff --git a/gcc/config/m68hc11/m68hc11-protos.h b/gcc/config/m68hc11/m68hc11-protos.h index 73a539349f9..d4582ab803d 100644 --- a/gcc/config/m68hc11/m68hc11-protos.h +++ b/gcc/config/m68hc11/m68hc11-protos.h @@ -20,126 +20,118 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -extern int m68hc11_override_options PARAMS((void)); -extern int m68hc11_optimization_options PARAMS((int,int)); -extern void m68hc11_conditional_register_usage PARAMS((void)); -extern int hard_regno_mode_ok PARAMS((int, enum machine_mode)); -extern int m68hc11_hard_regno_rename_ok PARAMS((int, int)); +extern int m68hc11_override_options (void); +extern int m68hc11_optimization_options (int,int); +extern void m68hc11_conditional_register_usage (void); +extern int hard_regno_mode_ok (int, enum machine_mode); +extern int m68hc11_hard_regno_rename_ok (int, int); -extern int m68hc11_total_frame_size PARAMS((void)); -extern int m68hc11_initial_frame_pointer_offset PARAMS((void)); -extern int m68hc11_initial_elimination_offset PARAMS((int, int)); +extern int m68hc11_total_frame_size (void); +extern int m68hc11_initial_frame_pointer_offset (void); +extern int m68hc11_initial_elimination_offset (int, int); -extern void expand_prologue PARAMS((void)); -extern void expand_epilogue PARAMS((void)); +extern void expand_prologue (void); +extern void expand_epilogue (void); #ifdef TREE_CODE -extern void m68hc11_function_arg_advance PARAMS((CUMULATIVE_ARGS*, - enum machine_mode, - tree, - int)); +extern void m68hc11_function_arg_advance (CUMULATIVE_ARGS*, + enum machine_mode, + tree, + int); #endif #ifdef RTX_CODE -extern void m68hc11_initialize_trampoline PARAMS((rtx, rtx, rtx)); +extern void m68hc11_initialize_trampoline (rtx, rtx, rtx); -extern rtx m68hc11_expand_compare_and_branch PARAMS((enum rtx_code, - rtx, rtx, rtx)); -extern enum reg_class preferred_reload_class PARAMS((rtx, enum reg_class)); +extern rtx m68hc11_expand_compare_and_branch (enum rtx_code, rtx, rtx, rtx); +extern enum reg_class preferred_reload_class (rtx, enum reg_class); -extern int m68hc11_go_if_legitimate_address PARAMS((rtx, - enum machine_mode, - int)); +extern int m68hc11_go_if_legitimate_address (rtx, enum machine_mode, int); -extern int m68hc11_legitimize_address PARAMS((rtx*, rtx, enum machine_mode)); +extern int m68hc11_legitimize_address (rtx*, rtx, enum machine_mode); -extern void m68hc11_notice_update_cc PARAMS((rtx, rtx)); -extern void m68hc11_notice_keep_cc PARAMS((rtx)); +extern void m68hc11_notice_update_cc (rtx, rtx); +extern void m68hc11_notice_keep_cc (rtx); -extern void m68hc11_gen_movqi PARAMS((rtx, rtx*)); -extern void m68hc11_gen_movhi PARAMS((rtx, rtx*)); -extern void m68hc11_gen_rotate PARAMS((enum rtx_code, rtx, rtx*)); +extern void m68hc11_gen_movqi (rtx, rtx*); +extern void m68hc11_gen_movhi (rtx, rtx*); +extern void m68hc11_gen_rotate (enum rtx_code, rtx, rtx*); -extern void m68hc11_output_swap PARAMS((rtx,rtx*)); +extern void m68hc11_output_swap (rtx, rtx*); -extern int next_insn_test_reg PARAMS((rtx,rtx)); +extern int next_insn_test_reg (rtx, rtx); -extern void print_operand PARAMS((FILE*,rtx,int)); -extern void print_operand_address PARAMS((FILE*,rtx)); +extern void print_operand (FILE*, rtx, int); +extern void print_operand_address (FILE*, rtx); -extern int m68hc11_reload_operands PARAMS((rtx*)); +extern int m68hc11_reload_operands (rtx*); -extern int dead_register_here PARAMS((rtx, rtx)); +extern int dead_register_here (rtx, rtx); -extern int push_pop_operand_p PARAMS((rtx)); -extern void m68hc11_split_move PARAMS((rtx, rtx, rtx)); -extern void m68hc11_split_compare_and_branch PARAMS((enum rtx_code, - rtx, rtx, rtx)); -extern void aux_restore_IX_IY PARAMS((rtx)); -extern void aux_validate_IX_IY PARAMS((rtx)); +extern int push_pop_operand_p (rtx); +extern void m68hc11_split_move (rtx, rtx, rtx); +extern void m68hc11_split_compare_and_branch (enum rtx_code, + rtx, rtx, rtx); -extern rtx m68hc11_gen_lowpart PARAMS((enum machine_mode, rtx)); -extern rtx m68hc11_gen_highpart PARAMS((enum machine_mode, rtx)); +extern rtx m68hc11_gen_lowpart (enum machine_mode, rtx); +extern rtx m68hc11_gen_highpart (enum machine_mode, rtx); #ifdef HAVE_MACHINE_MODES -extern int m68hc11_memory_move_cost PARAMS((enum machine_mode, enum reg_class, - int)); -extern int m68hc11_register_move_cost PARAMS((enum machine_mode, - enum reg_class, enum reg_class)); - -extern void m68hc11_emit_libcall PARAMS((const char*, enum rtx_code, - enum machine_mode, enum machine_mode, - int, rtx*)); -extern int m68hc11_small_indexed_indirect_p PARAMS((rtx, enum machine_mode)); -extern int m68hc11_symbolic_p PARAMS((rtx, enum machine_mode)); -extern int m68hc11_indirect_p PARAMS((rtx, enum machine_mode)); -extern int go_if_legitimate_address2 PARAMS((rtx, enum machine_mode, int)); - -extern int reg_or_indexed_operand PARAMS((rtx,enum machine_mode)); -extern int tst_operand PARAMS((rtx,enum machine_mode)); -extern int cmp_operand PARAMS((rtx,enum machine_mode)); -extern int memory_indexed_operand PARAMS((rtx, enum machine_mode)); - -extern void m68hc11_split_logical PARAMS((enum machine_mode, int, rtx*)); - -extern int m68hc11_register_indirect_p PARAMS((rtx, enum machine_mode)); - -extern int symbolic_memory_operand PARAMS((rtx, enum machine_mode)); - -extern int memory_reload_operand PARAMS((rtx, enum machine_mode)); -extern int stack_register_operand PARAMS((rtx, enum machine_mode)); -extern int d_register_operand PARAMS((rtx, enum machine_mode)); -extern int hard_addr_reg_operand PARAMS((rtx, enum machine_mode)); -extern int arith_src_operand PARAMS((rtx, enum machine_mode)); -extern int m68hc11_logical_operator PARAMS((rtx, enum machine_mode)); -extern int m68hc11_arith_operator PARAMS((rtx, enum machine_mode)); -extern int m68hc11_non_shift_operator PARAMS((rtx, enum machine_mode)); -extern int m68hc11_shift_operator PARAMS((rtx, enum machine_mode)); -extern int m68hc11_unary_operator PARAMS((rtx, enum machine_mode)); -extern int m68hc11_eq_compare_operator PARAMS((rtx, enum machine_mode)); -extern int non_push_operand PARAMS((rtx, enum machine_mode)); -extern int hard_reg_operand PARAMS((rtx, enum machine_mode)); -extern int soft_reg_operand PARAMS((rtx, enum machine_mode)); -extern int reg_or_some_mem_operand PARAMS((rtx, enum machine_mode)); +extern int m68hc11_memory_move_cost (enum machine_mode, enum reg_class, int); +extern int m68hc11_register_move_cost (enum machine_mode, + enum reg_class, enum reg_class); + +extern void m68hc11_emit_libcall (const char*, enum rtx_code, + enum machine_mode, enum machine_mode, + int, rtx*); +extern int m68hc11_small_indexed_indirect_p (rtx, enum machine_mode); +extern int m68hc11_symbolic_p (rtx, enum machine_mode); +extern int m68hc11_indirect_p (rtx, enum machine_mode); +extern int go_if_legitimate_address2 (rtx, enum machine_mode, int); + +extern int reg_or_indexed_operand (rtx,enum machine_mode); +extern int tst_operand (rtx,enum machine_mode); +extern int cmp_operand (rtx,enum machine_mode); +extern int memory_indexed_operand (rtx, enum machine_mode); + +extern void m68hc11_split_logical (enum machine_mode, int, rtx*); + +extern int m68hc11_register_indirect_p (rtx, enum machine_mode); + +extern int symbolic_memory_operand (rtx, enum machine_mode); + +extern int memory_reload_operand (rtx, enum machine_mode); +extern int stack_register_operand (rtx, enum machine_mode); +extern int d_register_operand (rtx, enum machine_mode); +extern int hard_addr_reg_operand (rtx, enum machine_mode); +extern int arith_src_operand (rtx, enum machine_mode); +extern int m68hc11_logical_operator (rtx, enum machine_mode); +extern int m68hc11_arith_operator (rtx, enum machine_mode); +extern int m68hc11_non_shift_operator (rtx, enum machine_mode); +extern int m68hc11_shift_operator (rtx, enum machine_mode); +extern int m68hc11_unary_operator (rtx, enum machine_mode); +extern int m68hc11_eq_compare_operator (rtx, enum machine_mode); +extern int non_push_operand (rtx, enum machine_mode); +extern int hard_reg_operand (rtx, enum machine_mode); +extern int soft_reg_operand (rtx, enum machine_mode); +extern int reg_or_some_mem_operand (rtx, enum machine_mode); #if defined TREE_CODE -extern void m68hc11_init_cumulative_args PARAMS((CUMULATIVE_ARGS*, - tree, - rtx)); - -extern rtx m68hc11_function_arg PARAMS((const CUMULATIVE_ARGS* , - enum machine_mode, - tree, int)); -extern int m68hc11_function_arg_pass_by_reference PARAMS((const CUMULATIVE_ARGS*, - enum machine_mode, - tree, - int)); -extern int m68hc11_function_arg_padding PARAMS((enum machine_mode, tree)); - -extern void m68hc11_function_epilogue PARAMS((FILE*,int)); - -extern int m68hc11_is_far_symbol PARAMS((rtx)); -extern int m68hc11_is_trap_symbol PARAMS((rtx)); +extern void m68hc11_init_cumulative_args (CUMULATIVE_ARGS*, tree, rtx); + +extern rtx m68hc11_function_arg (const CUMULATIVE_ARGS* , + enum machine_mode, + tree, int); +extern int m68hc11_function_arg_pass_by_reference (const CUMULATIVE_ARGS*, + enum machine_mode, + tree, + int); +extern int m68hc11_function_arg_padding (enum machine_mode, tree); + +extern void m68hc11_function_epilogue (FILE*,int); + +extern int m68hc11_is_far_symbol (rtx); +extern int m68hc11_is_trap_symbol (rtx); #endif /* TREE_CODE */ diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c index 3f1cb4f9941..9a8651dd440 100644 --- a/gcc/config/m68hc11/m68hc11.c +++ b/gcc/config/m68hc11/m68hc11.c @@ -59,34 +59,34 @@ Note: #include "target.h" #include "target-def.h" -static void emit_move_after_reload PARAMS ((rtx, rtx, rtx)); -static rtx simplify_logical PARAMS ((enum machine_mode, int, rtx, rtx *)); -static void m68hc11_emit_logical PARAMS ((enum machine_mode, int, rtx *)); -static void m68hc11_reorg PARAMS ((void)); -static int go_if_legitimate_address_internal PARAMS((rtx, enum machine_mode, - int)); -static int register_indirect_p PARAMS((rtx, enum machine_mode, int)); -static rtx m68hc11_expand_compare PARAMS((enum rtx_code, rtx, rtx)); -static int must_parenthesize PARAMS ((rtx)); -static int m68hc11_address_cost PARAMS ((rtx)); -static int m68hc11_shift_cost PARAMS ((enum machine_mode, rtx, int)); -static int m68hc11_rtx_costs_1 PARAMS ((rtx, enum rtx_code, enum rtx_code)); -static bool m68hc11_rtx_costs PARAMS ((rtx, int, int, int *)); -static int m68hc11_auto_inc_p PARAMS ((rtx)); -static tree m68hc11_handle_fntype_attribute PARAMS ((tree *, tree, tree, int, bool *)); +static void emit_move_after_reload (rtx, rtx, rtx); +static rtx simplify_logical (enum machine_mode, int, rtx, rtx *); +static void m68hc11_emit_logical (enum machine_mode, int, rtx *); +static void m68hc11_reorg (void); +static int go_if_legitimate_address_internal (rtx, enum machine_mode, int); +static int register_indirect_p (rtx, enum machine_mode, int); +static rtx m68hc11_expand_compare (enum rtx_code, rtx, rtx); +static int must_parenthesize (rtx); +static int m68hc11_address_cost (rtx); +static int m68hc11_shift_cost (enum machine_mode, rtx, int); +static int m68hc11_rtx_costs_1 (rtx, enum rtx_code, enum rtx_code); +static bool m68hc11_rtx_costs (rtx, int, int, int *); +static int m68hc11_auto_inc_p (rtx); +static tree m68hc11_handle_fntype_attribute (tree *, tree, tree, int, bool *); const struct attribute_spec m68hc11_attribute_table[]; -void create_regs_rtx PARAMS ((void)); +void create_regs_rtx (void); -static void asm_print_register PARAMS ((FILE *, int)); -static void m68hc11_output_function_epilogue PARAMS ((FILE *, HOST_WIDE_INT)); -static void m68hc11_asm_out_constructor PARAMS ((rtx, int)); -static void m68hc11_asm_out_destructor PARAMS ((rtx, int)); -static void m68hc11_file_start PARAMS ((void)); -static void m68hc11_encode_section_info PARAMS((tree, rtx, int)); -static int autoinc_mode PARAMS((rtx)); -static int m68hc11_make_autoinc_notes PARAMS((rtx *, void *)); -static void m68hc11_init_libfuncs PARAMS ((void)); +static void asm_print_register (FILE *, int); +static void m68hc11_output_function_epilogue (FILE *, HOST_WIDE_INT); +static void m68hc11_asm_out_constructor (rtx, int); +static void m68hc11_asm_out_destructor (rtx, int); +static void m68hc11_file_start (void); +static void m68hc11_encode_section_info (tree, rtx, int); +static unsigned int m68hc11_section_type_flags (tree, const char*, int); +static int autoinc_mode (rtx); +static int m68hc11_make_autoinc_notes (rtx *, void *); +static void m68hc11_init_libfuncs (void); /* Must be set to 1 to produce debug messages. */ int debug_m6811 = 0; @@ -240,6 +240,9 @@ static int nb_soft_regs; #undef TARGET_ENCODE_SECTION_INFO #define TARGET_ENCODE_SECTION_INFO m68hc11_encode_section_info +#undef TARGET_SECTION_TYPE_FLAGS +#define TARGET_SECTION_TYPE_FLAGS m68hc11_section_type_flags + #undef TARGET_RTX_COSTS #define TARGET_RTX_COSTS m68hc11_rtx_costs #undef TARGET_ADDRESS_COST @@ -254,7 +257,7 @@ static int nb_soft_regs; struct gcc_target targetm = TARGET_INITIALIZER; int -m68hc11_override_options () +m68hc11_override_options (void) { memset (m68hc11_reg_valid_for_index, 0, sizeof (m68hc11_reg_valid_for_index)); @@ -320,7 +323,7 @@ m68hc11_override_options () void -m68hc11_conditional_register_usage () +m68hc11_conditional_register_usage (void) { int i; int cnt = atoi (m68hc11_soft_reg_count); @@ -353,7 +356,7 @@ static const char *const reg_class_names[] = REG_CLASS_NAMES; void -create_regs_rtx () +create_regs_rtx (void) { /* regs_inited = 1; */ ix_reg = gen_rtx (REG, HImode, HARD_X_REGNUM); @@ -379,9 +382,7 @@ create_regs_rtx () registers. They may be stored in soft registers if there are enough of them. */ int -hard_regno_mode_ok (regno, mode) - int regno; - enum machine_mode mode; +hard_regno_mode_ok (int regno, enum machine_mode mode) { switch (GET_MODE_SIZE (mode)) { @@ -409,8 +410,7 @@ hard_regno_mode_ok (regno, mode) } int -m68hc11_hard_regno_rename_ok (reg1, reg2) - int reg1, reg2; +m68hc11_hard_regno_rename_ok (int reg1, int reg2) { /* Don't accept renaming to Z register. We will replace it to X,Y or D during machine reorg pass. */ @@ -426,9 +426,7 @@ m68hc11_hard_regno_rename_ok (reg1, reg2) } enum reg_class -preferred_reload_class (operand, class) - rtx operand; - enum reg_class class; +preferred_reload_class (rtx operand, enum reg_class class) { enum machine_mode mode; @@ -546,10 +544,7 @@ preferred_reload_class (operand, class) For 68hc11: n,r with n in [0..255] and r in A_REGS class For 68hc12: n,r no constraint on the constant, r in A_REGS class. */ static int -register_indirect_p (operand, mode, strict) - rtx operand; - enum machine_mode mode; - int strict; +register_indirect_p (rtx operand, enum machine_mode mode, int strict) { rtx base, offset; @@ -611,9 +606,7 @@ register_indirect_p (operand, mode, strict) /* Returns 1 if the operand fits in a 68HC11 indirect mode or in a 68HC12 1-byte index addressing mode. */ int -m68hc11_small_indexed_indirect_p (operand, mode) - rtx operand; - enum machine_mode mode; +m68hc11_small_indexed_indirect_p (rtx operand, enum machine_mode mode) { rtx base, offset; @@ -674,9 +667,7 @@ m68hc11_small_indexed_indirect_p (operand, mode) } int -m68hc11_register_indirect_p (operand, mode) - rtx operand; - enum machine_mode mode; +m68hc11_register_indirect_p (rtx operand, enum machine_mode mode) { if (GET_CODE (operand) != MEM) return 0; @@ -687,10 +678,8 @@ m68hc11_register_indirect_p (operand, mode) } static int -go_if_legitimate_address_internal (operand, mode, strict) - rtx operand; - enum machine_mode mode; - int strict; +go_if_legitimate_address_internal (rtx operand, enum machine_mode mode, + int strict) { if (CONSTANT_ADDRESS_P (operand) && TARGET_M6812) { @@ -717,10 +706,8 @@ go_if_legitimate_address_internal (operand, mode, strict) } int -m68hc11_go_if_legitimate_address (operand, mode, strict) - rtx operand; - enum machine_mode mode; - int strict; +m68hc11_go_if_legitimate_address (rtx operand, enum machine_mode mode, + int strict) { int result; @@ -752,18 +739,16 @@ m68hc11_go_if_legitimate_address (operand, mode, strict) } int -m68hc11_legitimize_address (operand, old_operand, mode) - rtx *operand ATTRIBUTE_UNUSED; - rtx old_operand ATTRIBUTE_UNUSED; - enum machine_mode mode ATTRIBUTE_UNUSED; +m68hc11_legitimize_address (rtx *operand ATTRIBUTE_UNUSED, + rtx old_operand ATTRIBUTE_UNUSED, + enum machine_mode mode ATTRIBUTE_UNUSED) { return 0; } int -m68hc11_reload_operands (operands) - rtx operands[]; +m68hc11_reload_operands (rtx operands[]) { enum machine_mode mode; @@ -858,13 +843,9 @@ m68hc11_reload_operands (operands) } void -m68hc11_emit_libcall (name, code, dmode, smode, noperands, operands) - const char *name; - enum rtx_code code; - enum machine_mode dmode; - enum machine_mode smode; - int noperands; - rtx *operands; +m68hc11_emit_libcall (const char *name, enum rtx_code code, + enum machine_mode dmode, enum machine_mode smode, + int noperands, rtx *operands) { rtx ret; rtx insns; @@ -902,8 +883,7 @@ m68hc11_emit_libcall (name, code, dmode, smode, noperands, operands) (same as auto_inc_p() in rtlanal.c but do not take into account the stack). */ static int -m68hc11_auto_inc_p (x) - rtx x; +m68hc11_auto_inc_p (rtx x) { return GET_CODE (x) == PRE_DEC || GET_CODE (x) == POST_INC @@ -914,9 +894,7 @@ m68hc11_auto_inc_p (x) /* Predicates for machine description. */ int -memory_reload_operand (operand, mode) - rtx operand; - enum machine_mode mode ATTRIBUTE_UNUSED; +memory_reload_operand (rtx operand, enum machine_mode mode ATTRIBUTE_UNUSED) { return GET_CODE (operand) == MEM && GET_CODE (XEXP (operand, 0)) == PLUS @@ -927,9 +905,7 @@ memory_reload_operand (operand, mode) } int -tst_operand (operand, mode) - rtx operand; - enum machine_mode mode; +tst_operand (rtx operand, enum machine_mode mode) { if (GET_CODE (operand) == MEM && reload_completed == 0) { @@ -941,9 +917,7 @@ tst_operand (operand, mode) } int -cmp_operand (operand, mode) - rtx operand; - enum machine_mode mode; +cmp_operand (rtx operand, enum machine_mode mode) { if (GET_CODE (operand) == MEM) { @@ -955,9 +929,7 @@ cmp_operand (operand, mode) } int -non_push_operand (operand, mode) - rtx operand; - enum machine_mode mode; +non_push_operand (rtx operand, enum machine_mode mode) { if (general_operand (operand, mode) == 0) return 0; @@ -968,9 +940,7 @@ non_push_operand (operand, mode) } int -reg_or_some_mem_operand (operand, mode) - rtx operand; - enum machine_mode mode; +reg_or_some_mem_operand (rtx operand, enum machine_mode mode) { if (GET_CODE (operand) == MEM) { @@ -992,9 +962,7 @@ reg_or_some_mem_operand (operand, mode) } int -m68hc11_symbolic_p (operand, mode) - rtx operand; - enum machine_mode mode; +m68hc11_symbolic_p (rtx operand, enum machine_mode mode) { if (GET_CODE (operand) == MEM) { @@ -1007,9 +975,7 @@ m68hc11_symbolic_p (operand, mode) } int -m68hc11_indirect_p (operand, mode) - rtx operand; - enum machine_mode mode; +m68hc11_indirect_p (rtx operand, enum machine_mode mode) { if (GET_CODE (operand) == MEM) { @@ -1028,17 +994,13 @@ m68hc11_indirect_p (operand, mode) } int -stack_register_operand (operand, mode) - rtx operand; - enum machine_mode mode ATTRIBUTE_UNUSED; +stack_register_operand (rtx operand, enum machine_mode mode ATTRIBUTE_UNUSED) { return SP_REG_P (operand); } int -d_register_operand (operand, mode) - rtx operand; - enum machine_mode mode ATTRIBUTE_UNUSED; +d_register_operand (rtx operand, enum machine_mode mode) { if (GET_MODE (operand) != mode && mode != VOIDmode) return 0; @@ -1053,9 +1015,7 @@ d_register_operand (operand, mode) } int -hard_addr_reg_operand (operand, mode) - rtx operand; - enum machine_mode mode ATTRIBUTE_UNUSED; +hard_addr_reg_operand (rtx operand, enum machine_mode mode) { if (GET_MODE (operand) != mode && mode != VOIDmode) return 0; @@ -1070,9 +1030,7 @@ hard_addr_reg_operand (operand, mode) } int -hard_reg_operand (operand, mode) - rtx operand; - enum machine_mode mode; +hard_reg_operand (rtx operand, enum machine_mode mode) { if (GET_MODE (operand) != mode && mode != VOIDmode) return 0; @@ -1086,9 +1044,7 @@ hard_reg_operand (operand, mode) } int -memory_indexed_operand (operand, mode) - rtx operand; - enum machine_mode mode ATTRIBUTE_UNUSED; +memory_indexed_operand (rtx operand, enum machine_mode mode ATTRIBUTE_UNUSED) { if (GET_CODE (operand) != MEM) return 0; @@ -1107,8 +1063,7 @@ memory_indexed_operand (operand, mode) } int -push_pop_operand_p (operand) - rtx operand; +push_pop_operand_p (rtx operand) { if (GET_CODE (operand) != MEM) { @@ -1122,9 +1077,7 @@ push_pop_operand_p (operand) reference and a constant. */ int -symbolic_memory_operand (op, mode) - register rtx op; - enum machine_mode mode; +symbolic_memory_operand (rtx op, enum machine_mode mode) { switch (GET_CODE (op)) { @@ -1152,25 +1105,19 @@ symbolic_memory_operand (op, mode) } int -m68hc11_eq_compare_operator (op, mode) - register rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +m68hc11_eq_compare_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return GET_CODE (op) == EQ || GET_CODE (op) == NE; } int -m68hc11_logical_operator (op, mode) - register rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +m68hc11_logical_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return GET_CODE (op) == AND || GET_CODE (op) == IOR || GET_CODE (op) == XOR; } int -m68hc11_arith_operator (op, mode) - register rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +m68hc11_arith_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return GET_CODE (op) == AND || GET_CODE (op) == IOR || GET_CODE (op) == XOR || GET_CODE (op) == PLUS || GET_CODE (op) == MINUS @@ -1180,9 +1127,7 @@ m68hc11_arith_operator (op, mode) } int -m68hc11_non_shift_operator (op, mode) - register rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +m68hc11_non_shift_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return GET_CODE (op) == AND || GET_CODE (op) == IOR || GET_CODE (op) == XOR || GET_CODE (op) == PLUS || GET_CODE (op) == MINUS; @@ -1190,9 +1135,7 @@ m68hc11_non_shift_operator (op, mode) /* Return true if op is a shift operator. */ int -m68hc11_shift_operator (op, mode) - register rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +m68hc11_shift_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return GET_CODE (op) == ROTATE || GET_CODE (op) == ROTATERT || GET_CODE (op) == LSHIFTRT || GET_CODE (op) == ASHIFT @@ -1200,9 +1143,7 @@ m68hc11_shift_operator (op, mode) } int -m68hc11_unary_operator (op, mode) - register rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +m68hc11_unary_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return GET_CODE (op) == NEG || GET_CODE (op) == NOT || GET_CODE (op) == SIGN_EXTEND || GET_CODE (op) == ZERO_EXTEND; @@ -1218,10 +1159,7 @@ m68hc11_unary_operator (op, mode) */ void -m68hc11_initialize_trampoline (tramp, fnaddr, cxt) - rtx tramp; - rtx fnaddr; - rtx cxt; +m68hc11_initialize_trampoline (rtx tramp, rtx fnaddr, rtx cxt) { const char *static_chain_reg = reg_names[STATIC_CHAIN_REGNUM]; @@ -1276,12 +1214,10 @@ static rtx trap_handler_symbol = 0; /* Handle an attribute requiring a FUNCTION_TYPE, FIELD_DECL or TYPE_DECL; arguments as in struct attribute_spec.handler. */ static tree -m68hc11_handle_fntype_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +m68hc11_handle_fntype_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, + bool *no_add_attrs) { if (TREE_CODE (*node) != FUNCTION_TYPE && TREE_CODE (*node) != METHOD_TYPE @@ -1301,10 +1237,7 @@ m68hc11_handle_fntype_attribute (node, name, args, flags, no_add_attrs) in SYMBOL_REF_FLAG. */ static void -m68hc11_encode_section_info (decl, rtl, first) - tree decl; - rtx rtl; - int first ATTRIBUTE_UNUSED; +m68hc11_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED) { tree func_attr; int trap_handler; @@ -1337,9 +1270,21 @@ m68hc11_encode_section_info (decl, rtl, first) SYMBOL_REF_FLAG (XEXP (rtl, 0)) = is_far; } +static unsigned int +m68hc11_section_type_flags (tree decl, const char *name, int reloc) +{ + unsigned int flags = default_section_type_flags (decl, name, reloc); + + if (strncmp (name, ".eeprom", 7) == 0) + { + flags |= SECTION_WRITE | SECTION_CODE | SECTION_OVERRIDE; + } + + return flags; +} + int -m68hc11_is_far_symbol (sym) - rtx sym; +m68hc11_is_far_symbol (rtx sym) { if (GET_CODE (sym) == MEM) sym = XEXP (sym, 0); @@ -1348,8 +1293,7 @@ m68hc11_is_far_symbol (sym) } int -m68hc11_is_trap_symbol (sym) - rtx sym; +m68hc11_is_trap_symbol (rtx sym) { if (GET_CODE (sym) == MEM) sym = XEXP (sym, 0); @@ -1366,11 +1310,10 @@ m68hc11_is_trap_symbol (sym) SCz: I tried to pass DImode by reference but it seems that this does not work very well. */ int -m68hc11_function_arg_pass_by_reference (cum, mode, type, named) - const CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED; - enum machine_mode mode ATTRIBUTE_UNUSED; - tree type; - int named ATTRIBUTE_UNUSED; +m68hc11_function_arg_pass_by_reference (const CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED, + enum machine_mode mode ATTRIBUTE_UNUSED, + tree type, + int named ATTRIBUTE_UNUSED) { return ((type && TREE_CODE (type) == ARRAY_TYPE) /* Consider complex values as aggregates, so care for TCmode. */ @@ -1382,9 +1325,7 @@ m68hc11_function_arg_pass_by_reference (cum, mode, type, named) /* Define the offset between two registers, one to be eliminated, and the other its replacement, at the start of a routine. */ int -m68hc11_initial_elimination_offset (from, to) - int from; - int to; +m68hc11_initial_elimination_offset (int from, int to) { int trap_handler; tree func_attr; @@ -1451,10 +1392,7 @@ m68hc11_initial_elimination_offset (from, to) For a library call, FNTYPE is 0. */ void -m68hc11_init_cumulative_args (cum, fntype, libname) - CUMULATIVE_ARGS *cum; - tree fntype; - rtx libname; +m68hc11_init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype, rtx libname) { tree ret_type; @@ -1507,11 +1445,8 @@ m68hc11_init_cumulative_args (cum, fntype, libname) (TYPE is null for libcalls where that information may not be available.) */ void -m68hc11_function_arg_advance (cum, mode, type, named) - CUMULATIVE_ARGS *cum; - enum machine_mode mode; - tree type; - int named ATTRIBUTE_UNUSED; +m68hc11_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, + tree type, int named ATTRIBUTE_UNUSED) { if (mode != BLKmode) { @@ -1548,11 +1483,8 @@ m68hc11_function_arg_advance (cum, mode, type, named) (otherwise it is an extra parameter matching an ellipsis). */ struct rtx_def * -m68hc11_function_arg (cum, mode, type, named) - const CUMULATIVE_ARGS *cum; - enum machine_mode mode; - tree type ATTRIBUTE_UNUSED; - int named ATTRIBUTE_UNUSED; +m68hc11_function_arg (const CUMULATIVE_ARGS *cum, enum machine_mode mode, + tree type ATTRIBUTE_UNUSED, int named ATTRIBUTE_UNUSED) { if (cum->words != 0) { @@ -1580,9 +1512,7 @@ m68hc11_function_arg (cum, mode, type, named) Structures are stored left shifted in their argument slot. */ int -m68hc11_function_arg_padding (mode, type) - enum machine_mode mode; - tree type; +m68hc11_function_arg_padding (enum machine_mode mode, tree type) { if (type != 0 && AGGREGATE_TYPE_P (type)) return upward; @@ -1597,8 +1527,7 @@ m68hc11_function_arg_padding (mode, type) /* Emit a move after the reload pass has completed. This is used to emit the prologue and epilogue. */ static void -emit_move_after_reload (to, from, scratch) - rtx to, from, scratch; +emit_move_after_reload (rtx to, rtx from, rtx scratch) { rtx insn; @@ -1640,7 +1569,7 @@ emit_move_after_reload (to, from, scratch) } int -m68hc11_total_frame_size () +m68hc11_total_frame_size (void) { int size; int regno; @@ -1661,9 +1590,8 @@ m68hc11_total_frame_size () } static void -m68hc11_output_function_epilogue (out, size) - FILE *out ATTRIBUTE_UNUSED; - HOST_WIDE_INT size ATTRIBUTE_UNUSED; +m68hc11_output_function_epilogue (FILE *out ATTRIBUTE_UNUSED, + HOST_WIDE_INT size ATTRIBUTE_UNUSED) { /* We catch the function epilogue generation to have a chance to clear the z_replacement_completed flag. */ @@ -1671,7 +1599,7 @@ m68hc11_output_function_epilogue (out, size) } void -expand_prologue () +expand_prologue (void) { tree func_attr; int size; @@ -1775,7 +1703,7 @@ expand_prologue () } void -expand_epilogue () +expand_epilogue (void) { int size; register int regno; @@ -1888,9 +1816,7 @@ expand_epilogue () fixed to work for constants and 68HC11 specific registers. */ rtx -m68hc11_gen_lowpart (mode, x) - enum machine_mode mode; - rtx x; +m68hc11_gen_lowpart (enum machine_mode mode, rtx x) { /* We assume that the low part of an auto-inc mode is the same with the mode changed and that the caller split the larger mode in the @@ -1965,9 +1891,7 @@ m68hc11_gen_lowpart (mode, x) } rtx -m68hc11_gen_highpart (mode, x) - enum machine_mode mode; - rtx x; +m68hc11_gen_highpart (enum machine_mode mode, rtx x) { /* We assume that the high part of an auto-inc mode is the same with the mode changed and that the caller split the larger mode in the @@ -2086,9 +2010,7 @@ m68hc11_gen_highpart (mode, x) of code when we know that some register dies or can be clobbered. */ int -dead_register_here (x, reg) - rtx x; - rtx reg; +dead_register_here (rtx x, rtx reg) { rtx x_reg; rtx p; @@ -2166,9 +2088,7 @@ dead_register_here (x, reg) /* Print the name of register 'regno' in the assembly file. */ static void -asm_print_register (file, regno) - FILE *file; - int regno; +asm_print_register (FILE *file, int regno) { const char *name = reg_names[regno]; @@ -2211,10 +2131,7 @@ asm_print_register (file, regno) ignored. */ void -print_operand (file, op, letter) - FILE *file; - rtx op; - int letter; +print_operand (FILE *file, rtx op, int letter) { if (letter == 't') { @@ -2367,8 +2284,7 @@ print_operand (file, op, letter) around it. This must be done only if there is a symbol whose name is a processor register. */ static int -must_parenthesize (op) - rtx op; +must_parenthesize (rtx op) { const char *name; @@ -2414,9 +2330,7 @@ must_parenthesize (op) reference whose address is ADDR. ADDR is an RTL expression. */ void -print_operand_address (file, addr) - FILE *file; - rtx addr; +print_operand_address (FILE *file, rtx addr) { rtx base; rtx offset; @@ -2567,9 +2481,7 @@ print_operand_address (file, addr) /* Splitting of some instructions. */ static rtx -m68hc11_expand_compare (code, op0, op1) - enum rtx_code code; - rtx op0, op1; +m68hc11_expand_compare (enum rtx_code code, rtx op0, rtx op1) { rtx ret = 0; @@ -2586,9 +2498,8 @@ m68hc11_expand_compare (code, op0, op1) } rtx -m68hc11_expand_compare_and_branch (code, op0, op1, label) - enum rtx_code code; - rtx op0, op1, label; +m68hc11_expand_compare_and_branch (enum rtx_code code, rtx op0, rtx op1, + rtx label) { rtx tmp; @@ -2740,8 +2651,7 @@ m68hc11_expand_compare_and_branch (code, op0, op1, label) /* Return the increment/decrement mode of a MEM if it is such. Return CONST if it is anything else. */ static int -autoinc_mode (x) - rtx x; +autoinc_mode (rtx x) { if (GET_CODE (x) != MEM) return CONST; @@ -2757,9 +2667,7 @@ autoinc_mode (x) } static int -m68hc11_make_autoinc_notes (x, data) - rtx *x; - void *data; +m68hc11_make_autoinc_notes (rtx *x, void *data) { rtx insn; @@ -2783,8 +2691,7 @@ m68hc11_make_autoinc_notes (x, data) The scratch register 'scratch' is used as a temporary to load store intermediate values. It must be a hard register. */ void -m68hc11_split_move (to, from, scratch) - rtx to, from, scratch; +m68hc11_split_move (rtx to, rtx from, rtx scratch) { rtx low_to, low_from; rtx high_to, high_from; @@ -2990,11 +2897,7 @@ m68hc11_split_move (to, from, scratch) } static rtx -simplify_logical (mode, code, operand, result) - enum machine_mode mode; - int code; - rtx operand; - rtx *result; +simplify_logical (enum machine_mode mode, int code, rtx operand, rtx *result) { int val; int mask; @@ -3034,10 +2937,7 @@ simplify_logical (mode, code, operand, result) } static void -m68hc11_emit_logical (mode, code, operands) - enum machine_mode mode; - int code; - rtx *operands; +m68hc11_emit_logical (enum machine_mode mode, int code, rtx *operands) { rtx result; int need_copy; @@ -3106,10 +3006,7 @@ m68hc11_emit_logical (mode, code, operands) } void -m68hc11_split_logical (mode, code, operands) - enum machine_mode mode; - int code; - rtx *operands; +m68hc11_split_logical (enum machine_mode mode, int code, rtx *operands) { rtx low[4]; rtx high[4]; @@ -3157,9 +3054,7 @@ m68hc11_split_logical (mode, code, operands) /* Code generation. */ void -m68hc11_output_swap (insn, operands) - rtx insn ATTRIBUTE_UNUSED; - rtx operands[]; +m68hc11_output_swap (rtx insn ATTRIBUTE_UNUSED, rtx operands[]) { /* We have to be careful with the cc_status. An address register swap is generated for some comparison. The comparison is made with D @@ -3211,9 +3106,7 @@ m68hc11_output_swap (insn, operands) This is used to decide whether a move that set flags should be used instead. */ int -next_insn_test_reg (insn, reg) - rtx insn; - rtx reg; +next_insn_test_reg (rtx insn, rtx reg) { rtx body; @@ -3234,9 +3127,7 @@ next_insn_test_reg (insn, reg) /* Generate the code to move a 16-bit operand into another one. */ void -m68hc11_gen_movhi (insn, operands) - rtx insn; - rtx *operands; +m68hc11_gen_movhi (rtx insn, rtx *operands) { int reg; @@ -3650,9 +3541,7 @@ m68hc11_gen_movhi (insn, operands) } void -m68hc11_gen_movqi (insn, operands) - rtx insn; - rtx *operands; +m68hc11_gen_movqi (rtx insn, rtx *operands) { /* Move a register or memory to the same location. This is possible because such insn can appear @@ -3932,10 +3821,7 @@ m68hc11_gen_movqi (insn, operands) The source and destination must be D or A and the shift must be a constant. */ void -m68hc11_gen_rotate (code, insn, operands) - enum rtx_code code; - rtx insn; - rtx operands[]; +m68hc11_gen_rotate (enum rtx_code code, rtx insn, rtx operands[]) { int val; @@ -4014,9 +3900,7 @@ m68hc11_gen_rotate (code, insn, operands) Do not alter them if the instruction would not alter the cc's. */ void -m68hc11_notice_update_cc (exp, insn) - rtx exp; - rtx insn ATTRIBUTE_UNUSED; +m68hc11_notice_update_cc (rtx exp, rtx insn ATTRIBUTE_UNUSED) { /* recognize SET insn's. */ if (GET_CODE (exp) == SET) @@ -4116,8 +4000,7 @@ m68hc11_notice_update_cc (exp, insn) the register 'reg'. See if the previous flags can be kept for the next instruction to avoid a comparison. */ void -m68hc11_notice_keep_cc (reg) - rtx reg; +m68hc11_notice_keep_cc (rtx reg) { if (reg == 0 || cc_prev_status.value1 == 0 @@ -4192,10 +4075,10 @@ struct replace_info int z_loaded_with_sp; }; -static int m68hc11_check_z_replacement PARAMS ((rtx, struct replace_info *)); -static void m68hc11_find_z_replacement PARAMS ((rtx, struct replace_info *)); -static void m68hc11_z_replacement PARAMS ((rtx)); -static void m68hc11_reassign_regs PARAMS ((rtx)); +static int m68hc11_check_z_replacement (rtx, struct replace_info *); +static void m68hc11_find_z_replacement (rtx, struct replace_info *); +static void m68hc11_z_replacement (rtx); +static void m68hc11_reassign_regs (rtx); int z_replacement_completed = 0; @@ -4205,9 +4088,7 @@ int z_replacement_completed = 0; continue replacement in next insns. */ static int -m68hc11_check_z_replacement (insn, info) - rtx insn; - struct replace_info *info; +m68hc11_check_z_replacement (rtx insn, struct replace_info *info) { int this_insn_uses_ix; int this_insn_uses_iy; @@ -4770,9 +4651,7 @@ m68hc11_check_z_replacement (insn, info) } static void -m68hc11_find_z_replacement (insn, info) - rtx insn; - struct replace_info *info; +m68hc11_find_z_replacement (rtx insn, struct replace_info *info) { int reg; @@ -4883,8 +4762,7 @@ m68hc11_find_z_replacement (insn, info) Z and of the replacement register. */ static void -m68hc11_z_replacement (insn) - rtx insn; +m68hc11_z_replacement (rtx insn) { rtx replace_reg_qi; rtx replace_reg; @@ -5094,8 +4972,7 @@ m68hc11_z_replacement (insn) on the instruction. */ static void -m68hc11_reassign_regs (first) - rtx first; +m68hc11_reassign_regs (rtx first) { rtx insn; @@ -5159,7 +5036,7 @@ m68hc11_reassign_regs (first) 'z_replacement_completed' is set to 2. */ static void -m68hc11_reorg () +m68hc11_reorg (void) { int split_done = 0; rtx insn, first; @@ -5277,10 +5154,8 @@ m68hc11_init_libfuncs (void) /* Cost of moving memory. */ int -m68hc11_memory_move_cost (mode, class, in) - enum machine_mode mode; - enum reg_class class; - int in ATTRIBUTE_UNUSED; +m68hc11_memory_move_cost (enum machine_mode mode, enum reg_class class, + int in ATTRIBUTE_UNUSED) { if (class <= H_REGS && class > NO_REGS) { @@ -5304,10 +5179,8 @@ m68hc11_memory_move_cost (mode, class, in) have a move cost of 2. Setting a higher cost will force reload to check the constraints. */ int -m68hc11_register_move_cost (mode, from, to) - enum machine_mode mode; - enum reg_class from; - enum reg_class to; +m68hc11_register_move_cost (enum machine_mode mode, enum reg_class from, + enum reg_class to) { /* All costs are symmetric, so reduce cases by putting the lower number class as the destination. */ @@ -5329,8 +5202,7 @@ m68hc11_register_move_cost (mode, from, to) If ADDR is not a valid address, its cost is irrelevant. */ static int -m68hc11_address_cost (addr) - rtx addr; +m68hc11_address_cost (rtx addr) { int cost = 4; @@ -5411,10 +5283,7 @@ m68hc11_address_cost (addr) } static int -m68hc11_shift_cost (mode, x, shift) - enum machine_mode mode; - rtx x; - int shift; +m68hc11_shift_cost (enum machine_mode mode, rtx x, int shift) { int total; @@ -5443,10 +5312,8 @@ m68hc11_shift_cost (mode, x, shift) } static int -m68hc11_rtx_costs_1 (x, code, outer_code) - rtx x; - enum rtx_code code; - enum rtx_code outer_code ATTRIBUTE_UNUSED; +m68hc11_rtx_costs_1 (rtx x, enum rtx_code code, + enum rtx_code outer_code ATTRIBUTE_UNUSED) { enum machine_mode mode = GET_MODE (x); int extra_cost = 0; @@ -5579,10 +5446,7 @@ m68hc11_rtx_costs_1 (x, code, outer_code) } static bool -m68hc11_rtx_costs (x, code, outer_code, total) - rtx x; - int code, outer_code; - int *total; +m68hc11_rtx_costs (rtx x, int code, int outer_code, int *total) { switch (code) { @@ -5634,7 +5498,7 @@ m68hc11_rtx_costs (x, code, outer_code, total) static void -m68hc11_file_start () +m68hc11_file_start (void) { default_file_start (); @@ -5643,18 +5507,14 @@ m68hc11_file_start () static void -m68hc11_asm_out_constructor (symbol, priority) - rtx symbol; - int priority; +m68hc11_asm_out_constructor (rtx symbol, int priority) { default_ctor_section_asm_out_constructor (symbol, priority); fprintf (asm_out_file, "\t.globl\t__do_global_ctors\n"); } static void -m68hc11_asm_out_destructor (symbol, priority) - rtx symbol; - int priority; +m68hc11_asm_out_destructor (rtx symbol, int priority) { default_dtor_section_asm_out_destructor (symbol, priority); fprintf (asm_out_file, "\t.globl\t__do_global_dtors\n"); -- 2.30.2