diff options
Diffstat (limited to 'gcc/config/pa/pa.c')
-rw-r--r-- | gcc/config/pa/pa.c | 674 |
1 files changed, 215 insertions, 459 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 88c3d087709..9c207d6d591 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -3,20 +3,20 @@ 2002, 2003 Free Software Foundation, Inc. Contributed by Tim Moore (moore@cs.utah.edu), based on sparc.c -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. -GNU CC is distributed in the hope that it will be useful, +GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to +along with GCC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ @@ -50,13 +50,13 @@ Boston, MA 02111-1307, USA. */ #include "target.h" #include "target-def.h" -static int hppa_use_dfa_pipeline_interface PARAMS ((void)); +static int hppa_use_dfa_pipeline_interface (void); #undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE #define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE hppa_use_dfa_pipeline_interface static int -hppa_use_dfa_pipeline_interface () +hppa_use_dfa_pipeline_interface (void) { return 1; } @@ -64,8 +64,7 @@ hppa_use_dfa_pipeline_interface () /* Return nonzero if there is a bypass for the output of OUT_INSN and the fp store IN_INSN. */ int -hppa_fpstore_bypass_p (out_insn, in_insn) - rtx out_insn, in_insn; +hppa_fpstore_bypass_p (rtx out_insn, rtx in_insn) { enum machine_mode store_mode; enum machine_mode other_mode; @@ -96,56 +95,56 @@ hppa_fpstore_bypass_p (out_insn, in_insn) #endif #endif -static int hppa_address_cost PARAMS ((rtx)); -static bool hppa_rtx_costs PARAMS ((rtx, int, int, int *)); -static inline rtx force_mode PARAMS ((enum machine_mode, rtx)); -static void pa_reorg PARAMS ((void)); -static void pa_combine_instructions PARAMS ((void)); -static int pa_can_combine_p PARAMS ((rtx, rtx, rtx, int, rtx, rtx, rtx)); -static int forward_branch_p PARAMS ((rtx)); -static int shadd_constant_p PARAMS ((int)); -static void compute_zdepwi_operands PARAMS ((unsigned HOST_WIDE_INT, unsigned *)); -static int compute_movstrsi_length PARAMS ((rtx)); -static bool pa_assemble_integer PARAMS ((rtx, unsigned int, int)); -static void remove_useless_addtr_insns PARAMS ((int)); -static void store_reg PARAMS ((int, int, int)); -static void store_reg_modify PARAMS ((int, int, int)); -static void load_reg PARAMS ((int, int, int)); -static void set_reg_plus_d PARAMS ((int, int, int, int)); -static void pa_output_function_prologue PARAMS ((FILE *, HOST_WIDE_INT)); -static void update_total_code_bytes PARAMS ((int)); -static void pa_output_function_epilogue PARAMS ((FILE *, HOST_WIDE_INT)); -static int pa_adjust_cost PARAMS ((rtx, rtx, rtx, int)); -static int pa_adjust_priority PARAMS ((rtx, int)); -static int pa_issue_rate PARAMS ((void)); -static void pa_select_section PARAMS ((tree, int, unsigned HOST_WIDE_INT)) +static int hppa_address_cost (rtx); +static bool hppa_rtx_costs (rtx, int, int, int *); +static inline rtx force_mode (enum machine_mode, rtx); +static void pa_reorg (void); +static void pa_combine_instructions (void); +static int pa_can_combine_p (rtx, rtx, rtx, int, rtx, rtx, rtx); +static int forward_branch_p (rtx); +static int shadd_constant_p (int); +static void compute_zdepwi_operands (unsigned HOST_WIDE_INT, unsigned *); +static int compute_movstrsi_length (rtx); +static bool pa_assemble_integer (rtx, unsigned int, int); +static void remove_useless_addtr_insns (int); +static void store_reg (int, int, int); +static void store_reg_modify (int, int, int); +static void load_reg (int, int, int); +static void set_reg_plus_d (int, int, int, int); +static void pa_output_function_prologue (FILE *, HOST_WIDE_INT); +static void update_total_code_bytes (int); +static void pa_output_function_epilogue (FILE *, HOST_WIDE_INT); +static int pa_adjust_cost (rtx, rtx, rtx, int); +static int pa_adjust_priority (rtx, int); +static int pa_issue_rate (void); +static void pa_select_section (tree, int, unsigned HOST_WIDE_INT) ATTRIBUTE_UNUSED; -static void pa_encode_section_info PARAMS ((tree, rtx, int)); -static const char *pa_strip_name_encoding PARAMS ((const char *)); -static bool pa_function_ok_for_sibcall PARAMS ((tree, tree)); -static void pa_globalize_label PARAMS ((FILE *, const char *)) +static void pa_encode_section_info (tree, rtx, int); +static const char *pa_strip_name_encoding (const char *); +static bool pa_function_ok_for_sibcall (tree, tree); +static void pa_globalize_label (FILE *, const char *) ATTRIBUTE_UNUSED; -static void pa_asm_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT, - HOST_WIDE_INT, tree)); +static void pa_asm_output_mi_thunk (FILE *, tree, HOST_WIDE_INT, + HOST_WIDE_INT, tree); #if !defined(USE_COLLECT2) -static void pa_asm_out_constructor PARAMS ((rtx, int)); -static void pa_asm_out_destructor PARAMS ((rtx, int)); +static void pa_asm_out_constructor (rtx, int); +static void pa_asm_out_destructor (rtx, int); #endif -static void pa_init_builtins PARAMS ((void)); -static void copy_fp_args PARAMS ((rtx)) ATTRIBUTE_UNUSED; -static int length_fp_args PARAMS ((rtx)) ATTRIBUTE_UNUSED; -static struct deferred_plabel *get_plabel PARAMS ((const char *)) +static void pa_init_builtins (void); +static void copy_fp_args (rtx) ATTRIBUTE_UNUSED; +static int length_fp_args (rtx) ATTRIBUTE_UNUSED; +static struct deferred_plabel *get_plabel (const char *) ATTRIBUTE_UNUSED; -static inline void pa_file_start_level PARAMS ((void)) ATTRIBUTE_UNUSED; -static inline void pa_file_start_space PARAMS ((int)) ATTRIBUTE_UNUSED; -static inline void pa_file_start_file PARAMS ((int)) ATTRIBUTE_UNUSED; -static inline void pa_file_start_mcount PARAMS ((const char*)) ATTRIBUTE_UNUSED; -static void pa_elf_file_start PARAMS ((void)) ATTRIBUTE_UNUSED; -static void pa_som_file_start PARAMS ((void)) ATTRIBUTE_UNUSED; -static void pa_linux_file_start PARAMS ((void)) ATTRIBUTE_UNUSED; -static void pa_hpux64_gas_file_start PARAMS ((void)) ATTRIBUTE_UNUSED; -static void pa_hpux64_hpas_file_start PARAMS ((void)) ATTRIBUTE_UNUSED; -static void output_deferred_plabels PARAMS ((void)); +static inline void pa_file_start_level (void) ATTRIBUTE_UNUSED; +static inline void pa_file_start_space (int) ATTRIBUTE_UNUSED; +static inline void pa_file_start_file (int) ATTRIBUTE_UNUSED; +static inline void pa_file_start_mcount (const char*) ATTRIBUTE_UNUSED; +static void pa_elf_file_start (void) ATTRIBUTE_UNUSED; +static void pa_som_file_start (void) ATTRIBUTE_UNUSED; +static void pa_linux_file_start (void) ATTRIBUTE_UNUSED; +static void pa_hpux64_gas_file_start (void) ATTRIBUTE_UNUSED; +static void pa_hpux64_hpas_file_start (void) ATTRIBUTE_UNUSED; +static void output_deferred_plabels (void); /* Save the operands last given to a compare for use when we generate a scc or bcc insn. */ @@ -168,7 +167,7 @@ const char *pa_arch_string; registers which were saved by the current function's prologue. */ static int gr_saved, fr_saved; -static rtx find_addr_reg PARAMS ((rtx)); +static rtx find_addr_reg (rtx); /* Keep track of the number of bytes we have output in the CODE subspace during this compilation so we'll know when to emit inline long-calls. */ @@ -257,7 +256,7 @@ static size_t n_deferred_plabels = 0; struct gcc_target targetm = TARGET_INITIALIZER; void -override_options () +override_options (void) { if (pa_cpu_string == NULL) pa_cpu_string = TARGET_SCHED_DEFAULT; @@ -366,7 +365,7 @@ override_options () } static void -pa_init_builtins () +pa_init_builtins (void) { #ifdef DONT_HAVE_FPUTC_UNLOCKED built_in_decls[(int) BUILT_IN_FPUTC_UNLOCKED] = NULL_TREE; @@ -377,9 +376,7 @@ pa_init_builtins () /* Return nonzero only if OP is a register of mode MODE, or CONST0_RTX. */ int -reg_or_0_operand (op, mode) - rtx op; - enum machine_mode mode; +reg_or_0_operand (rtx op, enum machine_mode mode) { return (op == CONST0_RTX (mode) || register_operand (op, mode)); } @@ -390,9 +387,7 @@ reg_or_0_operand (op, mode) For 2.5 try to eliminate either call_operand_address or function_label_operand, they perform very similar functions. */ int -call_operand_address (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +call_operand_address (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_MODE (op) == word_mode && CONSTANT_P (op) && ! TARGET_PORTABLE_RUNTIME); @@ -402,8 +397,7 @@ call_operand_address (op, mode) expressions will have one of a few well defined forms, so we need only check those forms. */ int -symbolic_expression_p (x) - register rtx x; +symbolic_expression_p (rtx x) { /* Strip off any HIGH. */ @@ -414,9 +408,7 @@ symbolic_expression_p (x) } int -symbolic_operand (op, mode) - register rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { switch (GET_CODE (op)) { @@ -437,9 +429,7 @@ symbolic_operand (op, mode) operand of mode MODE. */ int -symbolic_memory_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +symbolic_memory_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { if (GET_CODE (op) == SUBREG) op = SUBREG_REG (op); @@ -454,9 +444,7 @@ symbolic_memory_operand (op, mode) not symbolic. */ int -reg_or_nonsymb_mem_operand (op, mode) - register rtx op; - enum machine_mode mode; +reg_or_nonsymb_mem_operand (rtx op, enum machine_mode mode) { if (register_operand (op, mode)) return 1; @@ -471,9 +459,7 @@ reg_or_nonsymb_mem_operand (op, mode) that is not symbolic. */ int -reg_or_0_or_nonsymb_mem_operand (op, mode) - register rtx op; - enum machine_mode mode; +reg_or_0_or_nonsymb_mem_operand (rtx op, enum machine_mode mode) { if (register_operand (op, mode)) return 1; @@ -494,9 +480,7 @@ reg_or_0_or_nonsymb_mem_operand (op, mode) if reload didn't find a hard register for the operand. */ int -reg_before_reload_operand (op, mode) - register rtx op; - enum machine_mode mode; +reg_before_reload_operand (rtx op, enum machine_mode mode) { /* Don't accept a SUBREG since it will need a reload. */ if (GET_CODE (op) == SUBREG) @@ -516,8 +500,7 @@ reg_before_reload_operand (op, mode) /* Accept any constant that can be moved in one instruction into a general register. */ int -cint_ok_for_move (intval) - HOST_WIDE_INT intval; +cint_ok_for_move (HOST_WIDE_INT intval) { /* OK if ldo, ldil, or zdepi, can be used. */ return (CONST_OK_FOR_LETTER_P (intval, 'J') @@ -528,9 +511,7 @@ cint_ok_for_move (intval) /* Accept anything that can be moved in one instruction into a general register. */ int -move_operand (op, mode) - rtx op; - enum machine_mode mode; +move_operand (rtx op, enum machine_mode mode) { if (register_operand (op, mode)) return 1; @@ -581,9 +562,7 @@ move_operand (op, mode) /* Accept REG and any CONST_INT that can be moved in one instruction into a general register. */ int -reg_or_cint_move_operand (op, mode) - rtx op; - enum machine_mode mode; +reg_or_cint_move_operand (rtx op, enum machine_mode mode) { if (register_operand (op, mode)) return 1; @@ -595,9 +574,7 @@ reg_or_cint_move_operand (op, mode) } int -pic_label_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +pic_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { if (!flag_pic) return 0; @@ -616,9 +593,7 @@ pic_label_operand (op, mode) } int -fp_reg_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +fp_reg_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return reg_renumber && FP_REG_P (op); } @@ -629,9 +604,7 @@ fp_reg_operand (op, mode) three operand arithmetic insn that accepts registers of mode MODE or 14-bit signed integers. */ int -arith_operand (op, mode) - rtx op; - enum machine_mode mode; +arith_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_INT && INT_14_BITS (op))); @@ -641,9 +614,7 @@ arith_operand (op, mode) three operand arithmetic insn that accepts registers of mode MODE or 11-bit signed integers. */ int -arith11_operand (op, mode) - rtx op; - enum machine_mode mode; +arith11_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_INT && INT_11_BITS (op))); @@ -652,9 +623,7 @@ arith11_operand (op, mode) /* Return truth value of whether OP can be used as an operand in a adddi3 insn. */ int -adddi3_operand (op, mode) - rtx op; - enum machine_mode mode; +adddi3_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_INT @@ -664,9 +633,7 @@ adddi3_operand (op, mode) /* A constant integer suitable for use in a PRE_MODIFY memory reference. */ int -pre_cint_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +pre_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == CONST_INT && INTVAL (op) >= -0x2000 && INTVAL (op) < 0x10); @@ -675,18 +642,14 @@ pre_cint_operand (op, mode) /* A constant integer suitable for use in a POST_MODIFY memory reference. */ int -post_cint_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +post_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == CONST_INT && INTVAL (op) < 0x2000 && INTVAL (op) >= -0x10); } int -arith_double_operand (op, mode) - rtx op; - enum machine_mode mode; +arith_double_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_DOUBLE @@ -701,9 +664,7 @@ arith_double_operand (op, mode) is an integer register. */ int -ireg_or_int5_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +ireg_or_int5_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return ((GET_CODE (op) == CONST_INT && INT_5_BITS (op)) || (GET_CODE (op) == REG && REGNO (op) > 0 && REGNO (op) < 32)); @@ -711,9 +672,7 @@ ireg_or_int5_operand (op, mode) /* Return nonzero if OP is an integer register, else return zero. */ int -ireg_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +ireg_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == REG && REGNO (op) > 0 && REGNO (op) < 32); } @@ -722,33 +681,25 @@ ireg_operand (op, mode) range constraining immediate operands in three-address insns. */ int -int5_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +int5_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == CONST_INT && INT_5_BITS (op)); } int -uint5_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +uint5_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == CONST_INT && INT_U5_BITS (op)); } int -int11_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +int11_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == CONST_INT && INT_11_BITS (op)); } int -uint32_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +uint32_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { #if HOST_BITS_PER_WIDE_INT > 32 /* All allowed constants will fit a CONST_INT. */ @@ -762,9 +713,7 @@ uint32_operand (op, mode) } int -arith5_operand (op, mode) - rtx op; - enum machine_mode mode; +arith5_operand (rtx op, enum machine_mode mode) { return register_operand (op, mode) || int5_operand (op, mode); } @@ -773,8 +722,7 @@ arith5_operand (op, mode) zdepi first sign extends a 5 bit signed number to a given field length, then places this field anywhere in a zero. */ int -zdepi_cint_p (x) - unsigned HOST_WIDE_INT x; +zdepi_cint_p (unsigned HOST_WIDE_INT x) { unsigned HOST_WIDE_INT lsb_mask, t; @@ -792,8 +740,7 @@ zdepi_cint_p (x) 1....10....0 1..10..01..1 */ int -and_mask_p (mask) - unsigned HOST_WIDE_INT mask; +and_mask_p (unsigned HOST_WIDE_INT mask) { mask = ~mask; mask += mask & -mask; @@ -802,9 +749,7 @@ and_mask_p (mask) /* True iff depi or extru can be used to compute (reg & OP). */ int -and_operand (op, mode) - rtx op; - enum machine_mode mode; +and_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_INT && and_mask_p (INTVAL (op)))); @@ -812,8 +757,7 @@ and_operand (op, mode) /* True iff depi can be used to compute (reg | MASK). */ int -ior_mask_p (mask) - unsigned HOST_WIDE_INT mask; +ior_mask_p (unsigned HOST_WIDE_INT mask) { mask += mask & -mask; return (mask & (mask - 1)) == 0; @@ -821,17 +765,13 @@ ior_mask_p (mask) /* True iff depi can be used to compute (reg | OP). */ int -ior_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +ior_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == CONST_INT && ior_mask_p (INTVAL (op))); } int -lhs_lshift_operand (op, mode) - rtx op; - enum machine_mode mode; +lhs_lshift_operand (rtx op, enum machine_mode mode) { return register_operand (op, mode) || lhs_lshift_cint_operand (op, mode); } @@ -840,9 +780,7 @@ lhs_lshift_operand (op, mode) Such values can be the left hand side x in (x << r), using the zvdepi instruction. */ int -lhs_lshift_cint_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +lhs_lshift_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { unsigned HOST_WIDE_INT x; if (GET_CODE (op) != CONST_INT) @@ -852,17 +790,13 @@ lhs_lshift_cint_operand (op, mode) } int -arith32_operand (op, mode) - rtx op; - enum machine_mode mode; +arith32_operand (rtx op, enum machine_mode mode) { return register_operand (op, mode) || GET_CODE (op) == CONST_INT; } int -pc_or_label_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +pc_or_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == PC || GET_CODE (op) == LABEL_REF); } @@ -873,9 +807,7 @@ pc_or_label_operand (op, mode) than one register, we lose. */ rtx -legitimize_pic_address (orig, mode, reg) - rtx orig, reg; - enum machine_mode mode; +legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) { rtx pic_ref = orig; @@ -997,9 +929,8 @@ legitimize_pic_address (orig, mode, reg) a register. */ rtx -hppa_legitimize_address (x, oldx, mode) - rtx x, oldx ATTRIBUTE_UNUSED; - enum machine_mode mode; +hppa_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, + enum machine_mode mode) { rtx orig = x; @@ -1347,8 +1278,7 @@ hppa_legitimize_address (x, oldx, mode) as GO_IF_LEGITIMATE_ADDRESS. */ static int -hppa_address_cost (X) - rtx X; +hppa_address_cost (rtx X) { switch (GET_CODE (X)) { @@ -1368,10 +1298,7 @@ hppa_address_cost (X) scanned. In either case, *TOTAL contains the cost result. */ static bool -hppa_rtx_costs (x, code, outer_code, total) - rtx x; - int code, outer_code; - int *total; +hppa_rtx_costs (rtx x, int code, int outer_code, int *total) { switch (code) { @@ -1447,9 +1374,7 @@ hppa_rtx_costs (x, code, outer_code, total) /* Ensure mode of ORIG, a REG rtx, is MODE. Returns either ORIG or a new rtx with the correct mode. */ static inline rtx -force_mode (mode, orig) - enum machine_mode mode; - rtx orig; +force_mode (enum machine_mode mode, rtx orig) { if (mode == GET_MODE (orig)) return orig; @@ -1471,10 +1396,7 @@ force_mode (mode, orig) of SCRATCH_REG in the proper mode. */ int -emit_move_sequence (operands, mode, scratch_reg) - rtx *operands; - enum machine_mode mode; - rtx scratch_reg; +emit_move_sequence (rtx *operands, enum machine_mode mode, rtx scratch_reg) { register rtx operand0 = operands[0]; register rtx operand1 = operands[1]; @@ -1966,8 +1888,7 @@ emit_move_sequence (operands, mode, scratch_reg) it will need a link/runtime reloc). */ int -reloc_needed (exp) - tree exp; +reloc_needed (tree exp) { int reloc = 0; @@ -2011,9 +1932,7 @@ reloc_needed (exp) will be true. */ int -read_only_operand (operand, mode) - rtx operand; - enum machine_mode mode ATTRIBUTE_UNUSED; +read_only_operand (rtx operand, enum machine_mode mode ATTRIBUTE_UNUSED) { if (GET_CODE (operand) == CONST) operand = XEXP (XEXP (operand, 0), 0); @@ -2034,8 +1953,7 @@ read_only_operand (operand, mode) /* Return the best assembler insn template for moving operands[1] into operands[0] as a fullword. */ const char * -singlemove_string (operands) - rtx *operands; +singlemove_string (rtx *operands) { HOST_WIDE_INT intval; @@ -2080,9 +1998,7 @@ singlemove_string (operands) useful for copying IMM to a register using the zdepi instructions. Store the immediate value to insert in OP[0]. */ static void -compute_zdepwi_operands (imm, op) - unsigned HOST_WIDE_INT imm; - unsigned *op; +compute_zdepwi_operands (unsigned HOST_WIDE_INT imm, unsigned *op) { int lsb, len; @@ -2119,9 +2035,7 @@ compute_zdepwi_operands (imm, op) useful for copying IMM to a register using the depdi,z instructions. Store the immediate value to insert in OP[0]. */ void -compute_zdepdi_operands (imm, op) - unsigned HOST_WIDE_INT imm; - unsigned *op; +compute_zdepdi_operands (unsigned HOST_WIDE_INT imm, unsigned *op) { HOST_WIDE_INT lsb, len; @@ -2159,8 +2073,7 @@ compute_zdepdi_operands (imm, op) with operands OPERANDS. */ const char * -output_move_double (operands) - rtx *operands; +output_move_double (rtx *operands) { enum { REGOP, OFFSOP, MEMOP, CNSTOP, RNDOP } optype0, optype1; rtx latehalf[2]; @@ -2435,8 +2348,7 @@ output_move_double (operands) } const char * -output_fp_move_double (operands) - rtx *operands; +output_fp_move_double (rtx *operands) { if (FP_REG_P (operands[0])) { @@ -2474,8 +2386,7 @@ output_fp_move_double (operands) ADDR can be effectively incremented by incrementing REG. */ static rtx -find_addr_reg (addr) - rtx addr; +find_addr_reg (rtx addr) { while (GET_CODE (addr) == PLUS) { @@ -2506,9 +2417,7 @@ find_addr_reg (addr) OPERANDS[6] is another temporary register. */ const char * -output_block_move (operands, size_is_constant) - rtx *operands; - int size_is_constant ATTRIBUTE_UNUSED; +output_block_move (rtx *operands, int size_is_constant ATTRIBUTE_UNUSED) { int align = INTVAL (operands[5]); unsigned long n_bytes = INTVAL (operands[4]); @@ -2607,8 +2516,7 @@ output_block_move (operands, size_is_constant) count insns rather than emit them. */ static int -compute_movstrsi_length (insn) - rtx insn; +compute_movstrsi_length (rtx insn) { rtx pat = PATTERN (insn); unsigned int align = INTVAL (XEXP (XVECEXP (pat, 0, 7), 0)); @@ -2639,8 +2547,7 @@ compute_movstrsi_length (insn) const char * -output_and (operands) - rtx *operands; +output_and (rtx *operands) { if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) != 0) { @@ -2692,8 +2599,7 @@ output_and (operands) /* Return a string to perform a bitwise-and of operands[1] with operands[2] storing the result in operands[0]. */ const char * -output_64bit_and (operands) - rtx *operands; +output_64bit_and (rtx *operands) { if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) != 0) { @@ -2743,8 +2649,7 @@ output_64bit_and (operands) } const char * -output_ior (operands) - rtx *operands; +output_ior (rtx *operands) { unsigned HOST_WIDE_INT mask = INTVAL (operands[2]); int bs0, bs1, p, len; @@ -2774,8 +2679,7 @@ output_ior (operands) /* Return a string to perform a bitwise-and of operands[1] with operands[2] storing the result in operands[0]. */ const char * -output_64bit_ior (operands) - rtx *operands; +output_64bit_ior (rtx *operands) { unsigned HOST_WIDE_INT mask = INTVAL (operands[2]); int bs0, bs1, p, len; @@ -2808,10 +2712,7 @@ output_64bit_ior (operands) be preceded by P%. */ static bool -pa_assemble_integer (x, size, aligned_p) - rtx x; - unsigned int size; - int aligned_p; +pa_assemble_integer (rtx x, unsigned int size, int aligned_p) { if (size == UNITS_PER_WORD && aligned_p && function_label_operand (x, VOIDmode)) @@ -2826,10 +2727,7 @@ pa_assemble_integer (x, size, aligned_p) /* Output an ascii string. */ void -output_ascii (file, p, size) - FILE *file; - const char *p; - int size; +output_ascii (FILE *file, const char *p, int size) { int i; int chars_output; @@ -2896,8 +2794,7 @@ output_ascii (file, p, size) when there's a 1:1 correspondence between fcmp and ftest/fbranch instructions. */ static void -remove_useless_addtr_insns (check_notes) - int check_notes; +remove_useless_addtr_insns (int check_notes) { rtx insn; static int pass = 0; @@ -3108,8 +3005,7 @@ static int local_fsize, save_fregs; in %r1. There is code in expand_hppa_{prologue,epilogue} that knows this.*/ static void -store_reg (reg, disp, base) - int reg, disp, base; +store_reg (int reg, int disp, int base) { rtx insn, dest, src, basereg; @@ -3149,8 +3045,7 @@ store_reg (reg, disp, base) add MOD to BASE. MOD must be <= 8k. */ static void -store_reg_modify (base, reg, mod) - int base, reg, mod; +store_reg_modify (int base, int reg, int mod) { rtx insn, basereg, srcreg, delta; @@ -3197,8 +3092,7 @@ store_reg_modify (base, reg, mod) There is code in expand_hppa_{prologue,epilogue} that knows about this. */ static void -set_reg_plus_d (reg, base, disp, note) - int reg, base, disp, note; +set_reg_plus_d (int reg, int base, int disp, int note) { rtx insn; @@ -3225,9 +3119,7 @@ set_reg_plus_d (reg, base, disp, note) } int -compute_frame_size (size, fregs_live) - int size; - int *fregs_live; +compute_frame_size (int size, int *fregs_live) { int freg_saved = 0; int i, j; @@ -3320,9 +3212,7 @@ compute_frame_size (size, fregs_live) to do this is made in regclass.c. */ static void -pa_output_function_prologue (file, size) - FILE *file; - HOST_WIDE_INT size ATTRIBUTE_UNUSED; +pa_output_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED) { /* The function's label and associated .PROC must never be separated and must be output *after* any profiling declarations @@ -3371,7 +3261,7 @@ pa_output_function_prologue (file, size) } void -hppa_expand_prologue () +hppa_expand_prologue (void) { int merge_sp_adjust_with_store = 0; int size = get_frame_size (); @@ -3664,8 +3554,7 @@ hppa_expand_prologue () Handle case where DISP > 8k by using the add_high_const patterns. */ static void -load_reg (reg, disp, base) - int reg, disp, base; +load_reg (int reg, int disp, int base) { rtx src, dest, basereg; @@ -3690,8 +3579,7 @@ load_reg (reg, disp, base) /* Update the total code bytes output to the text section. */ static void -update_total_code_bytes (nbytes) - int nbytes; +update_total_code_bytes (int nbytes) { if ((TARGET_PORTABLE_RUNTIME || !TARGET_GAS || !TARGET_SOM) && !IN_NAMED_SECTION_P (cfun->decl)) @@ -3720,9 +3608,7 @@ update_total_code_bytes (nbytes) adjustments before returning. */ static void -pa_output_function_epilogue (file, size) - FILE *file; - HOST_WIDE_INT size ATTRIBUTE_UNUSED; +pa_output_function_epilogue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED) { rtx insn = get_last_insn (); @@ -3770,7 +3656,7 @@ pa_output_function_epilogue (file, size) } void -hppa_expand_epilogue () +hppa_expand_epilogue (void) { rtx tmpreg; int offset, i; @@ -3946,14 +3832,13 @@ hppa_expand_epilogue () } rtx -hppa_pic_save_rtx () +hppa_pic_save_rtx (void) { return get_hard_reg_initial_val (word_mode, PIC_OFFSET_TABLE_REGNUM); } void -hppa_profile_hook (label_no) - int label_no; +hppa_profile_hook (int label_no) { rtx begin_label_rtx, call_insn; char begin_label_name[16]; @@ -4039,9 +3924,7 @@ hppa_profile_hook (label_no) return location is in a shared library. */ rtx -return_addr_rtx (count, frameaddr) - int count; - rtx frameaddr; +return_addr_rtx (int count, rtx frameaddr) { rtx label; rtx rp; @@ -4120,7 +4003,7 @@ return_addr_rtx (count, frameaddr) It's only valid if %r2 hasn't been saved into the caller's frame (we're not profiling and %r2 isn't live anywhere). */ int -hppa_can_use_return_insn_p () +hppa_can_use_return_insn_p (void) { return (reload_completed && (compute_frame_size (get_frame_size (), 0) ? 0 : 1) @@ -4129,9 +4012,7 @@ hppa_can_use_return_insn_p () } void -emit_bcond_fp (code, operand0) - enum rtx_code code; - rtx operand0; +emit_bcond_fp (enum rtx_code code, rtx operand0) { emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx, gen_rtx_IF_THEN_ELSE (VOIDmode, @@ -4145,9 +4026,7 @@ emit_bcond_fp (code, operand0) } rtx -gen_cmp_fp (code, operand0, operand1) - enum rtx_code code; - rtx operand0, operand1; +gen_cmp_fp (enum rtx_code code, rtx operand0, rtx operand1) { return gen_rtx_SET (VOIDmode, gen_rtx_REG (CCFPmode, 0), gen_rtx_fmt_ee (code, CCFPmode, operand0, operand1)); @@ -4157,11 +4036,7 @@ gen_cmp_fp (code, operand0, operand1) a dependency LINK or INSN on DEP_INSN. COST is the current cost. */ static int -pa_adjust_cost (insn, link, dep_insn, cost) - rtx insn; - rtx link; - rtx dep_insn; - int cost; +pa_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost) { enum attr_type attr_type; @@ -4349,9 +4224,7 @@ pa_adjust_cost (insn, link, dep_insn, cost) /* Adjust scheduling priorities. We use this to try and keep addil and the next use of %r1 close together. */ static int -pa_adjust_priority (insn, priority) - rtx insn; - int priority; +pa_adjust_priority (rtx insn, int priority) { rtx set = single_set (insn); rtx src, dest; @@ -4383,7 +4256,7 @@ pa_adjust_priority (insn, priority) The 7XXX processors can issue two insns at a time. The 8000 can issue 4 insns at a time. */ static int -pa_issue_rate () +pa_issue_rate (void) { switch (pa_cpu) { @@ -4411,9 +4284,7 @@ pa_issue_rate () Also compute the length of an inline block move here as it is too complicated to express as a length attribute in pa.md. */ int -pa_adjust_insn_length (insn, length) - rtx insn; - int length; +pa_adjust_insn_length (rtx insn, int length) { rtx pat = PATTERN (insn); @@ -4472,10 +4343,7 @@ pa_adjust_insn_length (insn, length) For `%' followed by punctuation, CODE is the punctuation and X is null. */ void -print_operand (file, x, code) - FILE *file; - rtx x; - int code; +print_operand (FILE *file, rtx x, int code) { switch (code) { @@ -4840,10 +4708,7 @@ print_operand (file, x, code) /* output a SYMBOL_REF or a CONST expression involving a SYMBOL_REF. */ void -output_global_address (file, x, round_constant) - FILE *file; - rtx x; - int round_constant; +output_global_address (FILE *file, rtx x, int round_constant) { /* Imagine (high (const (plus ...))). */ @@ -4921,7 +4786,7 @@ output_global_address (file, x, round_constant) There are several possible versions. */ #define aputs(x) fputs(x, asm_out_file) static inline void -pa_file_start_level () +pa_file_start_level (void) { if (TARGET_64BIT) aputs ("\t.LEVEL 2.0w\n"); @@ -4934,8 +4799,7 @@ pa_file_start_level () } static inline void -pa_file_start_space (sortspace) - int sortspace; +pa_file_start_space (int sortspace) { aputs ("\t.SPACE $PRIVATE$"); if (sortspace) @@ -4950,8 +4814,7 @@ pa_file_start_space (sortspace) } static inline void -pa_file_start_file (want_version) - int want_version; +pa_file_start_file (int want_version) { if (write_symbols != NO_DEBUG) { @@ -4962,15 +4825,14 @@ pa_file_start_file (want_version) } static inline void -pa_file_start_mcount (aswhat) - const char *aswhat; +pa_file_start_mcount (const char *aswhat) { if (profile_flag) fprintf (asm_out_file, "\t.IMPORT _mcount,%s\n", aswhat); } static void -pa_elf_file_start () +pa_elf_file_start (void) { pa_file_start_level (); pa_file_start_mcount ("ENTRY"); @@ -4978,7 +4840,7 @@ pa_elf_file_start () } static void -pa_som_file_start () +pa_som_file_start (void) { pa_file_start_level (); pa_file_start_space (0); @@ -4989,7 +4851,7 @@ pa_som_file_start () } static void -pa_linux_file_start () +pa_linux_file_start (void) { pa_file_start_file (1); pa_file_start_level (); @@ -4997,7 +4859,7 @@ pa_linux_file_start () } static void -pa_hpux64_gas_file_start () +pa_hpux64_gas_file_start (void) { pa_file_start_level (); #ifdef ASM_OUTPUT_TYPE_DIRECTIVE @@ -5008,7 +4870,7 @@ pa_hpux64_gas_file_start () } static void -pa_hpux64_hpas_file_start () +pa_hpux64_hpas_file_start (void) { pa_file_start_level (); pa_file_start_space (1); @@ -5018,8 +4880,7 @@ pa_hpux64_hpas_file_start () #undef aputs static struct deferred_plabel * -get_plabel (fname) - const char *fname; +get_plabel (const char *fname) { size_t i; @@ -5059,7 +4920,7 @@ get_plabel (fname) } static void -output_deferred_plabels () +output_deferred_plabels (void) { size_t i; /* If we have deferred plabels, then we need to switch into the data @@ -5085,15 +4946,14 @@ output_deferred_plabels () Keep track of which ones we have used. */ enum millicodes { remI, remU, divI, divU, mulI, end1000 }; -static void import_milli PARAMS ((enum millicodes)); +static void import_milli (enum millicodes); static char imported[(int) end1000]; static const char * const milli_names[] = {"remI", "remU", "divI", "divU", "mulI"}; static const char import_string[] = ".IMPORT $$....,MILLICODE"; #define MILLI_START 10 static void -import_milli (code) - enum millicodes code; +import_milli (enum millicodes code) { char str[sizeof (import_string)]; @@ -5110,9 +4970,7 @@ import_milli (code) the proper registers. */ const char * -output_mul_insn (unsignedp, insn) - int unsignedp ATTRIBUTE_UNUSED; - rtx insn; +output_mul_insn (int unsignedp ATTRIBUTE_UNUSED, rtx insn) { import_milli (mulI); return output_millicode_call (insn, gen_rtx_SYMBOL_REF (Pmode, "$$mulI")); @@ -5131,9 +4989,7 @@ static const int magic_milli[]= {0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, static int div_milli[16][2]; int -div_operand (op, mode) - rtx op; - enum machine_mode mode; +div_operand (rtx op, enum machine_mode mode) { return (mode == SImode && ((GET_CODE (op) == REG && REGNO (op) == 25) @@ -5142,9 +4998,7 @@ div_operand (op, mode) } int -emit_hpdiv_const (operands, unsignedp) - rtx *operands; - int unsignedp; +emit_hpdiv_const (rtx *operands, int unsignedp) { if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) > 0 @@ -5174,10 +5028,7 @@ emit_hpdiv_const (operands, unsignedp) } const char * -output_div_insn (operands, unsignedp, insn) - rtx *operands; - int unsignedp; - rtx insn; +output_div_insn (rtx *operands, int unsignedp, rtx insn) { int divisor; @@ -5231,9 +5082,7 @@ output_div_insn (operands, unsignedp, insn) /* Output a $$rem millicode to do mod. */ const char * -output_mod_insn (unsignedp, insn) - int unsignedp; - rtx insn; +output_mod_insn (int unsignedp, rtx insn) { if (unsignedp) { @@ -5250,8 +5099,7 @@ output_mod_insn (unsignedp, insn) } void -output_arg_descriptor (call_insn) - rtx call_insn; +output_arg_descriptor (rtx call_insn) { const char *arg_regs[4]; enum machine_mode arg_mode; @@ -5335,10 +5183,7 @@ output_arg_descriptor (call_insn) It might be worthwhile to try and make this a leaf function too. */ enum reg_class -secondary_reload_class (class, mode, in) - enum reg_class class; - enum machine_mode mode; - rtx in; +secondary_reload_class (enum reg_class class, enum machine_mode mode, rtx in) { int regno, is_symbolic; @@ -5426,9 +5271,7 @@ secondary_reload_class (class, mode, in) } enum direction -function_arg_padding (mode, type) - enum machine_mode mode; - tree type; +function_arg_padding (enum machine_mode mode, tree type) { if (mode == BLKmode || (TARGET_64BIT && type && AGGREGATE_TYPE_P (type))) @@ -5467,7 +5310,7 @@ function_arg_padding (mode, type) va_list. A pointer to this constructor is returned. */ struct rtx_def * -hppa_builtin_saveregs () +hppa_builtin_saveregs (void) { rtx offset, dest; tree fntype = TREE_TYPE (current_function_decl); @@ -5536,17 +5379,14 @@ hppa_builtin_saveregs () } void -hppa_va_start (valist, nextarg) - tree valist; - rtx nextarg; +hppa_va_start (tree valist, rtx nextarg) { nextarg = expand_builtin_saveregs (); std_expand_builtin_va_start (valist, nextarg); } rtx -hppa_va_arg (valist, type) - tree valist, type; +hppa_va_arg (tree valist, tree type) { HOST_WIDE_INT size = int_size_in_bytes (type); HOST_WIDE_INT ofs; @@ -5654,10 +5494,7 @@ hppa_va_arg (valist, type) parameters. */ const char * -output_cbranch (operands, nullify, length, negated, insn) - rtx *operands; - int nullify, length, negated; - rtx insn; +output_cbranch (rtx *operands, int nullify, int length, int negated, rtx insn) { static char buf[100]; int useskip = 0; @@ -5842,8 +5679,7 @@ output_cbranch (operands, nullify, length, negated, insn) maximum range of a simple branch instruction. */ const char * -output_lbranch (dest, insn) - rtx dest, insn; +output_lbranch (rtx dest, rtx insn) { rtx xoperands[2]; @@ -5961,11 +5797,8 @@ output_lbranch (dest, insn) above. it returns the appropriate output template to emit the branch. */ const char * -output_bb (operands, nullify, length, negated, insn, which) - rtx *operands ATTRIBUTE_UNUSED; - int nullify, length, negated; - rtx insn; - int which; +output_bb (rtx *operands ATTRIBUTE_UNUSED, int nullify, int length, + int negated, rtx insn, int which) { static char buf[100]; int useskip = 0; @@ -6109,11 +5942,8 @@ output_bb (operands, nullify, length, negated, insn, which) branch. */ const char * -output_bvb (operands, nullify, length, negated, insn, which) - rtx *operands ATTRIBUTE_UNUSED; - int nullify, length, negated; - rtx insn; - int which; +output_bvb (rtx *operands ATTRIBUTE_UNUSED, int nullify, int length, + int negated, rtx insn, int which) { static char buf[100]; int useskip = 0; @@ -6255,10 +6085,7 @@ output_bvb (operands, nullify, length, negated, insn, which) Note it may perform some output operations on its own before returning the final output string. */ const char * -output_dbra (operands, insn, which_alternative) - rtx *operands; - rtx insn; - int which_alternative; +output_dbra (rtx *operands, rtx insn, int which_alternative) { /* A conditional branch to the following instruction (eg the delay slot) is @@ -6361,11 +6188,8 @@ output_dbra (operands, insn, which_alternative) Note it may perform some output operations on its own before returning the final output string. */ const char * -output_movb (operands, insn, which_alternative, reverse_comparison) - rtx *operands; - rtx insn; - int which_alternative; - int reverse_comparison; +output_movb (rtx *operands, rtx insn, int which_alternative, + int reverse_comparison) { /* A conditional branch to the following instruction (eg the delay slot) is @@ -6471,8 +6295,7 @@ output_movb (operands, insn, which_alternative, reverse_comparison) /* Copy any FP arguments in INSN into integer registers. */ static void -copy_fp_args (insn) - rtx insn; +copy_fp_args (rtx insn) { rtx link; rtx xoperands[2]; @@ -6515,8 +6338,7 @@ copy_fp_args (insn) /* Compute length of the FP argument copy sequence for INSN. */ static int -length_fp_args (insn) - rtx insn; +length_fp_args (rtx insn) { int length = 0; rtx link; @@ -6553,8 +6375,7 @@ length_fp_args (insn) over estimate the length than to under estimate it. */ int -attr_length_millicode_call (insn) - rtx insn; +attr_length_millicode_call (rtx insn) { unsigned long distance = -1; unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes; @@ -6593,9 +6414,7 @@ attr_length_millicode_call (insn) CALL_DEST is the routine we are calling. */ const char * -output_millicode_call (insn, call_dest) - rtx insn; - rtx call_dest; +output_millicode_call (rtx insn, rtx call_dest) { int attr_length = get_attr_length (insn); int seq_length = dbr_sequence_length (); @@ -6756,9 +6575,7 @@ output_millicode_call (insn, call_dest) these sequences. */ int -attr_length_call (insn, sibcall) - rtx insn; - int sibcall; +attr_length_call (rtx insn, int sibcall) { int local_call; rtx call_dest; @@ -6841,10 +6658,7 @@ attr_length_call (insn, sibcall) CALL_DEST is the routine we are calling. */ const char * -output_call (insn, call_dest, sibcall) - rtx insn; - rtx call_dest; - int sibcall; +output_call (rtx insn, rtx call_dest, int sibcall) { int delay_insn_deleted = 0; int delay_slot_filled = 0; @@ -7137,8 +6951,7 @@ output_call (insn, call_dest, sibcall) the sequence itself. */ int -attr_length_indirect_call (insn) - rtx insn; +attr_length_indirect_call (rtx insn) { unsigned long distance = -1; unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes; @@ -7169,9 +6982,7 @@ attr_length_indirect_call (insn) } const char * -output_indirect_call (insn, call_dest) - rtx insn; - rtx call_dest; +output_indirect_call (rtx insn, rtx call_dest) { rtx xoperands[1]; @@ -7233,8 +7044,7 @@ output_indirect_call (insn, call_dest) within the same translation unit. */ int -attr_length_save_restore_dltp (insn) - rtx insn; +attr_length_save_restore_dltp (rtx insn) { if (find_reg_note (insn, REG_NORETURN, NULL_RTX)) return 0; @@ -7248,8 +7058,7 @@ attr_length_save_restore_dltp (insn) space), and special magic is needed to construct their address. */ void -hppa_encode_label (sym) - rtx sym; +hppa_encode_label (rtx sym) { const char *str = XSTR (sym, 0); int len = strlen (str) + 1; @@ -7263,10 +7072,7 @@ hppa_encode_label (sym) } static void -pa_encode_section_info (decl, rtl, first) - tree decl; - rtx rtl; - int first; +pa_encode_section_info (tree decl, rtx rtl, int first) { if (first && TEXT_SPACE_P (decl)) { @@ -7279,8 +7085,7 @@ pa_encode_section_info (decl, rtl, first) /* This is sort of inverse to pa_encode_section_info. */ static const char * -pa_strip_name_encoding (str) - const char *str; +pa_strip_name_encoding (const char *str) { str += (*str == '@'); str += (*str == '*'); @@ -7288,9 +7093,7 @@ pa_strip_name_encoding (str) } int -function_label_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +function_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return GET_CODE (op) == SYMBOL_REF && FUNCTION_NAME_P (XSTR (op, 0)); } @@ -7299,8 +7102,7 @@ function_label_operand (op, mode) with a constant. Used to keep certain patterns from matching during instruction combination. */ int -is_function_label_plus_const (op) - rtx op; +is_function_label_plus_const (rtx op) { /* Strip off any CONST. */ if (GET_CODE (op) == CONST) @@ -7314,12 +7116,9 @@ is_function_label_plus_const (op) /* Output assembly code for a thunk to FUNCTION. */ static void -pa_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function) - FILE *file; - tree thunk_fndecl; - HOST_WIDE_INT delta; - HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED; - tree function; +pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta, + HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED, + tree function) { const char *fname = XSTR (XEXP (DECL_RTL (function), 0), 0); const char *tname = XSTR (XEXP (DECL_RTL (thunk_fndecl), 0), 0); @@ -7580,9 +7379,7 @@ pa_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function) It is safe to perform a sibcall optimization when the target function will never return. */ static bool -pa_function_ok_for_sibcall (decl, exp) - tree decl; - tree exp ATTRIBUTE_UNUSED; +pa_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED) { /* Sibcalls are ok for TARGET_ELF32 as along as the linker is used in single subspace mode and the call is not indirect. As far as I know, @@ -7609,8 +7406,7 @@ pa_function_ok_for_sibcall (decl, exp) /* Returns 1 if the 6 operands specified in OPERANDS are suitable for use in fmpyadd instructions. */ int -fmpyaddoperands (operands) - rtx *operands; +fmpyaddoperands (rtx *operands) { enum machine_mode mode = GET_MODE (operands[0]); @@ -7667,9 +7463,7 @@ fmpyaddoperands (operands) #if !defined(USE_COLLECT2) static void -pa_asm_out_constructor (symbol, priority) - rtx symbol; - int priority; +pa_asm_out_constructor (rtx symbol, int priority) { if (!function_label_operand (symbol, VOIDmode)) hppa_encode_label (symbol); @@ -7686,9 +7480,7 @@ pa_asm_out_constructor (symbol, priority) } static void -pa_asm_out_destructor (symbol, priority) - rtx symbol; - int priority; +pa_asm_out_destructor (rtx symbol, int priority) { if (!function_label_operand (symbol, VOIDmode)) hppa_encode_label (symbol); @@ -7708,8 +7500,7 @@ pa_asm_out_destructor (symbol, priority) /* Returns 1 if the 6 operands specified in OPERANDS are suitable for use in fmpysub instructions. */ int -fmpysuboperands (operands) - rtx *operands; +fmpysuboperands (rtx *operands) { enum machine_mode mode = GET_MODE (operands[0]); @@ -7763,9 +7554,7 @@ fmpysuboperands (operands) } int -plus_xor_ior_operator (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +plus_xor_ior_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == PLUS || GET_CODE (op) == XOR || GET_CODE (op) == IOR); @@ -7774,8 +7563,7 @@ plus_xor_ior_operator (op, mode) /* Return 1 if the given constant is 2, 4, or 8. These are the valid constants for shadd instructions. */ static int -shadd_constant_p (val) - int val; +shadd_constant_p (int val) { if (val == 2 || val == 4 || val == 8) return 1; @@ -7786,9 +7574,7 @@ shadd_constant_p (val) /* Return 1 if OP is a CONST_INT with the value 2, 4, or 8. These are the valid constant for shadd instructions. */ int -shadd_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +shadd_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == CONST_INT && shadd_constant_p (INTVAL (op))); } @@ -7796,9 +7582,7 @@ shadd_operand (op, mode) /* Return 1 if OP is valid as a base register in a reg + reg address. */ int -basereg_operand (op, mode) - rtx op; - enum machine_mode mode; +basereg_operand (rtx op, enum machine_mode mode) { /* cse will create some unscaled indexed addresses, however; it generally isn't a win on the PA, so avoid creating unscaled @@ -7826,9 +7610,7 @@ basereg_operand (op, mode) /* Return 1 if this operand is anything other than a hard register. */ int -non_hard_reg_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +non_hard_reg_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return ! (GET_CODE (op) == REG && REGNO (op) < FIRST_PSEUDO_REGISTER); } @@ -7836,8 +7618,7 @@ non_hard_reg_operand (op, mode) /* Return 1 if INSN branches forward. Should be using insn_addresses to avoid walking through all the insns... */ static int -forward_branch_p (insn) - rtx insn; +forward_branch_p (rtx insn) { rtx label = JUMP_LABEL (insn); @@ -7854,18 +7635,14 @@ forward_branch_p (insn) /* Return 1 if OP is an equality comparison, else return 0. */ int -eq_neq_comparison_operator (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +eq_neq_comparison_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == EQ || GET_CODE (op) == NE); } /* Return 1 if OP is an operator suitable for use in a movb instruction. */ int -movb_comparison_operator (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +movb_comparison_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == EQ || GET_CODE (op) == NE || GET_CODE (op) == LT || GET_CODE (op) == GE); @@ -7873,8 +7650,7 @@ movb_comparison_operator (op, mode) /* Return 1 if INSN is in the delay slot of a call instruction. */ int -jump_in_call_delay (insn) - rtx insn; +jump_in_call_delay (rtx insn) { if (GET_CODE (insn) != JUMP_INSN) @@ -7897,9 +7673,7 @@ jump_in_call_delay (insn) /* Output an unconditional move and branch insn. */ const char * -output_parallel_movb (operands, length) - rtx *operands; - int length; +output_parallel_movb (rtx *operands, int length) { /* These are the cases in which we win. */ if (length == 4) @@ -7928,9 +7702,7 @@ output_parallel_movb (operands, length) /* Output an unconditional add and branch insn. */ const char * -output_parallel_addb (operands, length) - rtx *operands; - int length; +output_parallel_addb (rtx *operands, int length) { /* To make life easy we want operand0 to be the shared input/output operand and operand1 to be the readonly operand. */ @@ -7961,8 +7733,7 @@ output_parallel_addb (operands, length) the delay slot of the call. */ int -following_call (insn) - rtx insn; +following_call (rtx insn) { if (! TARGET_JUMP_IN_DELAY) return 0; @@ -8020,7 +7791,7 @@ following_call (insn) when using GAS (allows for better link time optimizations). */ static void -pa_reorg () +pa_reorg (void) { rtx insn; @@ -8191,7 +7962,7 @@ pa_reorg () branch length restrictions. */ static void -pa_combine_instructions () +pa_combine_instructions (void) { rtx anchor, new; @@ -8387,10 +8158,8 @@ pa_combine_instructions () } static int -pa_can_combine_p (new, anchor, floater, reversed, dest, src1, src2) - rtx new, anchor, floater; - int reversed; - rtx dest, src1, src2; +pa_can_combine_p (rtx new, rtx anchor, rtx floater, int reversed, rtx dest, + rtx src1, rtx src2) { int insn_code_number; rtx start, end; @@ -8465,8 +8234,7 @@ pa_can_combine_p (new, anchor, floater, reversed, dest, src1, src2) filter out things it will not accept -- SEQUENCE, USE and CLOBBER insns in particular. */ int -insn_refs_are_delayed (insn) - rtx insn; +insn_refs_are_delayed (rtx insn) { return ((GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) != SEQUENCE @@ -8485,9 +8253,7 @@ insn_refs_are_delayed (insn) to match the HP Compiler ABI. */ rtx -function_value (valtype, func) - tree valtype; - tree func ATTRIBUTE_UNUSED; +function_value (tree valtype, tree func ATTRIBUTE_UNUSED) { enum machine_mode valmode; @@ -8535,11 +8301,8 @@ function_value (valtype, func) ??? We might want to restructure this so that it looks more like other ports. */ rtx -function_arg (cum, mode, type, named) - CUMULATIVE_ARGS *cum; - enum machine_mode mode; - tree type; - int named ATTRIBUTE_UNUSED; +function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type, + int named ATTRIBUTE_UNUSED) { int max_arg_words = (TARGET_64BIT ? 8 : 4); int alignment = 0; @@ -8738,11 +8501,8 @@ function_arg (cum, mode, type, named) then this routine should return zero. It is currently called only for the 64-bit target. */ int -function_arg_partial_nregs (cum, mode, type, named) - CUMULATIVE_ARGS *cum; - enum machine_mode mode; - tree type; - int named ATTRIBUTE_UNUSED; +function_arg_partial_nregs (CUMULATIVE_ARGS *cum, enum machine_mode mode, + tree type, int named ATTRIBUTE_UNUSED) { unsigned int max_arg_words = 8; unsigned int offset = 0; @@ -8766,9 +8526,7 @@ function_arg_partial_nregs (cum, mode, type, named) MATCH_OPERATOR to recognize all the branch insns. */ int -cmpib_comparison_operator (op, mode) - register rtx op; - enum machine_mode mode; +cmpib_comparison_operator (rtx op, enum machine_mode mode) { return ((mode == VOIDmode || GET_MODE (op) == mode) && (GET_CODE (op) == EQ @@ -8809,9 +8567,7 @@ pa_select_section (exp, reloc, align) } static void -pa_globalize_label (stream, name) - FILE *stream; - const char *name; +pa_globalize_label (FILE *stream, const char *name) { /* We only handle DATA objects here, functions are globalized in ASM_DECLARE_FUNCTION_NAME. */ |