aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2003-06-15 23:18:41 -0700
committerRichard Henderson <rth@gcc.gnu.org>2003-06-15 23:18:41 -0700
commita5c2492672af53c58d1649e1c0f0291923516f47 (patch)
tree816109e57bd1f1d5e77b2838c0dbe24422b58240 /gcc
parent7b086b11df0c065c531a6cf2aa505504fe9ec8e2 (diff)
downloadgcc-a5c2492672af53c58d1649e1c0f0291923516f47.zip
gcc-a5c2492672af53c58d1649e1c0f0291923516f47.tar.gz
gcc-a5c2492672af53c58d1649e1c0f0291923516f47.tar.bz2
alpha-protos.h, [...]: Update to ISO C.
* config/alpha/alpha-protos.h, config/alpha/elf.h, config/alpha/osf.h, config/alpha/unicosmk.h, config/alpha/vms.h, config/alpha/vms-cc.c, config/alpha/vms-ld.c: Update to ISO C. * config/alpha/alpha.c: Likewise. Move targetm init to end of file. Remove unneeded static function decls. From-SVN: r68000
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/alpha/alpha-protos.h289
-rw-r--r--gcc/config/alpha/alpha.c1439
-rw-r--r--gcc/config/alpha/elf.h4
-rw-r--r--gcc/config/alpha/osf.h7
-rw-r--r--gcc/config/alpha/unicosmk.h6
-rw-r--r--gcc/config/alpha/vms-cc.c61
-rw-r--r--gcc/config/alpha/vms-ld.c52
-rw-r--r--gcc/config/alpha/vms.h4
9 files changed, 707 insertions, 1163 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 563c329..d9c45b1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2003-06-16 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha-protos.h, config/alpha/elf.h,
+ config/alpha/osf.h, config/alpha/unicosmk.h, config/alpha/vms.h,
+ config/alpha/vms-cc.c, config/alpha/vms-ld.c: Update to ISO C.
+ * config/alpha/alpha.c: Likewise. Move targetm init to end of file.
+ Remove unneeded static function decls.
+
2003-06-16 Neil Booth <neil@daikokuya.co.uk>
* c-opts.c (c_common_handle_option): s/on/value/.
diff --git a/gcc/config/alpha/alpha-protos.h b/gcc/config/alpha/alpha-protos.h
index 460207b..9e96d18 100644
--- a/gcc/config/alpha/alpha-protos.h
+++ b/gcc/config/alpha/alpha-protos.h
@@ -20,165 +20,156 @@ Boston, MA 02111-1307, USA. */
extern int alpha_next_sequence_number;
-extern void literal_section PARAMS ((void));
-extern void override_options PARAMS ((void));
-extern int zap_mask PARAMS ((HOST_WIDE_INT));
-extern int direct_return PARAMS ((void));
-
-extern int alpha_sa_size PARAMS ((void));
-extern HOST_WIDE_INT alpha_initial_elimination_offset PARAMS ((unsigned int,
- unsigned int));
-extern int alpha_pv_save_size PARAMS ((void));
-extern int alpha_using_fp PARAMS ((void));
-extern void alpha_write_verstamp PARAMS ((FILE *));
-extern void alpha_expand_prologue PARAMS ((void));
-extern void alpha_expand_epilogue PARAMS ((void));
-extern void alpha_output_filename PARAMS ((FILE *, const char *));
-extern void alpha_output_lineno PARAMS ((FILE *, int));
-
-extern int reg_or_0_operand PARAMS ((rtx, enum machine_mode));
-extern int reg_or_6bit_operand PARAMS ((rtx, enum machine_mode));
-extern int reg_or_8bit_operand PARAMS ((rtx, enum machine_mode));
-extern int reg_or_const_int_operand PARAMS ((rtx, enum machine_mode));
-extern int cint8_operand PARAMS ((rtx, enum machine_mode));
-extern int add_operand PARAMS ((rtx, enum machine_mode));
-extern int sext_add_operand PARAMS ((rtx, enum machine_mode));
-extern int const48_operand PARAMS ((rtx, enum machine_mode));
-extern int and_operand PARAMS ((rtx, enum machine_mode));
-extern int or_operand PARAMS ((rtx, enum machine_mode));
-extern int mode_width_operand PARAMS ((rtx, enum machine_mode));
-extern int mode_mask_operand PARAMS ((rtx, enum machine_mode));
-extern int mul8_operand PARAMS ((rtx, enum machine_mode));
-extern int const0_operand PARAMS ((rtx, enum machine_mode));
-extern int hard_fp_register_operand PARAMS ((rtx, enum machine_mode));
-extern int hard_int_register_operand PARAMS ((rtx, enum machine_mode));
-extern int reg_or_cint_operand PARAMS ((rtx, enum machine_mode));
-extern int some_operand PARAMS ((rtx, enum machine_mode));
-extern int some_ni_operand PARAMS ((rtx, enum machine_mode));
-extern int input_operand PARAMS ((rtx, enum machine_mode));
-extern int samegp_function_operand PARAMS ((rtx, enum machine_mode));
-extern int direct_call_operand PARAMS ((rtx, enum machine_mode));
-extern int local_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int small_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int some_small_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int global_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int dtp16_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int dtp32_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int gotdtp_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int tp16_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int tp32_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int gottp_symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int call_operand PARAMS ((rtx, enum machine_mode));
-extern int symbolic_operand PARAMS ((rtx, enum machine_mode));
-extern int alpha_comparison_operator PARAMS ((rtx, enum machine_mode));
-extern int alpha_zero_comparison_operator PARAMS ((rtx, enum machine_mode));
-extern int alpha_swapped_comparison_operator PARAMS ((rtx, enum machine_mode));
-extern int signed_comparison_operator PARAMS ((rtx, enum machine_mode));
-extern int alpha_fp_comparison_operator PARAMS ((rtx, enum machine_mode));
-extern int divmod_operator PARAMS ((rtx, enum machine_mode));
-extern int aligned_memory_operand PARAMS ((rtx, enum machine_mode));
-extern int unaligned_memory_operand PARAMS ((rtx, enum machine_mode));
-extern int reg_or_unaligned_mem_operand PARAMS ((rtx, enum machine_mode));
-extern int any_memory_operand PARAMS ((rtx, enum machine_mode));
-extern int reg_not_elim_operand PARAMS ((rtx, enum machine_mode));
-extern int normal_memory_operand PARAMS ((rtx, enum machine_mode));
-extern int reg_no_subreg_operand PARAMS ((rtx, enum machine_mode));
-extern int addition_operation PARAMS ((rtx, enum machine_mode));
-
-extern bool alpha_const_ok_for_letter_p PARAMS ((HOST_WIDE_INT, int));
-extern bool alpha_const_double_ok_for_letter_p PARAMS ((rtx, int));
-extern bool alpha_extra_constraint PARAMS ((rtx, int));
-
-extern rtx alpha_tablejump_addr_vec PARAMS ((rtx));
-extern rtx alpha_tablejump_best_label PARAMS ((rtx));
-
-extern bool alpha_legitimate_address_p PARAMS ((enum machine_mode, rtx, int));
-extern rtx alpha_legitimize_address PARAMS ((rtx, rtx, enum machine_mode));
-extern rtx alpha_legitimize_reload_address PARAMS ((rtx, enum machine_mode,
- int, int, int));
-
-extern rtx split_small_symbolic_operand PARAMS ((rtx));
-
-extern void get_aligned_mem PARAMS ((rtx, rtx *, rtx *));
-extern rtx get_unaligned_address PARAMS ((rtx, int));
-extern enum reg_class alpha_preferred_reload_class PARAMS ((rtx,
- enum reg_class));
-extern enum reg_class secondary_reload_class PARAMS ((enum reg_class,
- enum machine_mode,
- rtx, int));
-
-extern void alpha_set_memflags PARAMS ((rtx, rtx));
-extern rtx alpha_emit_set_const PARAMS ((rtx, enum machine_mode,
- HOST_WIDE_INT, int));
-extern rtx alpha_emit_set_long_const PARAMS ((rtx, HOST_WIDE_INT,
- HOST_WIDE_INT));
-extern bool alpha_expand_mov PARAMS ((enum machine_mode, rtx *));
-extern bool alpha_expand_mov_nobwx PARAMS ((enum machine_mode, rtx *));
-extern void alpha_emit_floatuns PARAMS ((rtx[]));
-extern rtx alpha_emit_conditional_move PARAMS ((rtx, enum machine_mode));
-extern void alpha_split_tfmode_pair PARAMS ((rtx[]));
-extern void alpha_split_tfmode_frobsign PARAMS ((rtx[],
- rtx (*)(rtx, rtx, rtx)));
-extern void alpha_expand_unaligned_load PARAMS ((rtx, rtx, HOST_WIDE_INT,
- HOST_WIDE_INT, int));
-extern void alpha_expand_unaligned_store PARAMS ((rtx, rtx, HOST_WIDE_INT,
- HOST_WIDE_INT));
-extern int alpha_expand_block_move PARAMS ((rtx []));
-extern int alpha_expand_block_clear PARAMS ((rtx []));
-extern rtx alpha_expand_zap_mask PARAMS ((HOST_WIDE_INT));
-extern void alpha_expand_builtin_vector_binop PARAMS ((rtx (*)(rtx, rtx, rtx),
- enum machine_mode,
- rtx, rtx, rtx));
-extern rtx alpha_return_addr PARAMS ((int, rtx));
-extern rtx alpha_gp_save_rtx PARAMS ((void));
-extern void print_operand PARAMS ((FILE *, rtx, int));
-extern void print_operand_address PARAMS ((FILE *, rtx));
-extern void alpha_initialize_trampoline PARAMS ((rtx, rtx, rtx, int, int, int));
-
-extern tree alpha_build_va_list PARAMS ((void));
-extern void alpha_setup_incoming_varargs
- PARAMS ((CUMULATIVE_ARGS, enum machine_mode, tree, int *, int));
-extern void alpha_va_start PARAMS ((tree, rtx));
-extern rtx alpha_va_arg PARAMS ((tree, tree));
-extern rtx function_arg PARAMS ((CUMULATIVE_ARGS, enum machine_mode,
- tree, int));
-extern void alpha_start_function PARAMS ((FILE *, const char *, tree));
-extern void alpha_end_function PARAMS ((FILE *, const char *, tree));
-
-extern int alpha_find_lo_sum_using_gp PARAMS ((rtx));
+extern void literal_section (void);
+extern void override_options (void);
+extern int zap_mask (HOST_WIDE_INT);
+extern int direct_return (void);
+
+extern int alpha_sa_size (void);
+extern HOST_WIDE_INT alpha_initial_elimination_offset (unsigned int,
+ unsigned int);
+extern int alpha_pv_save_size (void);
+extern int alpha_using_fp (void);
+extern void alpha_write_verstamp (FILE *);
+extern void alpha_expand_prologue (void);
+extern void alpha_expand_epilogue (void);
+extern void alpha_output_filename (FILE *, const char *);
+extern void alpha_output_lineno (FILE *, int);
+
+extern int reg_or_0_operand (rtx, enum machine_mode);
+extern int reg_or_6bit_operand (rtx, enum machine_mode);
+extern int reg_or_8bit_operand (rtx, enum machine_mode);
+extern int reg_or_const_int_operand (rtx, enum machine_mode);
+extern int cint8_operand (rtx, enum machine_mode);
+extern int add_operand (rtx, enum machine_mode);
+extern int sext_add_operand (rtx, enum machine_mode);
+extern int const48_operand (rtx, enum machine_mode);
+extern int and_operand (rtx, enum machine_mode);
+extern int or_operand (rtx, enum machine_mode);
+extern int mode_width_operand (rtx, enum machine_mode);
+extern int mode_mask_operand (rtx, enum machine_mode);
+extern int mul8_operand (rtx, enum machine_mode);
+extern int const0_operand (rtx, enum machine_mode);
+extern int hard_fp_register_operand (rtx, enum machine_mode);
+extern int hard_int_register_operand (rtx, enum machine_mode);
+extern int reg_or_cint_operand (rtx, enum machine_mode);
+extern int some_operand (rtx, enum machine_mode);
+extern int some_ni_operand (rtx, enum machine_mode);
+extern int input_operand (rtx, enum machine_mode);
+extern int samegp_function_operand (rtx, enum machine_mode);
+extern int direct_call_operand (rtx, enum machine_mode);
+extern int local_symbolic_operand (rtx, enum machine_mode);
+extern int small_symbolic_operand (rtx, enum machine_mode);
+extern int some_small_symbolic_operand (rtx, enum machine_mode);
+extern int global_symbolic_operand (rtx, enum machine_mode);
+extern int dtp16_symbolic_operand (rtx, enum machine_mode);
+extern int dtp32_symbolic_operand (rtx, enum machine_mode);
+extern int gotdtp_symbolic_operand (rtx, enum machine_mode);
+extern int tp16_symbolic_operand (rtx, enum machine_mode);
+extern int tp32_symbolic_operand (rtx, enum machine_mode);
+extern int gottp_symbolic_operand (rtx, enum machine_mode);
+extern int call_operand (rtx, enum machine_mode);
+extern int symbolic_operand (rtx, enum machine_mode);
+extern int alpha_comparison_operator (rtx, enum machine_mode);
+extern int alpha_zero_comparison_operator (rtx, enum machine_mode);
+extern int alpha_swapped_comparison_operator (rtx, enum machine_mode);
+extern int signed_comparison_operator (rtx, enum machine_mode);
+extern int alpha_fp_comparison_operator (rtx, enum machine_mode);
+extern int divmod_operator (rtx, enum machine_mode);
+extern int aligned_memory_operand (rtx, enum machine_mode);
+extern int unaligned_memory_operand (rtx, enum machine_mode);
+extern int reg_or_unaligned_mem_operand (rtx, enum machine_mode);
+extern int any_memory_operand (rtx, enum machine_mode);
+extern int reg_not_elim_operand (rtx, enum machine_mode);
+extern int normal_memory_operand (rtx, enum machine_mode);
+extern int reg_no_subreg_operand (rtx, enum machine_mode);
+extern int addition_operation (rtx, enum machine_mode);
+
+extern bool alpha_const_ok_for_letter_p (HOST_WIDE_INT, int);
+extern bool alpha_const_double_ok_for_letter_p (rtx, int);
+extern bool alpha_extra_constraint (rtx, int);
+
+extern rtx alpha_tablejump_addr_vec (rtx);
+extern rtx alpha_tablejump_best_label (rtx);
+
+extern bool alpha_legitimate_address_p (enum machine_mode, rtx, int);
+extern rtx alpha_legitimize_address (rtx, rtx, enum machine_mode);
+extern rtx alpha_legitimize_reload_address (rtx, enum machine_mode,
+ int, int, int);
+
+extern rtx split_small_symbolic_operand (rtx);
+
+extern void get_aligned_mem (rtx, rtx *, rtx *);
+extern rtx get_unaligned_address (rtx, int);
+extern enum reg_class alpha_preferred_reload_class (rtx, enum reg_class);
+extern enum reg_class secondary_reload_class (enum reg_class,
+ enum machine_mode, rtx, int);
+
+extern void alpha_set_memflags (rtx, rtx);
+extern rtx alpha_emit_set_const (rtx, enum machine_mode, HOST_WIDE_INT, int);
+extern rtx alpha_emit_set_long_const (rtx, HOST_WIDE_INT, HOST_WIDE_INT);
+extern bool alpha_expand_mov (enum machine_mode, rtx *);
+extern bool alpha_expand_mov_nobwx (enum machine_mode, rtx *);
+extern void alpha_emit_floatuns (rtx[]);
+extern rtx alpha_emit_conditional_move (rtx, enum machine_mode);
+extern void alpha_split_tfmode_pair (rtx[]);
+extern void alpha_split_tfmode_frobsign (rtx[], rtx (*)(rtx, rtx, rtx));
+extern void alpha_expand_unaligned_load (rtx, rtx, HOST_WIDE_INT,
+ HOST_WIDE_INT, int);
+extern void alpha_expand_unaligned_store (rtx, rtx, HOST_WIDE_INT,
+ HOST_WIDE_INT);
+extern int alpha_expand_block_move (rtx []);
+extern int alpha_expand_block_clear (rtx []);
+extern rtx alpha_expand_zap_mask (HOST_WIDE_INT);
+extern void alpha_expand_builtin_vector_binop (rtx (*)(rtx, rtx, rtx),
+ enum machine_mode,
+ rtx, rtx, rtx);
+extern rtx alpha_return_addr (int, rtx);
+extern rtx alpha_gp_save_rtx (void);
+extern void print_operand (FILE *, rtx, int);
+extern void print_operand_address (FILE *, rtx);
+extern void alpha_initialize_trampoline (rtx, rtx, rtx, int, int, int);
+
+extern tree alpha_build_va_list (void);
+extern void alpha_setup_incoming_varargs (CUMULATIVE_ARGS, enum machine_mode,
+ tree, int *, int);
+extern void alpha_va_start (tree, rtx);
+extern rtx alpha_va_arg (tree, tree);
+extern rtx function_arg (CUMULATIVE_ARGS, enum machine_mode, tree, int);
+extern void alpha_start_function (FILE *, const char *, tree);
+extern void alpha_end_function (FILE *, const char *, tree);
+
+extern int alpha_find_lo_sum_using_gp (rtx);
#ifdef REAL_VALUE_TYPE
-extern int check_float_value PARAMS ((enum machine_mode,
- REAL_VALUE_TYPE *, int));
+extern int check_float_value (enum machine_mode, REAL_VALUE_TYPE *, int);
#endif
#ifdef RTX_CODE
-extern rtx alpha_emit_conditional_branch PARAMS ((enum rtx_code));
-extern rtx alpha_emit_setcc PARAMS ((enum rtx_code));
-extern int alpha_split_conditional_move PARAMS ((enum rtx_code, rtx, rtx,
- rtx, rtx));
-extern void alpha_emit_xfloating_arith PARAMS ((enum rtx_code, rtx[]));
-extern void alpha_emit_xfloating_cvt PARAMS ((enum rtx_code, rtx[]));
+extern rtx alpha_emit_conditional_branch (enum rtx_code);
+extern rtx alpha_emit_setcc (enum rtx_code);
+extern int alpha_split_conditional_move (enum rtx_code, rtx, rtx, rtx, rtx);
+extern void alpha_emit_xfloating_arith (enum rtx_code, rtx[]);
+extern void alpha_emit_xfloating_cvt (enum rtx_code, rtx[]);
#endif
-extern rtx alpha_need_linkage PARAMS ((const char *, int));
-extern rtx alpha_use_linkage PARAMS ((rtx, tree, int, int));
+extern rtx alpha_need_linkage (const char *, int);
+extern rtx alpha_use_linkage (rtx, tree, int, int);
#if TARGET_ABI_OPEN_VMS
-#ifdef HAVE_MACHINE_MODES
-extern enum avms_arg_type alpha_arg_type PARAMS ((enum machine_mode));
+extern enum avms_arg_type alpha_arg_type (enum machine_mode);
+extern rtx alpha_arg_info_reg_val (CUMULATIVE_ARGS);
#endif
-extern rtx alpha_arg_info_reg_val PARAMS ((CUMULATIVE_ARGS));
-#endif /* TARGET_ABI_OPEN_VMS */
-extern rtx unicosmk_add_call_info_word PARAMS ((rtx));
+extern rtx unicosmk_add_call_info_word (rtx);
#if TARGET_ABI_UNICOSMK
-extern void unicosmk_defer_case_vector PARAMS ((rtx, rtx));
-extern void unicosmk_add_extern PARAMS ((const char *));
-extern void unicosmk_output_align PARAMS ((FILE *, int));
-extern char * unicosmk_text_section PARAMS ((void));
-extern char * unicosmk_data_section PARAMS ((void));
-extern void unicosmk_asm_file_start PARAMS ((FILE *));
-extern void unicosmk_output_common PARAMS ((FILE *, const char *, int, int));
-#endif /* TARGET_ABI_UNICOSMK */
+extern void unicosmk_defer_case_vector (rtx, rtx);
+extern void unicosmk_add_extern (const char *);
+extern void unicosmk_output_align (FILE *, int);
+extern char * unicosmk_text_section (void);
+extern char * unicosmk_data_section (void);
+extern void unicosmk_asm_file_start (FILE *);
+extern void unicosmk_output_common (FILE *, const char *, int, int);
+extern int unicosmk_initial_elimination_offset (int, int);
+#endif
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 4c027b4..47bd3ca 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -172,108 +172,6 @@ static struct alpha_rtx_cost_data const alpha_rtx_cost_data[PROCESSOR_MAX] =
},
};
-/* Declarations of static functions. */
-static bool alpha_function_ok_for_sibcall
- PARAMS ((tree, tree));
-static int tls_symbolic_operand_1
- PARAMS ((rtx, enum machine_mode, int, int));
-static enum tls_model tls_symbolic_operand_type
- PARAMS ((rtx));
-static bool decl_has_samegp
- PARAMS ((tree));
-static bool alpha_in_small_data_p
- PARAMS ((tree));
-static rtx get_tls_get_addr
- PARAMS ((void));
-static int some_small_symbolic_operand_1
- PARAMS ((rtx *, void *));
-static int split_small_symbolic_operand_1
- PARAMS ((rtx *, void *));
-static bool alpha_cannot_copy_insn_p
- PARAMS ((rtx));
-static bool alpha_rtx_costs
- PARAMS ((rtx, int, int, int *));
-static void alpha_set_memflags_1
- PARAMS ((rtx, int, int, int));
-static rtx alpha_emit_set_const_1
- PARAMS ((rtx, enum machine_mode, HOST_WIDE_INT, int));
-static void alpha_expand_unaligned_load_words
- PARAMS ((rtx *out_regs, rtx smem, HOST_WIDE_INT words, HOST_WIDE_INT ofs));
-static void alpha_expand_unaligned_store_words
- PARAMS ((rtx *out_regs, rtx smem, HOST_WIDE_INT words, HOST_WIDE_INT ofs));
-static void alpha_init_builtins
- PARAMS ((void));
-static rtx alpha_expand_builtin
- PARAMS ((tree, rtx, rtx, enum machine_mode, int));
-static void alpha_sa_mask
- PARAMS ((unsigned long *imaskP, unsigned long *fmaskP));
-static int find_lo_sum_using_gp
- PARAMS ((rtx *, void *));
-static int alpha_does_function_need_gp
- PARAMS ((void));
-static int alpha_ra_ever_killed
- PARAMS ((void));
-static const char *get_trap_mode_suffix
- PARAMS ((void));
-static const char *get_round_mode_suffix
- PARAMS ((void));
-static const char *get_some_local_dynamic_name
- PARAMS ((void));
-static int get_some_local_dynamic_name_1
- PARAMS ((rtx *, void *));
-static rtx set_frame_related_p
- PARAMS ((void));
-static const char *alpha_lookup_xfloating_lib_func
- PARAMS ((enum rtx_code));
-static int alpha_compute_xfloating_mode_arg
- PARAMS ((enum rtx_code, enum alpha_fp_rounding_mode));
-static void alpha_emit_xfloating_libcall
- PARAMS ((const char *, rtx, rtx[], int, rtx));
-static rtx alpha_emit_xfloating_compare
- PARAMS ((enum rtx_code, rtx, rtx));
-static void alpha_output_function_end_prologue
- PARAMS ((FILE *));
-static int alpha_adjust_cost
- PARAMS ((rtx, rtx, rtx, int));
-static int alpha_issue_rate
- PARAMS ((void));
-static int alpha_use_dfa_pipeline_interface
- PARAMS ((void));
-static int alpha_multipass_dfa_lookahead
- PARAMS ((void));
-static void alpha_reorg
- PARAMS ((void));
-
-#ifdef OBJECT_FORMAT_ELF
-static void alpha_elf_select_rtx_section
- PARAMS ((enum machine_mode, rtx, unsigned HOST_WIDE_INT));
-#endif
-
-#if TARGET_ABI_OPEN_VMS
-static bool alpha_linkage_symbol_p
- PARAMS ((const char *symname));
-static int alpha_write_one_linkage
- PARAMS ((splay_tree_node, void *));
-static void alpha_write_linkage
- PARAMS ((FILE *, const char *, tree));
-#endif
-
-#if TARGET_ABI_OSF
-static void alpha_output_mi_thunk_osf
- PARAMS ((FILE *, tree, HOST_WIDE_INT, HOST_WIDE_INT, tree));
-#endif
-
-static struct machine_function * alpha_init_machine_status
- PARAMS ((void));
-
-static void unicosmk_output_deferred_case_vectors PARAMS ((FILE *));
-static void unicosmk_gen_dsib PARAMS ((unsigned long *imaskP));
-static void unicosmk_output_ssib PARAMS ((FILE *, const char *));
-static int unicosmk_need_dex PARAMS ((rtx));
-#if TARGET_ABI_UNICOSMK
-static void unicosmk_file_end PARAMS ((void));
-#endif
-
/* Get the number of args of a function in one of two ways. */
#if TARGET_ABI_OPEN_VMS || TARGET_ABI_UNICOSMK
#define NUM_ARGS current_function_args_info.num_args
@@ -283,108 +181,24 @@ static void unicosmk_file_end PARAMS ((void));
#define REG_PV 27
#define REG_RA 26
-
-/* Initialize the GCC target structure. */
-#if TARGET_ABI_OPEN_VMS
-const struct attribute_spec vms_attribute_table[];
-static unsigned int vms_section_type_flags PARAMS ((tree, const char *, int));
-static void vms_asm_named_section PARAMS ((const char *, unsigned int));
-static void vms_asm_out_constructor PARAMS ((rtx, int));
-static void vms_asm_out_destructor PARAMS ((rtx, int));
-# undef TARGET_ATTRIBUTE_TABLE
-# define TARGET_ATTRIBUTE_TABLE vms_attribute_table
-# undef TARGET_SECTION_TYPE_FLAGS
-# define TARGET_SECTION_TYPE_FLAGS vms_section_type_flags
-#endif
-
-#undef TARGET_IN_SMALL_DATA_P
-#define TARGET_IN_SMALL_DATA_P alpha_in_small_data_p
-
-#if TARGET_ABI_UNICOSMK
-static void unicosmk_asm_named_section PARAMS ((const char *, unsigned int));
-static void unicosmk_insert_attributes PARAMS ((tree, tree *));
-static unsigned int unicosmk_section_type_flags PARAMS ((tree, const char *,
- int));
-static void unicosmk_unique_section PARAMS ((tree, int));
-# undef TARGET_INSERT_ATTRIBUTES
-# define TARGET_INSERT_ATTRIBUTES unicosmk_insert_attributes
-# undef TARGET_SECTION_TYPE_FLAGS
-# define TARGET_SECTION_TYPE_FLAGS unicosmk_section_type_flags
-# undef TARGET_ASM_UNIQUE_SECTION
-# define TARGET_ASM_UNIQUE_SECTION unicosmk_unique_section
-# undef TARGET_ASM_GLOBALIZE_LABEL
-# define TARGET_ASM_GLOBALIZE_LABEL hook_void_FILEptr_constcharptr
-#endif
-
-#undef TARGET_ASM_ALIGNED_HI_OP
-#define TARGET_ASM_ALIGNED_HI_OP "\t.word\t"
-#undef TARGET_ASM_ALIGNED_DI_OP
-#define TARGET_ASM_ALIGNED_DI_OP "\t.quad\t"
-
-/* Default unaligned ops are provided for ELF systems. To get unaligned
- data for non-ELF systems, we have to turn off auto alignment. */
-#ifndef OBJECT_FORMAT_ELF
-#undef TARGET_ASM_UNALIGNED_HI_OP
-#define TARGET_ASM_UNALIGNED_HI_OP "\t.align 0\n\t.word\t"
-#undef TARGET_ASM_UNALIGNED_SI_OP
-#define TARGET_ASM_UNALIGNED_SI_OP "\t.align 0\n\t.long\t"
-#undef TARGET_ASM_UNALIGNED_DI_OP
-#define TARGET_ASM_UNALIGNED_DI_OP "\t.align 0\n\t.quad\t"
-#endif
-#ifdef OBJECT_FORMAT_ELF
-#undef TARGET_ASM_SELECT_RTX_SECTION
-#define TARGET_ASM_SELECT_RTX_SECTION alpha_elf_select_rtx_section
-#endif
-
-#undef TARGET_ASM_FUNCTION_END_PROLOGUE
-#define TARGET_ASM_FUNCTION_END_PROLOGUE alpha_output_function_end_prologue
-
-#undef TARGET_SCHED_ADJUST_COST
-#define TARGET_SCHED_ADJUST_COST alpha_adjust_cost
-#undef TARGET_SCHED_ISSUE_RATE
-#define TARGET_SCHED_ISSUE_RATE alpha_issue_rate
-#undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE
-#define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE \
- alpha_use_dfa_pipeline_interface
-#undef TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD
-#define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD \
- alpha_multipass_dfa_lookahead
-
-#undef TARGET_HAVE_TLS
-#define TARGET_HAVE_TLS HAVE_AS_TLS
-
-#undef TARGET_INIT_BUILTINS
-#define TARGET_INIT_BUILTINS alpha_init_builtins
-#undef TARGET_EXPAND_BUILTIN
-#define TARGET_EXPAND_BUILTIN alpha_expand_builtin
-
-#undef TARGET_FUNCTION_OK_FOR_SIBCALL
-#define TARGET_FUNCTION_OK_FOR_SIBCALL alpha_function_ok_for_sibcall
-#undef TARGET_CANNOT_COPY_INSN_P
-#define TARGET_CANNOT_COPY_INSN_P alpha_cannot_copy_insn_p
+/* Declarations of static functions. */
+static struct machine_function *alpha_init_machine_status (void);
+static rtx alpha_emit_xfloating_compare (enum rtx_code, rtx, rtx);
-#if TARGET_ABI_OSF
-#undef TARGET_ASM_OUTPUT_MI_THUNK
-#define TARGET_ASM_OUTPUT_MI_THUNK alpha_output_mi_thunk_osf
-#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#if TARGET_ABI_OPEN_VMS
+static void alpha_write_linkage (FILE *, const char *, tree);
#endif
-#undef TARGET_RTX_COSTS
-#define TARGET_RTX_COSTS alpha_rtx_costs
-#undef TARGET_ADDRESS_COST
-#define TARGET_ADDRESS_COST hook_int_rtx_0
-
-#undef TARGET_MACHINE_DEPENDENT_REORG
-#define TARGET_MACHINE_DEPENDENT_REORG alpha_reorg
-
-struct gcc_target targetm = TARGET_INITIALIZER;
+static void unicosmk_output_deferred_case_vectors (FILE *);
+static void unicosmk_gen_dsib (unsigned long *);
+static void unicosmk_output_ssib (FILE *, const char *);
+static int unicosmk_need_dex (rtx);
/* Parse target option strings. */
void
-override_options ()
+override_options (void)
{
int i;
static const struct cpu_table {
@@ -667,8 +481,7 @@ override_options ()
/* Returns 1 if VALUE is a mask that contains full bytes of zero or ones. */
int
-zap_mask (value)
- HOST_WIDE_INT value;
+zap_mask (HOST_WIDE_INT value)
{
int i;
@@ -684,9 +497,7 @@ zap_mask (value)
register, it must be in the proper mode unless MODE is VOIDmode. */
int
-reg_or_0_operand (op, mode)
- register 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);
}
@@ -695,9 +506,7 @@ reg_or_0_operand (op, mode)
any register. */
int
-reg_or_6bit_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+reg_or_6bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT
&& (unsigned HOST_WIDE_INT) INTVAL (op) < 64)
@@ -708,9 +517,7 @@ reg_or_6bit_operand (op, mode)
/* Return 1 if OP is an 8-bit constant or any register. */
int
-reg_or_8bit_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+reg_or_8bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT
&& (unsigned HOST_WIDE_INT) INTVAL (op) < 0x100)
@@ -720,9 +527,7 @@ reg_or_8bit_operand (op, mode)
/* Return 1 if OP is a constant or any register. */
int
-reg_or_const_int_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+reg_or_const_int_operand (rtx op, enum machine_mode mode)
{
return GET_CODE (op) == CONST_INT || register_operand (op, mode);
}
@@ -730,9 +535,7 @@ reg_or_const_int_operand (op, mode)
/* Return 1 if OP is an 8-bit constant. */
int
-cint8_operand (op, mode)
- register rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+cint8_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
return ((GET_CODE (op) == CONST_INT
&& (unsigned HOST_WIDE_INT) INTVAL (op) < 0x100));
@@ -741,9 +544,7 @@ cint8_operand (op, mode)
/* Return 1 if the operand is a valid second operand to an add insn. */
int
-add_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+add_operand (rtx op, enum machine_mode mode)
{
if (GET_CODE (op) == CONST_INT)
/* Constraints I, J, O and P are covered by K. */
@@ -757,9 +558,7 @@ add_operand (op, mode)
add insn. */
int
-sext_add_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+sext_add_operand (rtx op, enum machine_mode mode)
{
if (GET_CODE (op) == CONST_INT)
return (CONST_OK_FOR_LETTER_P (INTVAL (op), 'I')
@@ -771,9 +570,7 @@ sext_add_operand (op, mode)
/* Return 1 if OP is the constant 4 or 8. */
int
-const48_operand (op, mode)
- register rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+const48_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
return (GET_CODE (op) == CONST_INT
&& (INTVAL (op) == 4 || INTVAL (op) == 8));
@@ -782,9 +579,7 @@ const48_operand (op, mode)
/* Return 1 if OP is a valid first operand to an AND insn. */
int
-and_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+and_operand (rtx op, enum machine_mode mode)
{
if (GET_CODE (op) == CONST_DOUBLE && GET_MODE (op) == VOIDmode)
return (zap_mask (CONST_DOUBLE_LOW (op))
@@ -801,9 +596,7 @@ and_operand (op, mode)
/* Return 1 if OP is a valid first operand to an IOR or XOR insn. */
int
-or_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+or_operand (rtx op, enum machine_mode mode)
{
if (GET_CODE (op) == CONST_INT)
return ((unsigned HOST_WIDE_INT) INTVAL (op) < 0x100
@@ -816,9 +609,7 @@ or_operand (op, mode)
mode smaller than DImode. */
int
-mode_width_operand (op, mode)
- register rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+mode_width_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
return (GET_CODE (op) == CONST_INT
&& (INTVAL (op) == 8 || INTVAL (op) == 16
@@ -829,9 +620,7 @@ mode_width_operand (op, mode)
smaller than an integer. */
int
-mode_mask_operand (op, mode)
- register rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+mode_mask_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
if (GET_CODE (op) == CONST_INT)
{
@@ -858,9 +647,7 @@ mode_mask_operand (op, mode)
/* Return 1 if OP is a multiple of 8 less than 64. */
int
-mul8_operand (op, mode)
- register rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+mul8_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
return (GET_CODE (op) == CONST_INT
&& (unsigned HOST_WIDE_INT) INTVAL (op) < 64
@@ -870,9 +657,7 @@ mul8_operand (op, mode)
/* Return 1 if OP is the zero constant for MODE. */
int
-const0_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+const0_operand (rtx op, enum machine_mode mode)
{
return op == CONST0_RTX (mode);
}
@@ -880,9 +665,7 @@ const0_operand (op, mode)
/* Return 1 if OP is a hard floating-point register. */
int
-hard_fp_register_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+hard_fp_register_operand (rtx op, enum machine_mode mode)
{
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
@@ -895,9 +678,7 @@ hard_fp_register_operand (op, mode)
/* Return 1 if OP is a hard general register. */
int
-hard_int_register_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+hard_int_register_operand (rtx op, enum machine_mode mode)
{
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
@@ -911,9 +692,7 @@ hard_int_register_operand (op, mode)
int
-reg_or_cint_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+reg_or_cint_operand (rtx op, enum machine_mode mode)
{
return (GET_CODE (op) == CONST_INT
|| register_operand (op, mode));
@@ -923,9 +702,7 @@ reg_or_cint_operand (op, mode)
if it is a MEM, it need not be valid. */
int
-some_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+some_operand (rtx op, enum machine_mode mode)
{
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
@@ -956,9 +733,7 @@ some_operand (op, mode)
/* Likewise, but don't accept constants. */
int
-some_ni_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+some_ni_operand (rtx op, enum machine_mode mode)
{
if (GET_MODE (op) != mode && mode != VOIDmode)
return 0;
@@ -972,9 +747,7 @@ some_ni_operand (op, mode)
/* Return 1 if OP is a valid operand for the source of a move insn. */
int
-input_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+input_operand (rtx op, enum machine_mode mode)
{
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
@@ -1039,9 +812,7 @@ input_operand (op, mode)
file, and in the same section as the current function. */
int
-samegp_function_operand (op, mode)
- rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+samegp_function_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
if (GET_CODE (op) != SYMBOL_REF)
return false;
@@ -1070,9 +841,7 @@ samegp_function_operand (op, mode)
/* Return 1 if OP is a SYMBOL_REF for which we can make a call via bsr. */
int
-direct_call_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+direct_call_operand (rtx op, enum machine_mode mode)
{
tree op_decl, cfun_sec, op_sec;
@@ -1124,9 +893,7 @@ direct_call_operand (op, mode)
a (non-tls) variable known to be defined in this file. */
int
-local_symbolic_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+local_symbolic_operand (rtx op, enum machine_mode mode)
{
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
@@ -1149,9 +916,7 @@ local_symbolic_operand (op, mode)
known to be defined in this file in the small data area. */
int
-small_symbolic_operand (op, mode)
- rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+small_symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
if (! TARGET_SMALL_DATA)
return 0;
@@ -1181,9 +946,7 @@ small_symbolic_operand (op, mode)
not known (or known not) to be defined in this file. */
int
-global_symbolic_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+global_symbolic_operand (rtx op, enum machine_mode mode)
{
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
@@ -1202,9 +965,7 @@ global_symbolic_operand (op, mode)
/* Return 1 if OP is a valid operand for the MEM of a CALL insn. */
int
-call_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+call_operand (rtx op, enum machine_mode mode)
{
if (mode != Pmode)
return 0;
@@ -1233,9 +994,7 @@ call_operand (op, mode)
possibly with an offset. */
int
-symbolic_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+symbolic_operand (rtx op, enum machine_mode mode)
{
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
@@ -1252,10 +1011,7 @@ symbolic_operand (op, mode)
/* Return true if OP is valid for a particular TLS relocation. */
static int
-tls_symbolic_operand_1 (op, mode, size, unspec)
- rtx op;
- enum machine_mode mode;
- int size, unspec;
+tls_symbolic_operand_1 (rtx op, enum machine_mode mode, int size, int unspec)
{
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
@@ -1298,9 +1054,7 @@ tls_symbolic_operand_1 (op, mode, size, unspec)
/* Return true if OP is valid for 16-bit DTP relative relocations. */
int
-dtp16_symbolic_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+dtp16_symbolic_operand (rtx op, enum machine_mode mode)
{
return tls_symbolic_operand_1 (op, mode, 16, UNSPEC_DTPREL);
}
@@ -1308,9 +1062,7 @@ dtp16_symbolic_operand (op, mode)
/* Return true if OP is valid for 32-bit DTP relative relocations. */
int
-dtp32_symbolic_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+dtp32_symbolic_operand (rtx op, enum machine_mode mode)
{
return tls_symbolic_operand_1 (op, mode, 32, UNSPEC_DTPREL);
}
@@ -1318,9 +1070,7 @@ dtp32_symbolic_operand (op, mode)
/* Return true if OP is valid for 64-bit DTP relative relocations. */
int
-gotdtp_symbolic_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+gotdtp_symbolic_operand (rtx op, enum machine_mode mode)
{
return tls_symbolic_operand_1 (op, mode, 64, UNSPEC_DTPREL);
}
@@ -1328,9 +1078,7 @@ gotdtp_symbolic_operand (op, mode)
/* Return true if OP is valid for 16-bit TP relative relocations. */
int
-tp16_symbolic_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+tp16_symbolic_operand (rtx op, enum machine_mode mode)
{
return tls_symbolic_operand_1 (op, mode, 16, UNSPEC_TPREL);
}
@@ -1338,9 +1086,7 @@ tp16_symbolic_operand (op, mode)
/* Return true if OP is valid for 32-bit TP relative relocations. */
int
-tp32_symbolic_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+tp32_symbolic_operand (rtx op, enum machine_mode mode)
{
return tls_symbolic_operand_1 (op, mode, 32, UNSPEC_TPREL);
}
@@ -1348,9 +1094,7 @@ tp32_symbolic_operand (op, mode)
/* Return true if OP is valid for 64-bit TP relative relocations. */
int
-gottp_symbolic_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+gottp_symbolic_operand (rtx op, enum machine_mode mode)
{
return tls_symbolic_operand_1 (op, mode, 64, UNSPEC_TPREL);
}
@@ -1359,9 +1103,7 @@ gottp_symbolic_operand (op, mode)
comparisons are valid in which insn. */
int
-alpha_comparison_operator (op, mode)
- register rtx op;
- enum machine_mode mode;
+alpha_comparison_operator (rtx op, enum machine_mode mode)
{
enum rtx_code code = GET_CODE (op);
@@ -1376,9 +1118,7 @@ alpha_comparison_operator (op, mode)
Here we know which comparisons are valid in which insn. */
int
-alpha_zero_comparison_operator (op, mode)
- register rtx op;
- enum machine_mode mode;
+alpha_zero_comparison_operator (rtx op, enum machine_mode mode)
{
enum rtx_code code = GET_CODE (op);
@@ -1392,9 +1132,7 @@ alpha_zero_comparison_operator (op, mode)
/* Return 1 if OP is a valid Alpha swapped comparison operator. */
int
-alpha_swapped_comparison_operator (op, mode)
- register rtx op;
- enum machine_mode mode;
+alpha_swapped_comparison_operator (rtx op, enum machine_mode mode)
{
enum rtx_code code = GET_CODE (op);
@@ -1410,9 +1148,7 @@ alpha_swapped_comparison_operator (op, mode)
/* Return 1 if OP is a signed comparison operation. */
int
-signed_comparison_operator (op, mode)
- register rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+signed_comparison_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
enum rtx_code code = GET_CODE (op);
@@ -1428,9 +1164,7 @@ signed_comparison_operator (op, mode)
Here we know which comparisons are valid in which insn. */
int
-alpha_fp_comparison_operator (op, mode)
- register rtx op;
- enum machine_mode mode;
+alpha_fp_comparison_operator (rtx op, enum machine_mode mode)
{
enum rtx_code code = GET_CODE (op);
@@ -1443,9 +1177,7 @@ alpha_fp_comparison_operator (op, mode)
/* Return 1 if this is a divide or modulus operator. */
int
-divmod_operator (op, mode)
- register rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+divmod_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
switch (GET_CODE (op))
{
@@ -1466,9 +1198,7 @@ divmod_operator (op, mode)
Take into account what reload will do. */
int
-aligned_memory_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+aligned_memory_operand (rtx op, enum machine_mode mode)
{
rtx base;
@@ -1510,9 +1240,7 @@ aligned_memory_operand (op, mode)
/* Similar, but return 1 if OP is a MEM which is not alignable. */
int
-unaligned_memory_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+unaligned_memory_operand (rtx op, enum machine_mode mode)
{
rtx base;
@@ -1554,9 +1282,7 @@ unaligned_memory_operand (op, mode)
/* Return 1 if OP is either a register or an unaligned memory location. */
int
-reg_or_unaligned_mem_operand (op, mode)
- rtx op;
- enum machine_mode mode;
+reg_or_unaligned_mem_operand (rtx op, enum machine_mode mode)
{
return register_operand (op, mode) || unaligned_memory_operand (op, mode);
}
@@ -1564,9 +1290,7 @@ reg_or_unaligned_mem_operand (op, mode)
/* Return 1 if OP is any memory location. During reload a pseudo matches. */
int
-any_memory_operand (op, mode)
- register rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+any_memory_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
return (GET_CODE (op) == MEM
|| (GET_CODE (op) == SUBREG && GET_CODE (SUBREG_REG (op)) == REG)
@@ -1589,9 +1313,7 @@ any_memory_operand (op, mode)
preventing combine from making the optimization. */
int
-reg_not_elim_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+reg_not_elim_operand (rtx op, enum machine_mode mode)
{
rtx inner = op;
if (GET_CODE (op) == SUBREG)
@@ -1607,9 +1329,7 @@ reg_not_elim_operand (op, mode)
will do. */
int
-normal_memory_operand (op, mode)
- register rtx op;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+normal_memory_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
if (reload_in_progress)
{
@@ -1636,9 +1356,7 @@ normal_memory_operand (op, mode)
int->fp conversion. */
int
-reg_no_subreg_operand (op, mode)
- register rtx op;
- enum machine_mode mode;
+reg_no_subreg_operand (rtx op, enum machine_mode mode)
{
if (GET_CODE (op) != REG)
return 0;
@@ -1650,9 +1368,7 @@ reg_no_subreg_operand (op, mode)
elimination. */
int
-addition_operation (op, mode)
- register rtx op;
- enum machine_mode mode;
+addition_operation (rtx op, enum machine_mode mode)
{
if (GET_MODE (op) != mode && mode != VOIDmode)
return 0;
@@ -1668,9 +1384,7 @@ addition_operation (op, mode)
the range defined for C in [I-P]. */
bool
-alpha_const_ok_for_letter_p (value, c)
- HOST_WIDE_INT value;
- int c;
+alpha_const_ok_for_letter_p (HOST_WIDE_INT value, int c)
{
switch (c)
{
@@ -1709,9 +1423,7 @@ alpha_const_ok_for_letter_p (value, c)
matches for C in [GH]. */
bool
-alpha_const_double_ok_for_letter_p (value, c)
- rtx value;
- int c;
+alpha_const_double_ok_for_letter_p (rtx value, int c)
{
switch (c)
{
@@ -1735,9 +1447,7 @@ alpha_const_double_ok_for_letter_p (value, c)
matches for C. */
bool
-alpha_extra_constraint (value, c)
- rtx value;
- int c;
+alpha_extra_constraint (rtx value, int c)
{
switch (c)
{
@@ -1763,7 +1473,7 @@ alpha_extra_constraint (value, c)
/* Return 1 if this function can directly return via $26. */
int
-direct_return ()
+direct_return (void)
{
return (! TARGET_ABI_OPEN_VMS && ! TARGET_ABI_UNICOSMK
&& reload_completed
@@ -1776,8 +1486,7 @@ direct_return ()
/* Return the ADDR_VEC associated with a tablejump insn. */
rtx
-alpha_tablejump_addr_vec (insn)
- rtx insn;
+alpha_tablejump_addr_vec (rtx insn)
{
rtx tmp;
@@ -1796,8 +1505,7 @@ alpha_tablejump_addr_vec (insn)
/* Return the label of the predicted edge, or CONST0_RTX if we don't know. */
rtx
-alpha_tablejump_best_label (insn)
- rtx insn;
+alpha_tablejump_best_label (rtx insn)
{
rtx jump_table = alpha_tablejump_addr_vec (insn);
rtx best_label = NULL_RTX;
@@ -1831,8 +1539,7 @@ alpha_tablejump_best_label (insn)
/* Return the TLS model to use for SYMBOL. */
static enum tls_model
-tls_symbolic_operand_type (symbol)
- rtx symbol;
+tls_symbolic_operand_type (rtx symbol)
{
enum tls_model model;
@@ -1851,8 +1558,7 @@ tls_symbolic_operand_type (symbol)
function in the current unit of translation. */
static bool
-decl_has_samegp (decl)
- tree decl;
+decl_has_samegp (tree decl)
{
/* Functions that are not local can be overridden, and thus may
not share the same gp. */
@@ -1875,8 +1581,7 @@ decl_has_samegp (decl)
/* Return true if EXP should be placed in the small data section. */
static bool
-alpha_in_small_data_p (exp)
- tree exp;
+alpha_in_small_data_p (tree exp)
{
/* We want to merge strings, so we never consider them small data. */
if (TREE_CODE (exp) == STRING_CST)
@@ -1904,8 +1609,7 @@ alpha_in_small_data_p (exp)
#if TARGET_ABI_OPEN_VMS
static bool
-alpha_linkage_symbol_p (symname)
- const char *symname;
+alpha_linkage_symbol_p (const char *symname)
{
int symlen = strlen (symname);
@@ -1934,10 +1638,7 @@ alpha_linkage_symbol_p (symname)
low-order three bits; this is an "unaligned" access. */
bool
-alpha_legitimate_address_p (mode, x, strict)
- enum machine_mode mode;
- rtx x;
- int strict;
+alpha_legitimate_address_p (enum machine_mode mode, rtx x, int strict)
{
/* If this is an ldq_u type address, discard the outer AND. */
if (mode == DImode
@@ -2038,7 +1739,7 @@ alpha_legitimate_address_p (mode, x, strict)
static GTY(()) rtx tls_get_addr_libfunc;
static rtx
-get_tls_get_addr ()
+get_tls_get_addr (void)
{
if (!tls_get_addr_libfunc)
tls_get_addr_libfunc = init_one_libfunc ("__tls_get_addr");
@@ -2049,10 +1750,8 @@ get_tls_get_addr ()
to be legitimate. If we find one, return the new, valid address. */
rtx
-alpha_legitimize_address (x, scratch, mode)
- rtx x;
- rtx scratch;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+alpha_legitimize_address (rtx x, rtx scratch,
+ enum machine_mode mode ATTRIBUTE_UNUSED)
{
HOST_WIDE_INT addend;
@@ -2241,9 +1940,7 @@ alpha_legitimize_address (x, scratch, mode)
into a sibcall. */
static bool
-alpha_function_ok_for_sibcall (decl, exp)
- tree decl;
- tree exp ATTRIBUTE_UNUSED;
+alpha_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
{
/* Can't do indirect tail calls, since we don't know if the target
uses the same GP. */
@@ -2260,18 +1957,8 @@ alpha_function_ok_for_sibcall (decl, exp)
to replace (mem (symbol_ref)) with (mem (lo_sum $29 symbol_ref))
so that sched2 has the proper dependency information. */
-int
-some_small_symbolic_operand (x, mode)
- rtx x;
- enum machine_mode mode ATTRIBUTE_UNUSED;
-{
- return for_each_rtx (&x, some_small_symbolic_operand_1, NULL);
-}
-
static int
-some_small_symbolic_operand_1 (px, data)
- rtx *px;
- void *data ATTRIBUTE_UNUSED;
+some_small_symbolic_operand_1 (rtx *px, void *data ATTRIBUTE_UNUSED)
{
rtx x = *px;
@@ -2282,19 +1969,14 @@ some_small_symbolic_operand_1 (px, data)
return small_symbolic_operand (x, Pmode) != 0;
}
-rtx
-split_small_symbolic_operand (x)
- rtx x;
+int
+some_small_symbolic_operand (rtx x, enum machine_mode mode ATTRIBUTE_UNUSED)
{
- x = copy_insn (x);
- for_each_rtx (&x, split_small_symbolic_operand_1, NULL);
- return x;
+ return for_each_rtx (&x, some_small_symbolic_operand_1, NULL);
}
static int
-split_small_symbolic_operand_1 (px, data)
- rtx *px;
- void *data ATTRIBUTE_UNUSED;
+split_small_symbolic_operand_1 (rtx *px, void *data ATTRIBUTE_UNUSED)
{
rtx x = *px;
@@ -2312,6 +1994,14 @@ split_small_symbolic_operand_1 (px, data)
return 0;
}
+rtx
+split_small_symbolic_operand (rtx x)
+{
+ x = copy_insn (x);
+ for_each_rtx (&x, split_small_symbolic_operand_1, NULL);
+ return x;
+}
+
/* Indicate that INSN cannot be duplicated. This is true for any insn
that we've marked with gpdisp relocs, since those have to stay in
1-1 correspondence with one another.
@@ -2322,8 +2012,7 @@ split_small_symbolic_operand_1 (px, data)
from sched-ebb could move one of the pair of insns to a different block. */
static bool
-alpha_cannot_copy_insn_p (insn)
- rtx insn;
+alpha_cannot_copy_insn_p (rtx insn)
{
rtx pat;
@@ -2359,12 +2048,10 @@ alpha_cannot_copy_insn_p (insn)
operand. If we find one, push the reload and return the new rtx. */
rtx
-alpha_legitimize_reload_address (x, mode, opnum, type, ind_levels)
- rtx x;
- enum machine_mode mode ATTRIBUTE_UNUSED;
- int opnum;
- int type;
- int ind_levels ATTRIBUTE_UNUSED;
+alpha_legitimize_reload_address (rtx x,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ int opnum, int type,
+ int ind_levels ATTRIBUTE_UNUSED)
{
/* We must recognize output that we have already generated ourselves. */
if (GET_CODE (x) == PLUS
@@ -2418,10 +2105,7 @@ alpha_legitimize_reload_address (x, mode, opnum, type, ind_levels)
scanned. In either case, *TOTAL contains the cost result. */
static bool
-alpha_rtx_costs (x, code, outer_code, total)
- rtx x;
- int code, outer_code;
- int *total;
+alpha_rtx_costs (rtx x, int code, int outer_code, int *total)
{
enum machine_mode mode = GET_MODE (x);
bool float_mode_p = FLOAT_MODE_P (mode);
@@ -2563,9 +2247,7 @@ alpha_rtx_costs (x, code, outer_code, total)
of range stack slots. */
void
-get_aligned_mem (ref, paligned_mem, pbitnum)
- rtx ref;
- rtx *paligned_mem, *pbitnum;
+get_aligned_mem (rtx ref, rtx *paligned_mem, rtx *pbitnum)
{
rtx base;
HOST_WIDE_INT offset = 0;
@@ -2603,9 +2285,7 @@ get_aligned_mem (ref, paligned_mem, pbitnum)
Add EXTRA_OFFSET to the address we return. */
rtx
-get_unaligned_address (ref, extra_offset)
- rtx ref;
- int extra_offset;
+get_unaligned_address (rtx ref, int extra_offset)
{
rtx base;
HOST_WIDE_INT offset = 0;
@@ -2638,9 +2318,7 @@ get_unaligned_address (ref, extra_offset)
symbolic constants cannot be dropped to memory. */
enum reg_class
-alpha_preferred_reload_class(x, class)
- rtx x;
- enum reg_class class;
+alpha_preferred_reload_class(rtx x, enum reg_class class)
{
/* Zero is present in any register class. */
if (x == CONST0_RTX (GET_MODE (x)))
@@ -2677,11 +2355,8 @@ alpha_preferred_reload_class(x, class)
from register elimination into a DImode fp register. */
enum reg_class
-secondary_reload_class (class, mode, x, in)
- enum reg_class class;
- enum machine_mode mode;
- rtx x;
- int in;
+secondary_reload_class (enum reg_class class, enum machine_mode mode,
+ rtx x, int in)
{
if ((mode == QImode || mode == HImode) && ! TARGET_BWX)
{
@@ -2719,9 +2394,7 @@ secondary_reload_class (class, mode, x, in)
found in part of X. */
static void
-alpha_set_memflags_1 (x, in_struct_p, volatile_p, unchanging_p)
- rtx x;
- int in_struct_p, volatile_p, unchanging_p;
+alpha_set_memflags_1 (rtx x, int in_struct_p, int volatile_p, int unchanging_p)
{
int i;
@@ -2771,9 +2444,7 @@ alpha_set_memflags_1 (x, in_struct_p, volatile_p, unchanging_p)
a MEM, don't do anything. */
void
-alpha_set_memflags (insn, ref)
- rtx insn;
- rtx ref;
+alpha_set_memflags (rtx insn, rtx ref)
{
int in_struct_p, volatile_p, unchanging_p;
@@ -2793,62 +2464,11 @@ alpha_set_memflags (insn, ref)
alpha_set_memflags_1 (insn, in_struct_p, volatile_p, unchanging_p);
}
-/* Try to output insns to set TARGET equal to the constant C if it can be
- done in less than N insns. Do all computations in MODE. Returns the place
- where the output has been placed if it can be done and the insns have been
- emitted. If it would take more than N insns, zero is returned and no
- insns and emitted. */
-
-rtx
-alpha_emit_set_const (target, mode, c, n)
- rtx target;
- enum machine_mode mode;
- HOST_WIDE_INT c;
- int n;
-{
- rtx result = 0;
- rtx orig_target = target;
- int i;
-
- /* If we can't make any pseudos, TARGET is an SImode hard register, we
- can't load this constant in one insn, do this in DImode. */
- if (no_new_pseudos && mode == SImode
- && GET_CODE (target) == REG && REGNO (target) < FIRST_PSEUDO_REGISTER
- && (result = alpha_emit_set_const_1 (target, mode, c, 1)) == 0)
- {
- target = gen_lowpart (DImode, target);
- mode = DImode;
- }
-
- /* Try 1 insn, then 2, then up to N. */
- for (i = 1; i <= n; i++)
- {
- result = alpha_emit_set_const_1 (target, mode, c, i);
- if (result)
- {
- rtx insn = get_last_insn ();
- rtx set = single_set (insn);
- if (! CONSTANT_P (SET_SRC (set)))
- set_unique_reg_note (get_last_insn (), REG_EQUAL, GEN_INT (c));
- break;
- }
- }
-
- /* Allow for the case where we changed the mode of TARGET. */
- if (result == target)
- result = orig_target;
-
- return result;
-}
-
-/* Internal routine for the above to check for N or below insns. */
+/* Internal routine for alpha_emit_set_const to check for N or below insns. */
static rtx
-alpha_emit_set_const_1 (target, mode, c, n)
- rtx target;
- enum machine_mode mode;
- HOST_WIDE_INT c;
- int n;
+alpha_emit_set_const_1 (rtx target, enum machine_mode mode,
+ HOST_WIDE_INT c, int n)
{
HOST_WIDE_INT new;
int i, bits;
@@ -3030,15 +2650,58 @@ alpha_emit_set_const_1 (target, mode, c, n)
return 0;
}
+/* Try to output insns to set TARGET equal to the constant C if it can be
+ done in less than N insns. Do all computations in MODE. Returns the place
+ where the output has been placed if it can be done and the insns have been
+ emitted. If it would take more than N insns, zero is returned and no
+ insns and emitted. */
+
+rtx
+alpha_emit_set_const (rtx target, enum machine_mode mode,
+ HOST_WIDE_INT c, int n)
+{
+ rtx result = 0;
+ rtx orig_target = target;
+ int i;
+
+ /* If we can't make any pseudos, TARGET is an SImode hard register, we
+ can't load this constant in one insn, do this in DImode. */
+ if (no_new_pseudos && mode == SImode
+ && GET_CODE (target) == REG && REGNO (target) < FIRST_PSEUDO_REGISTER
+ && (result = alpha_emit_set_const_1 (target, mode, c, 1)) == 0)
+ {
+ target = gen_lowpart (DImode, target);
+ mode = DImode;
+ }
+
+ /* Try 1 insn, then 2, then up to N. */
+ for (i = 1; i <= n; i++)
+ {
+ result = alpha_emit_set_const_1 (target, mode, c, i);
+ if (result)
+ {
+ rtx insn = get_last_insn ();
+ rtx set = single_set (insn);
+ if (! CONSTANT_P (SET_SRC (set)))
+ set_unique_reg_note (get_last_insn (), REG_EQUAL, GEN_INT (c));
+ break;
+ }
+ }
+
+ /* Allow for the case where we changed the mode of TARGET. */
+ if (result == target)
+ result = orig_target;
+
+ return result;
+}
+
/* Having failed to find a 3 insn sequence in alpha_emit_set_const,
fall back to a straight forward decomposition. We do this to avoid
exponential run times encountered when looking for longer sequences
with alpha_emit_set_const. */
rtx
-alpha_emit_set_long_const (target, c1, c2)
- rtx target;
- HOST_WIDE_INT c1, c2;
+alpha_emit_set_long_const (rtx target, HOST_WIDE_INT c1, HOST_WIDE_INT c2)
{
HOST_WIDE_INT d1, d2, d3, d4;
@@ -3095,9 +2758,7 @@ alpha_emit_set_long_const (target, c1, c2)
We don't handle non-bwx subword loads here. */
bool
-alpha_expand_mov (mode, operands)
- enum machine_mode mode;
- rtx *operands;
+alpha_expand_mov (enum machine_mode mode, rtx *operands)
{
/* If the output is not a register, the input must be. */
if (GET_CODE (operands[0]) == MEM
@@ -3195,9 +2856,7 @@ alpha_expand_mov (mode, operands)
return true if all work is done. */
bool
-alpha_expand_mov_nobwx (mode, operands)
- enum machine_mode mode;
- rtx *operands;
+alpha_expand_mov_nobwx (enum machine_mode mode, rtx *operands)
{
/* If the output is not a register, the input must be. */
if (GET_CODE (operands[0]) == MEM)
@@ -3350,8 +3009,7 @@ alpha_expand_mov_nobwx (mode, operands)
much lower minimum execution time. */
void
-alpha_emit_floatuns (operands)
- rtx operands[2];
+alpha_emit_floatuns (rtx operands[2])
{
rtx neglab, donelab, i0, i1, f0, in, out;
enum machine_mode mode;
@@ -3385,8 +3043,7 @@ alpha_emit_floatuns (operands)
/* Generate the comparison for a conditional branch. */
rtx
-alpha_emit_conditional_branch (code)
- enum rtx_code code;
+alpha_emit_conditional_branch (enum rtx_code code)
{
enum rtx_code cmp_code, branch_code;
enum machine_mode cmp_mode, branch_mode = VOIDmode;
@@ -3542,8 +3199,7 @@ alpha_emit_conditional_branch (code)
valid. Return the final comparison, or NULL if we can't work. */
rtx
-alpha_emit_setcc (code)
- enum rtx_code code;
+alpha_emit_setcc (enum rtx_code code)
{
enum rtx_code cmp_code;
rtx op0 = alpha_compare.op0, op1 = alpha_compare.op1;
@@ -3654,10 +3310,9 @@ alpha_emit_setcc (code)
If both of the operands that set cc0 are nonzero we must emit
an insn to perform the compare (it can't be done within
the conditional move). */
+
rtx
-alpha_emit_conditional_move (cmp, mode)
- rtx cmp;
- enum machine_mode mode;
+alpha_emit_conditional_move (rtx cmp, enum machine_mode mode)
{
enum rtx_code code = GET_CODE (cmp);
enum rtx_code cmov_code = NE;
@@ -3792,9 +3447,8 @@ alpha_emit_conditional_move (cmp, mode)
cases we wouldn't have before cse. */
int
-alpha_split_conditional_move (code, dest, cond, t_rtx, f_rtx)
- enum rtx_code code;
- rtx dest, cond, t_rtx, f_rtx;
+alpha_split_conditional_move (enum rtx_code code, rtx dest, rtx cond,
+ rtx t_rtx, rtx f_rtx)
{
HOST_WIDE_INT t, f, diff;
enum machine_mode mode;
@@ -3879,8 +3533,7 @@ alpha_split_conditional_move (code, dest, cond, t_rtx, f_rtx)
given operation. */
static const char *
-alpha_lookup_xfloating_lib_func (code)
- enum rtx_code code;
+alpha_lookup_xfloating_lib_func (enum rtx_code code)
{
struct xfloating_op
{
@@ -3966,9 +3619,8 @@ alpha_lookup_xfloating_lib_func (code)
Compute that here. */
static int
-alpha_compute_xfloating_mode_arg (code, round)
- enum rtx_code code;
- enum alpha_fp_rounding_mode round;
+alpha_compute_xfloating_mode_arg (enum rtx_code code,
+ enum alpha_fp_rounding_mode round)
{
int mode;
@@ -4012,12 +3664,8 @@ alpha_compute_xfloating_mode_arg (code, round)
*/
static void
-alpha_emit_xfloating_libcall (func, target, operands, noperands, equiv)
- const char *func;
- rtx target;
- rtx operands[];
- int noperands;
- rtx equiv;
+alpha_emit_xfloating_libcall (const char *func, rtx target, rtx operands[],
+ int noperands, rtx equiv)
{
rtx usage = NULL_RTX, tmp, reg;
int regno = 16, i;
@@ -4084,9 +3732,7 @@ alpha_emit_xfloating_libcall (func, target, operands, noperands, equiv)
/* Emit an X_floating library function call for arithmetic (+,-,*,/). */
void
-alpha_emit_xfloating_arith (code, operands)
- enum rtx_code code;
- rtx operands[];
+alpha_emit_xfloating_arith (enum rtx_code code, rtx operands[])
{
const char *func;
int mode;
@@ -4106,9 +3752,7 @@ alpha_emit_xfloating_arith (code, operands)
/* Emit an X_floating library function call for a comparison. */
static rtx
-alpha_emit_xfloating_compare (code, op0, op1)
- enum rtx_code code;
- rtx op0, op1;
+alpha_emit_xfloating_compare (enum rtx_code code, rtx op0, rtx op1)
{
const char *func;
rtx out, operands[2];
@@ -4130,9 +3774,7 @@ alpha_emit_xfloating_compare (code, op0, op1)
/* Emit an X_floating library function call for a conversion. */
void
-alpha_emit_xfloating_cvt (code, operands)
- enum rtx_code code;
- rtx operands[];
+alpha_emit_xfloating_cvt (enum rtx_code code, rtx operands[])
{
int noperands = 1, mode;
rtx out_operands[2];
@@ -4168,8 +3810,7 @@ alpha_emit_xfloating_cvt (code, operands)
little-endian. */
void
-alpha_split_tfmode_pair (operands)
- rtx operands[4];
+alpha_split_tfmode_pair (rtx operands[4])
{
if (GET_CODE (operands[1]) == REG)
{
@@ -4205,9 +3846,7 @@ alpha_split_tfmode_pair (operands)
logical operation to be performed. */
void
-alpha_split_tfmode_frobsign (operands, operation)
- rtx operands[3];
- rtx (*operation) PARAMS ((rtx, rtx, rtx));
+alpha_split_tfmode_frobsign (rtx operands[3], rtx (*operation) (rtx, rtx, rtx))
{
rtx high_bit = operands[2];
rtx scratch;
@@ -4274,10 +3913,8 @@ alpha_split_tfmode_frobsign (operands, operation)
*/
void
-alpha_expand_unaligned_load (tgt, mem, size, ofs, sign)
- rtx tgt, mem;
- HOST_WIDE_INT size, ofs;
- int sign;
+alpha_expand_unaligned_load (rtx tgt, rtx mem, HOST_WIDE_INT size,
+ HOST_WIDE_INT ofs, int sign)
{
rtx meml, memh, addr, extl, exth, tmp, mema;
enum machine_mode mode;
@@ -4400,9 +4037,8 @@ alpha_expand_unaligned_load (tgt, mem, size, ofs, sign)
/* Similarly, use ins and msk instructions to perform unaligned stores. */
void
-alpha_expand_unaligned_store (dst, src, size, ofs)
- rtx dst, src;
- HOST_WIDE_INT size, ofs;
+alpha_expand_unaligned_store (rtx dst, rtx src,
+ HOST_WIDE_INT size, HOST_WIDE_INT ofs)
{
rtx dstl, dsth, addr, insl, insh, meml, memh, dsta;
@@ -4545,10 +4181,8 @@ alpha_expand_unaligned_store (dst, src, size, ofs)
/* Load an integral number of consecutive unaligned quadwords. */
static void
-alpha_expand_unaligned_load_words (out_regs, smem, words, ofs)
- rtx *out_regs;
- rtx smem;
- HOST_WIDE_INT words, ofs;
+alpha_expand_unaligned_load_words (rtx *out_regs, rtx smem,
+ HOST_WIDE_INT words, HOST_WIDE_INT ofs)
{
rtx const im8 = GEN_INT (-8);
rtx const i64 = GEN_INT (64);
@@ -4629,10 +4263,8 @@ alpha_expand_unaligned_load_words (out_regs, smem, words, ofs)
may be NULL to store zeros. */
static void
-alpha_expand_unaligned_store_words (data_regs, dmem, words, ofs)
- rtx *data_regs;
- rtx dmem;
- HOST_WIDE_INT words, ofs;
+alpha_expand_unaligned_store_words (rtx *data_regs, rtx dmem,
+ HOST_WIDE_INT words, HOST_WIDE_INT ofs)
{
rtx const im8 = GEN_INT (-8);
rtx const i64 = GEN_INT (64);
@@ -4746,8 +4378,7 @@ alpha_expand_unaligned_store_words (data_regs, dmem, words, ofs)
operands[3] is the alignment. */
int
-alpha_expand_block_move (operands)
- rtx operands[];
+alpha_expand_block_move (rtx operands[])
{
rtx bytes_rtx = operands[2];
rtx align_rtx = operands[3];
@@ -5083,8 +4714,7 @@ alpha_expand_block_move (operands)
}
int
-alpha_expand_block_clear (operands)
- rtx operands[];
+alpha_expand_block_clear (rtx operands[])
{
rtx bytes_rtx = operands[1];
rtx align_rtx = operands[2];
@@ -5374,8 +5004,7 @@ alpha_expand_block_clear (operands)
/* Returns a mask so that zap(x, value) == x & mask. */
rtx
-alpha_expand_zap_mask (value)
- HOST_WIDE_INT value;
+alpha_expand_zap_mask (HOST_WIDE_INT value)
{
rtx result;
int i;
@@ -5420,10 +5049,9 @@ alpha_expand_zap_mask (value)
}
void
-alpha_expand_builtin_vector_binop (gen, mode, op0, op1, op2)
- rtx (*gen) PARAMS ((rtx, rtx, rtx));
- enum machine_mode mode;
- rtx op0, op1, op2;
+alpha_expand_builtin_vector_binop (rtx (*gen) (rtx, rtx, rtx),
+ enum machine_mode mode,
+ rtx op0, rtx op1, rtx op2)
{
op0 = gen_lowpart (mode, op0);
@@ -5444,11 +5072,7 @@ alpha_expand_builtin_vector_binop (gen, mode, op0, op1, op2)
a dependency LINK or INSN on DEP_INSN. COST is the current cost. */
static int
-alpha_adjust_cost (insn, link, dep_insn, cost)
- rtx insn;
- rtx link;
- rtx dep_insn;
- int cost;
+alpha_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
{
enum attr_type insn_type, dep_insn_type;
@@ -5479,13 +5103,13 @@ alpha_adjust_cost (insn, link, dep_insn, cost)
/* The number of instructions that can be issued per cycle. */
static int
-alpha_issue_rate ()
+alpha_issue_rate (void)
{
return (alpha_cpu == PROCESSOR_EV4 ? 2 : 4);
}
static int
-alpha_use_dfa_pipeline_interface ()
+alpha_use_dfa_pipeline_interface (void)
{
return true;
}
@@ -5499,7 +5123,7 @@ alpha_use_dfa_pipeline_interface ()
FA/FM. For EV6, an arithmatic insn can be issued to U0/U1/L0/L1. */
static int
-alpha_multipass_dfa_lookahead ()
+alpha_multipass_dfa_lookahead (void)
{
return (alpha_cpu == PROCESSOR_EV6 ? 4 : 2);
}
@@ -5524,7 +5148,7 @@ struct machine_function GTY(())
/* How to allocate a 'struct machine_function'. */
static struct machine_function *
-alpha_init_machine_status ()
+alpha_init_machine_status (void)
{
return ((struct machine_function *)
ggc_alloc_cleared (sizeof (struct machine_function)));
@@ -5535,9 +5159,7 @@ alpha_init_machine_status ()
/* Start the ball rolling with RETURN_ADDR_RTX. */
rtx
-alpha_return_addr (count, frame)
- int count;
- rtx frame ATTRIBUTE_UNUSED;
+alpha_return_addr (int count, rtx frame ATTRIBUTE_UNUSED)
{
if (count != 0)
return const0_rtx;
@@ -5549,7 +5171,7 @@ alpha_return_addr (count, frame)
function. Needed only if TARGET_LD_BUGGY_LDGP. */
rtx
-alpha_gp_save_rtx ()
+alpha_gp_save_rtx (void)
{
rtx r = get_hard_reg_initial_val (DImode, 29);
if (GET_CODE (r) != MEM)
@@ -5558,7 +5180,7 @@ alpha_gp_save_rtx ()
}
static int
-alpha_ra_ever_killed ()
+alpha_ra_ever_killed (void)
{
rtx top;
@@ -5577,7 +5199,7 @@ alpha_ra_ever_killed ()
instruction, or NULL. */
static const char *
-get_trap_mode_suffix ()
+get_trap_mode_suffix (void)
{
enum attr_trap_suffix s = get_attr_trap_suffix (current_output_insn);
@@ -5644,7 +5266,7 @@ get_trap_mode_suffix ()
instruction, or NULL. */
static const char *
-get_round_mode_suffix ()
+get_round_mode_suffix (void)
{
enum attr_round_suffix s = get_attr_round_suffix (current_output_insn);
@@ -5675,8 +5297,23 @@ get_round_mode_suffix ()
/* Locate some local-dynamic symbol still in use by this function
so that we can print its name in some movdi_er_tlsldm pattern. */
+static int
+get_some_local_dynamic_name_1 (rtx *px, void *data ATTRIBUTE_UNUSED)
+{
+ rtx x = *px;
+
+ if (GET_CODE (x) == SYMBOL_REF
+ && SYMBOL_REF_TLS_MODEL (x) == TLS_MODEL_LOCAL_DYNAMIC)
+ {
+ cfun->machine->some_ld_name = XSTR (x, 0);
+ return 1;
+ }
+
+ return 0;
+}
+
static const char *
-get_some_local_dynamic_name ()
+get_some_local_dynamic_name (void)
{
rtx insn;
@@ -5691,30 +5328,10 @@ get_some_local_dynamic_name ()
abort ();
}
-static int
-get_some_local_dynamic_name_1 (px, data)
- rtx *px;
- void *data ATTRIBUTE_UNUSED;
-{
- rtx x = *px;
-
- if (GET_CODE (x) == SYMBOL_REF
- && SYMBOL_REF_TLS_MODEL (x) == TLS_MODEL_LOCAL_DYNAMIC)
- {
- cfun->machine->some_ld_name = XSTR (x, 0);
- return 1;
- }
-
- return 0;
-}
-
/* Print an operand. Recognize special options, documented below. */
void
-print_operand (file, x, code)
- FILE *file;
- rtx x;
- int code;
+print_operand (FILE *file, rtx x, int code)
{
int i;
@@ -6066,9 +5683,7 @@ print_operand (file, x, code)
}
void
-print_operand_address (file, addr)
- FILE *file;
- rtx addr;
+print_operand_address (FILE *file, rtx addr)
{
int basereg = 31;
HOST_WIDE_INT offset = 0;
@@ -6177,9 +5792,8 @@ print_operand_address (file, addr)
Note that the hint field is PC (new) + 4 * bits 13:0. */
void
-alpha_initialize_trampoline (tramp, fnaddr, cxt, fnofs, cxtofs, jmpofs)
- rtx tramp, fnaddr, cxt;
- int fnofs, cxtofs, jmpofs;
+alpha_initialize_trampoline (rtx tramp, rtx fnaddr, rtx cxt,
+ int fnofs, int cxtofs, int jmpofs)
{
rtx temp, temp1, addr;
/* VMS really uses DImode pointers in memory at this point. */
@@ -6244,11 +5858,8 @@ alpha_initialize_trampoline (tramp, fnaddr, cxt, fnofs, cxtofs, jmpofs)
and the rest are pushed. */
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 basereg;
int num_args;
@@ -6359,7 +5970,7 @@ function_arg (cum, mode, type, named)
}
tree
-alpha_build_va_list ()
+alpha_build_va_list (void)
{
tree base, ofs, record, type_decl;
@@ -6405,12 +6016,10 @@ alpha_build_va_list ()
#if TARGET_ABI_OSF
void
-alpha_setup_incoming_varargs(cum, mode, type, pretend_size, no_rtl)
- CUMULATIVE_ARGS cum;
- enum machine_mode mode ATTRIBUTE_UNUSED;
- tree type ATTRIBUTE_UNUSED;
- int *pretend_size;
- int no_rtl;
+alpha_setup_incoming_varargs(CUMULATIVE_ARGS cum,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ tree type ATTRIBUTE_UNUSED,
+ int *pretend_size, int no_rtl)
{
if (cum >= 6)
return;
@@ -6438,9 +6047,7 @@ alpha_setup_incoming_varargs(cum, mode, type, pretend_size, no_rtl)
#endif
void
-alpha_va_start (valist, nextarg)
- tree valist;
- rtx nextarg ATTRIBUTE_UNUSED;
+alpha_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED)
{
HOST_WIDE_INT offset;
tree t, offset_field, base_field;
@@ -6502,8 +6109,7 @@ alpha_va_start (valist, nextarg)
}
rtx
-alpha_va_arg (valist, type)
- tree valist, type;
+alpha_va_arg (tree valist, tree type)
{
rtx addr;
tree t, type_size, rounded_size;
@@ -6763,7 +6369,7 @@ static struct alpha_builtin_def const two_arg_builtins[] = {
};
static void
-alpha_init_builtins ()
+alpha_init_builtins (void)
{
const struct alpha_builtin_def *p;
tree ftype;
@@ -6814,12 +6420,10 @@ alpha_init_builtins ()
IGNORE is nonzero if the value is to be ignored. */
static rtx
-alpha_expand_builtin (exp, target, subtarget, mode, ignore)
- tree exp;
- rtx target;
- rtx subtarget ATTRIBUTE_UNUSED;
- enum machine_mode mode ATTRIBUTE_UNUSED;
- int ignore ATTRIBUTE_UNUSED;
+alpha_expand_builtin (tree exp, rtx target,
+ rtx subtarget ATTRIBUTE_UNUSED,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ int ignore ATTRIBUTE_UNUSED)
{
#define MAX_ARGS 2
@@ -6923,9 +6527,7 @@ static int vms_base_regno;
/* Compute register masks for saved registers. */
static void
-alpha_sa_mask (imaskP, fmaskP)
- unsigned long *imaskP;
- unsigned long *fmaskP;
+alpha_sa_mask (unsigned long *imaskP, unsigned long *fmaskP)
{
unsigned long imask = 0;
unsigned long fmask = 0;
@@ -6980,7 +6582,7 @@ alpha_sa_mask (imaskP, fmaskP)
}
int
-alpha_sa_size ()
+alpha_sa_size (void)
{
unsigned long mask[2];
int sa_size = 0;
@@ -7086,8 +6688,8 @@ alpha_sa_size ()
and the other its replacement, at the start of a routine. */
HOST_WIDE_INT
-alpha_initial_elimination_offset (from, to)
- unsigned int from, to ATTRIBUTE_UNUSED;
+alpha_initial_elimination_offset (unsigned int from,
+ unsigned int to ATTRIBUTE_UNUSED)
{
HOST_WIDE_INT ret;
@@ -7107,14 +6709,14 @@ alpha_initial_elimination_offset (from, to)
}
int
-alpha_pv_save_size ()
+alpha_pv_save_size (void)
{
alpha_sa_size ();
return alpha_procedure_type == PT_STACK ? 8 : 0;
}
int
-alpha_using_fp ()
+alpha_using_fp (void)
{
alpha_sa_size ();
return vms_unwind_regno == HARD_FRAME_POINTER_REGNUM;
@@ -7134,22 +6736,19 @@ const struct attribute_spec vms_attribute_table[] =
#endif
static int
-find_lo_sum_using_gp (px, data)
- rtx *px;
- void *data ATTRIBUTE_UNUSED;
+find_lo_sum_using_gp (rtx *px, void *data ATTRIBUTE_UNUSED)
{
return GET_CODE (*px) == LO_SUM && XEXP (*px, 0) == pic_offset_table_rtx;
}
int
-alpha_find_lo_sum_using_gp (insn)
- rtx insn;
+alpha_find_lo_sum_using_gp (rtx insn)
{
return for_each_rtx (&PATTERN (insn), find_lo_sum_using_gp, NULL) > 0;
}
static int
-alpha_does_function_need_gp ()
+alpha_does_function_need_gp (void)
{
rtx insn;
@@ -7189,8 +6788,7 @@ alpha_does_function_need_gp ()
#endif
void
-alpha_write_verstamp (file)
- FILE *file ATTRIBUTE_UNUSED;
+alpha_write_verstamp (FILE *file ATTRIBUTE_UNUSED)
{
#ifdef MS_STAMP
fprintf (file, "\t.verstamp %d %d\n", MS_STAMP, LS_STAMP);
@@ -7201,7 +6799,7 @@ alpha_write_verstamp (file)
sequences. */
static rtx
-set_frame_related_p ()
+set_frame_related_p (void)
{
rtx seq = get_insns ();
rtx insn;
@@ -7249,7 +6847,7 @@ set_frame_related_p ()
simply allocate stack without saving registers. */
void
-alpha_expand_prologue ()
+alpha_expand_prologue (void)
{
/* Registers to save. */
unsigned long imask = 0;
@@ -7568,10 +7166,8 @@ alpha_expand_prologue ()
/* Output the textual info surrounding the prologue. */
void
-alpha_start_function (file, fnname, decl)
- FILE *file;
- const char *fnname;
- tree decl ATTRIBUTE_UNUSED;
+alpha_start_function (FILE *file, const char *fnname,
+ tree decl ATTRIBUTE_UNUSED)
{
unsigned long imask = 0;
unsigned long fmask = 0;
@@ -7753,8 +7349,7 @@ alpha_start_function (file, fnname, decl)
/* Emit the .prologue note at the scheduled end of the prologue. */
static void
-alpha_output_function_end_prologue (file)
- FILE *file;
+alpha_output_function_end_prologue (FILE *file)
{
if (TARGET_ABI_UNICOSMK)
;
@@ -7776,7 +7371,7 @@ alpha_output_function_end_prologue (file)
#define FRP(exp) exp
void
-alpha_expand_epilogue ()
+alpha_expand_epilogue (void)
{
/* Registers to save. */
unsigned long imask = 0;
@@ -8034,10 +7629,7 @@ alpha_expand_epilogue ()
/* Output the rest of the textual info surrounding the epilogue. */
void
-alpha_end_function (file, fnname, decl)
- FILE *file;
- const char *fnname;
- tree decl ATTRIBUTE_UNUSED;
+alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED)
{
/* End the function. */
if (!TARGET_ABI_UNICOSMK && !flag_inhibit_size_directive)
@@ -8071,12 +7663,9 @@ alpha_end_function (file, fnname, decl)
Not sure why this idea hasn't been explored before... */
static void
-alpha_output_mi_thunk_osf (file, thunk_fndecl, delta, vcall_offset, function)
- FILE *file;
- tree thunk_fndecl ATTRIBUTE_UNUSED;
- HOST_WIDE_INT delta;
- HOST_WIDE_INT vcall_offset;
- tree function;
+alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
+ HOST_WIDE_INT delta, HOST_WIDE_INT vcall_offset,
+ tree function)
{
HOST_WIDE_INT hi, lo;
rtx this, insn, funexp;
@@ -8194,9 +7783,7 @@ long alpha_auto_offset;
/* Emit a new filename to a stream. */
void
-alpha_output_filename (stream, name)
- FILE *stream;
- const char *name;
+alpha_output_filename (FILE *stream, const char *name)
{
static int first_time = TRUE;
char ltext_label_name[100];
@@ -8237,13 +7824,11 @@ alpha_output_filename (stream, name)
fprintf (stream, "\n");
}
}
-
+
/* Emit a linenumber to a stream. */
void
-alpha_output_lineno (stream, line)
- FILE *stream;
- int line;
+alpha_output_lineno (FILE *stream, int line)
{
if (write_symbols == DBX_DEBUG)
{
@@ -8267,18 +7852,12 @@ struct shadow_summary
} used, defd;
};
-static void summarize_insn PARAMS ((rtx, struct shadow_summary *, int));
-static void alpha_handle_trap_shadows PARAMS ((void));
-
/* Summary the effects of expression X on the machine. Update SUM, a pointer
to the summary structure. SET is nonzero if the insn is setting the
object, otherwise zero. */
static void
-summarize_insn (x, sum, set)
- rtx x;
- struct shadow_summary *sum;
- int set;
+summarize_insn (rtx x, struct shadow_summary *sum, int set)
{
const char *format_ptr;
int i, j;
@@ -8432,7 +8011,7 @@ summarize_insn (x, sum, set)
(d) The trap shadow may not include any branch instructions. */
static void
-alpha_handle_trap_shadows ()
+alpha_handle_trap_shadows (void)
{
struct shadow_summary shadow;
int trap_pending, exception_nesting;
@@ -8585,19 +8164,8 @@ enum alphaev5_pipe {
EV5_FM = 64
};
-static enum alphaev4_pipe alphaev4_insn_pipe PARAMS ((rtx));
-static enum alphaev5_pipe alphaev5_insn_pipe PARAMS ((rtx));
-static rtx alphaev4_next_group PARAMS ((rtx, int *, int *));
-static rtx alphaev5_next_group PARAMS ((rtx, int *, int *));
-static rtx alphaev4_next_nop PARAMS ((int *));
-static rtx alphaev5_next_nop PARAMS ((int *));
-
-static void alpha_align_insns
- PARAMS ((unsigned int, rtx (*)(rtx, int *, int *), rtx (*)(int *)));
-
static enum alphaev4_pipe
-alphaev4_insn_pipe (insn)
- rtx insn;
+alphaev4_insn_pipe (rtx insn)
{
if (recog_memoized (insn) < 0)
return EV4_STOP;
@@ -8639,8 +8207,7 @@ alphaev4_insn_pipe (insn)
}
static enum alphaev5_pipe
-alphaev5_insn_pipe (insn)
- rtx insn;
+alphaev5_insn_pipe (rtx insn)
{
if (recog_memoized (insn) < 0)
return EV5_STOP;
@@ -8695,9 +8262,7 @@ alphaev5_insn_pipe (insn)
LEN is, of course, the length of the group in bytes. */
static rtx
-alphaev4_next_group (insn, pin_use, plen)
- rtx insn;
- int *pin_use, *plen;
+alphaev4_next_group (rtx insn, int *pin_use, int *plen)
{
int len, in_use;
@@ -8795,9 +8360,7 @@ alphaev4_next_group (insn, pin_use, plen)
LEN is, of course, the length of the group in bytes. */
static rtx
-alphaev5_next_group (insn, pin_use, plen)
- rtx insn;
- int *pin_use, *plen;
+alphaev5_next_group (rtx insn, int *pin_use, int *plen)
{
int len, in_use;
@@ -8922,8 +8485,7 @@ alphaev5_next_group (insn, pin_use, plen)
}
static rtx
-alphaev4_next_nop (pin_use)
- int *pin_use;
+alphaev4_next_nop (int *pin_use)
{
int in_use = *pin_use;
rtx nop;
@@ -8951,8 +8513,7 @@ alphaev4_next_nop (pin_use)
}
static rtx
-alphaev5_next_nop (pin_use)
- int *pin_use;
+alphaev5_next_nop (int *pin_use)
{
int in_use = *pin_use;
rtx nop;
@@ -8982,10 +8543,9 @@ alphaev5_next_nop (pin_use)
/* The instruction group alignment main loop. */
static void
-alpha_align_insns (max_align, next_group, next_nop)
- unsigned int max_align;
- rtx (*next_group) PARAMS ((rtx, int *, int *));
- rtx (*next_nop) PARAMS ((int *));
+alpha_align_insns (unsigned int max_align,
+ rtx (*next_group) (rtx, int *, int *),
+ rtx (*next_nop) (int *))
{
/* ALIGN is the known alignment for the insn group. */
unsigned int align;
@@ -9108,7 +8668,7 @@ alpha_align_insns (max_align, next_group, next_nop)
/* Machine dependent reorg pass. */
static void
-alpha_reorg ()
+alpha_reorg (void)
{
if (alpha_tp != ALPHA_TP_PROG || flag_exceptions)
alpha_handle_trap_shadows ();
@@ -9133,10 +8693,8 @@ alpha_reorg ()
special we do here is to honor small data. */
static void
-alpha_elf_select_rtx_section (mode, x, align)
- enum machine_mode mode;
- rtx x;
- unsigned HOST_WIDE_INT align;
+alpha_elf_select_rtx_section (enum machine_mode mode, rtx x,
+ unsigned HOST_WIDE_INT align)
{
if (TARGET_SMALL_DATA && GET_MODE_SIZE (mode) <= g_switch_value)
/* ??? Consider using mergable sdata sections. */
@@ -9180,8 +8738,7 @@ static GTY(()) int alpha_funcs_num;
/* Return the VMS argument type corresponding to MODE. */
enum avms_arg_type
-alpha_arg_type (mode)
- enum machine_mode mode;
+alpha_arg_type (enum machine_mode mode)
{
switch (mode)
{
@@ -9198,8 +8755,7 @@ alpha_arg_type (mode)
register value. */
rtx
-alpha_arg_info_reg_val (cum)
- CUMULATIVE_ARGS cum;
+alpha_arg_info_reg_val (CUMULATIVE_ARGS cum)
{
unsigned HOST_WIDE_INT regval = cum.num_args;
int i;
@@ -9217,9 +8773,7 @@ alpha_arg_info_reg_val (cum)
Return an SYMBOL_REF rtx for the linkage. */
rtx
-alpha_need_linkage (name, is_local)
- const char *name;
- int is_local;
+alpha_need_linkage (const char *name, int is_local)
{
splay_tree_node node;
struct alpha_links *al;
@@ -9298,11 +8852,7 @@ alpha_need_linkage (name, is_local)
}
rtx
-alpha_use_linkage (linkage, cfundecl, lflag, rflag)
- rtx linkage;
- tree cfundecl;
- int lflag;
- int rflag;
+alpha_use_linkage (rtx linkage, tree cfundecl, int lflag, int rflag)
{
splay_tree_node cfunnode;
struct alpha_funcs *cfaf;
@@ -9376,9 +8926,7 @@ alpha_use_linkage (linkage, cfundecl, lflag, rflag)
}
static int
-alpha_write_one_linkage (node, data)
- splay_tree_node node;
- void *data;
+alpha_write_one_linkage (splay_tree_node node, void *data)
{
const char *const name = (const char *) node->key;
struct alpha_links *link = (struct alpha_links *) node->value;
@@ -9417,10 +8965,7 @@ alpha_write_one_linkage (node, data)
}
static void
-alpha_write_linkage (stream, funname, fundecl)
- FILE *stream;
- const char *funname;
- tree fundecl;
+alpha_write_linkage (FILE *stream, const char *funname, tree fundecl)
{
splay_tree_node node;
struct alpha_funcs *func;
@@ -9455,10 +9000,7 @@ alpha_write_linkage (stream, funname, fundecl)
#define SECTION_VMS_INITIALIZE (SECTION_VMS_GLOBAL << 1)
static unsigned int
-vms_section_type_flags (decl, name, reloc)
- tree decl;
- const char *name;
- int reloc;
+vms_section_type_flags (tree decl, const char *name, int reloc)
{
unsigned int flags = default_section_type_flags (decl, name, reloc);
@@ -9480,9 +9022,7 @@ vms_section_type_flags (decl, name, reloc)
the section; 0 if the default should be used. */
static void
-vms_asm_named_section (name, flags)
- const char *name;
- unsigned int flags;
+vms_asm_named_section (const char *name, unsigned int flags)
{
fputc ('\n', asm_out_file);
fprintf (asm_out_file, ".section\t%s", name);
@@ -9508,9 +9048,7 @@ vms_asm_named_section (name, flags)
used by a normal pointer. */
static void
-vms_asm_out_constructor (symbol, priority)
- rtx symbol;
- int priority ATTRIBUTE_UNUSED;
+vms_asm_out_constructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
{
ctors_section ();
assemble_align (BITS_PER_WORD);
@@ -9518,9 +9056,7 @@ vms_asm_out_constructor (symbol, priority)
}
static void
-vms_asm_out_destructor (symbol, priority)
- rtx symbol;
- int priority ATTRIBUTE_UNUSED;
+vms_asm_out_destructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
{
dtors_section ();
assemble_align (BITS_PER_WORD);
@@ -9529,19 +9065,17 @@ vms_asm_out_destructor (symbol, priority)
#else
rtx
-alpha_need_linkage (name, is_local)
- const char *name ATTRIBUTE_UNUSED;
- int is_local ATTRIBUTE_UNUSED;
+alpha_need_linkage (const char *name ATTRIBUTE_UNUSED,
+ int is_local ATTRIBUTE_UNUSED)
{
return NULL_RTX;
}
rtx
-alpha_use_linkage (linkage, cfundecl, lflag, rflag)
- rtx linkage ATTRIBUTE_UNUSED;
- tree cfundecl ATTRIBUTE_UNUSED;
- int lflag ATTRIBUTE_UNUSED;
- int rflag ATTRIBUTE_UNUSED;
+alpha_use_linkage (rtx linkage ATTRIBUTE_UNUSED,
+ tree cfundecl ATTRIBUTE_UNUSED,
+ int lflag ATTRIBUTE_UNUSED,
+ int rflag ATTRIBUTE_UNUSED)
{
return NULL_RTX;
}
@@ -9550,21 +9084,11 @@ alpha_use_linkage (linkage, cfundecl, lflag, rflag)
#if TARGET_ABI_UNICOSMK
-static void unicosmk_output_module_name PARAMS ((FILE *));
-static void unicosmk_output_default_externs PARAMS ((FILE *));
-static void unicosmk_output_dex PARAMS ((FILE *));
-static void unicosmk_output_externs PARAMS ((FILE *));
-static void unicosmk_output_addr_vec PARAMS ((FILE *, rtx));
-static const char *unicosmk_ssib_name PARAMS ((void));
-static int unicosmk_special_name PARAMS ((const char *));
-
/* Define the offset between two registers, one to be eliminated, and the
other its replacement, at the start of a routine. */
int
-unicosmk_initial_elimination_offset (from, to)
- int from;
- int to;
+unicosmk_initial_elimination_offset (int from, int to)
{
int fixed_size;
@@ -9592,8 +9116,7 @@ unicosmk_initial_elimination_offset (from, to)
or '$'. */
static void
-unicosmk_output_module_name (file)
- FILE *file;
+unicosmk_output_module_name (FILE *file)
{
const char *name;
@@ -9613,90 +9136,10 @@ unicosmk_output_module_name (file)
output_clean_symbol_name (file, name);
}
-/* Output text that to appear at the beginning of an assembler file. */
-
-void
-unicosmk_asm_file_start (file)
- FILE *file;
-{
- int i;
-
- fputs ("\t.ident\t", file);
- unicosmk_output_module_name (file);
- fputs ("\n\n", file);
-
- /* The Unicos/Mk assembler uses different register names. Instead of trying
- to support them, we simply use micro definitions. */
-
- /* CAM has different register names: rN for the integer register N and fN
- for the floating-point register N. Instead of trying to use these in
- alpha.md, we define the symbols $N and $fN to refer to the appropriate
- register. */
-
- for (i = 0; i < 32; ++i)
- fprintf (file, "$%d <- r%d\n", i, i);
-
- for (i = 0; i < 32; ++i)
- fprintf (file, "$f%d <- f%d\n", i, i);
-
- putc ('\n', file);
-
- /* The .align directive fill unused space with zeroes which does not work
- in code sections. We define the macro 'gcc@code@align' which uses nops
- instead. Note that it assumes that code sections always have the
- biggest possible alignment since . refers to the current offset from
- the beginning of the section. */
-
- fputs ("\t.macro gcc@code@align n\n", file);
- fputs ("gcc@n@bytes = 1 << n\n", file);
- fputs ("gcc@here = . % gcc@n@bytes\n", file);
- fputs ("\t.if ne, gcc@here, 0\n", file);
- fputs ("\t.repeat (gcc@n@bytes - gcc@here) / 4\n", file);
- fputs ("\tbis r31,r31,r31\n", file);
- fputs ("\t.endr\n", file);
- fputs ("\t.endif\n", file);
- fputs ("\t.endm gcc@code@align\n\n", file);
-
- /* Output extern declarations which should always be visible. */
- unicosmk_output_default_externs (file);
-
- /* Open a dummy section. We always need to be inside a section for the
- section-switching code to work correctly.
- ??? This should be a module id or something like that. I still have to
- figure out what the rules for those are. */
- fputs ("\n\t.psect\t$SG00000,data\n", file);
-}
-
-/* Output text to appear at the end of an assembler file. This includes all
- pending extern declarations and DEX expressions. */
-
-static void
-unicosmk_file_end ()
-{
- fputs ("\t.endp\n\n", asm_out_file);
-
- /* Output all pending externs. */
-
- unicosmk_output_externs (asm_out_file);
-
- /* Output dex definitions used for functions whose names conflict with
- register names. */
-
- unicosmk_output_dex (asm_out_file);
-
- fputs ("\t.end\t", asm_out_file);
- unicosmk_output_module_name (asm_out_file);
- putc ('\n', asm_out_file);
-}
-
/* Output the definition of a common variable. */
void
-unicosmk_output_common (file, name, size, align)
- FILE *file;
- const char *name;
- int size;
- int align;
+unicosmk_output_common (FILE *file, const char *name, int size, int align)
{
tree name_tree;
printf ("T3E__: common %s\n", name);
@@ -9717,10 +9160,8 @@ unicosmk_output_common (file, name, size, align)
static int current_section_align;
static unsigned int
-unicosmk_section_type_flags (decl, name, reloc)
- tree decl;
- const char *name;
- int reloc ATTRIBUTE_UNUSED;
+unicosmk_section_type_flags (tree decl, const char *name,
+ int reloc ATTRIBUTE_UNUSED)
{
unsigned int flags = default_section_type_flags (decl, name, reloc);
@@ -9749,9 +9190,7 @@ unicosmk_section_type_flags (decl, name, reloc)
declaration. */
static void
-unicosmk_unique_section (decl, reloc)
- tree decl;
- int reloc ATTRIBUTE_UNUSED;
+unicosmk_unique_section (tree decl, int reloc ATTRIBUTE_UNUSED)
{
const char *name;
int len;
@@ -9792,9 +9231,7 @@ unicosmk_unique_section (decl, reloc)
the section; 0 if the default should be used. */
static void
-unicosmk_asm_named_section (name, flags)
- const char *name;
- unsigned int flags;
+unicosmk_asm_named_section (const char *name, unsigned int flags)
{
const char *kind;
@@ -9822,9 +9259,7 @@ unicosmk_asm_named_section (name, flags)
}
static void
-unicosmk_insert_attributes (decl, attr_ptr)
- tree decl;
- tree *attr_ptr ATTRIBUTE_UNUSED;
+unicosmk_insert_attributes (tree decl, tree *attr_ptr ATTRIBUTE_UNUSED)
{
if (DECL_P (decl)
&& (TREE_PUBLIC (decl) || TREE_CODE (decl) == FUNCTION_DECL))
@@ -9835,9 +9270,7 @@ unicosmk_insert_attributes (decl, attr_ptr)
in code sections because .align fill unused space with zeroes. */
void
-unicosmk_output_align (file, align)
- FILE *file;
- int align;
+unicosmk_output_align (FILE *file, int align)
{
if (inside_function)
fprintf (file, "\tgcc@code@align\t%d\n", align);
@@ -9850,9 +9283,7 @@ unicosmk_output_align (file, align)
does not allow data definitions in code sections. */
void
-unicosmk_defer_case_vector (lab, vec)
- rtx lab;
- rtx vec;
+unicosmk_defer_case_vector (rtx lab, rtx vec)
{
struct machine_function *machine = cfun->machine;
@@ -9864,9 +9295,7 @@ unicosmk_defer_case_vector (lab, vec)
/* Output a case vector. */
static void
-unicosmk_output_addr_vec (file, vec)
- FILE *file;
- rtx vec;
+unicosmk_output_addr_vec (FILE *file, rtx vec)
{
rtx lab = XEXP (vec, 0);
rtx body = XEXP (vec, 1);
@@ -9885,8 +9314,7 @@ unicosmk_output_addr_vec (file, vec)
/* Output current function's deferred case vectors. */
static void
-unicosmk_output_deferred_case_vectors (file)
- FILE *file;
+unicosmk_output_deferred_case_vectors (FILE *file)
{
struct machine_function *machine = cfun->machine;
rtx t;
@@ -9899,13 +9327,48 @@ unicosmk_output_deferred_case_vectors (file)
unicosmk_output_addr_vec (file, XEXP (t, 0));
}
+/* Generate the name of the SSIB section for the current function. */
+
+#define SSIB_PREFIX "__SSIB_"
+#define SSIB_PREFIX_LEN 7
+
+static const char *
+unicosmk_ssib_name (void)
+{
+ /* This is ok since CAM won't be able to deal with names longer than that
+ anyway. */
+
+ static char name[256];
+
+ rtx x;
+ const char *fnname;
+ int len;
+
+ x = DECL_RTL (cfun->decl);
+ if (GET_CODE (x) != MEM)
+ abort ();
+ x = XEXP (x, 0);
+ if (GET_CODE (x) != SYMBOL_REF)
+ abort ();
+ fnname = XSTR (x, 0);
+
+ len = strlen (fnname);
+ if (len + SSIB_PREFIX_LEN > 255)
+ len = 255 - SSIB_PREFIX_LEN;
+
+ strcpy (name, SSIB_PREFIX);
+ strncpy (name + SSIB_PREFIX_LEN, fnname, len);
+ name[len + SSIB_PREFIX_LEN] = 0;
+
+ return name;
+}
+
/* Set up the dynamic subprogram information block (DSIB) and update the
frame pointer register ($15) for subroutines which have a frame. If the
subroutine doesn't have a frame, simply increment $15. */
static void
-unicosmk_gen_dsib (imaskP)
- unsigned long * imaskP;
+unicosmk_gen_dsib (unsigned long *imaskP)
{
if (alpha_procedure_type == PT_STACK)
{
@@ -9968,49 +9431,11 @@ unicosmk_gen_dsib (imaskP)
}
}
-#define SSIB_PREFIX "__SSIB_"
-#define SSIB_PREFIX_LEN 7
-
-/* Generate the name of the SSIB section for the current function. */
-
-static const char *
-unicosmk_ssib_name ()
-{
- /* This is ok since CAM won't be able to deal with names longer than that
- anyway. */
-
- static char name[256];
-
- rtx x;
- const char *fnname;
- int len;
-
- x = DECL_RTL (cfun->decl);
- if (GET_CODE (x) != MEM)
- abort ();
- x = XEXP (x, 0);
- if (GET_CODE (x) != SYMBOL_REF)
- abort ();
- fnname = XSTR (x, 0);
-
- len = strlen (fnname);
- if (len + SSIB_PREFIX_LEN > 255)
- len = 255 - SSIB_PREFIX_LEN;
-
- strcpy (name, SSIB_PREFIX);
- strncpy (name + SSIB_PREFIX_LEN, fnname, len);
- name[len + SSIB_PREFIX_LEN] = 0;
-
- return name;
-}
-
/* Output the static subroutine information block for the current
function. */
static void
-unicosmk_output_ssib (file, fnname)
- FILE *file;
- const char *fnname;
+unicosmk_output_ssib (FILE *file, const char *fnname)
{
int len;
int i;
@@ -10072,8 +9497,7 @@ unicosmk_output_ssib (file, fnname)
X is a CONST_INT or CONST_DOUBLE representing the CIW. */
rtx
-unicosmk_add_call_info_word (x)
- rtx x;
+unicosmk_add_call_info_word (rtx x)
{
rtx node;
struct machine_function *machine = cfun->machine;
@@ -10094,7 +9518,7 @@ unicosmk_add_call_info_word (x)
static char unicosmk_section_buf[100];
char *
-unicosmk_text_section ()
+unicosmk_text_section (void)
{
static int count = 0;
sprintf (unicosmk_section_buf, "\t.endp\n\n\t.psect\tgcc@text___%d,code",
@@ -10103,7 +9527,7 @@ unicosmk_text_section ()
}
char *
-unicosmk_data_section ()
+unicosmk_data_section (void)
{
static int count = 1;
sprintf (unicosmk_section_buf, "\t.endp\n\n\t.psect\tgcc@data___%d,data",
@@ -10132,8 +9556,7 @@ static struct unicosmk_extern_list *unicosmk_extern_head = 0;
/* Output extern declarations which are required for every asm file. */
static void
-unicosmk_output_default_externs (file)
- FILE *file;
+unicosmk_output_default_externs (FILE *file)
{
static const char *const externs[] =
{ "__T3E_MISMATCH" };
@@ -10151,8 +9574,7 @@ unicosmk_output_default_externs (file)
referenced but not defined. */
static void
-unicosmk_output_externs (file)
- FILE *file;
+unicosmk_output_externs (FILE *file)
{
struct unicosmk_extern_list *p;
const char *real_name;
@@ -10184,8 +9606,7 @@ unicosmk_output_externs (file)
/* Record an extern. */
void
-unicosmk_add_extern (name)
- const char *name;
+unicosmk_add_extern (const char *name)
{
struct unicosmk_extern_list *p;
@@ -10221,8 +9642,7 @@ static int unicosmk_dex_count = 0;
/* Check if NAME must be replaced by a DEX expression. */
static int
-unicosmk_special_name (name)
- const char *name;
+unicosmk_special_name (const char *name)
{
if (name[0] == '*')
++name;
@@ -10251,8 +9671,7 @@ unicosmk_special_name (name)
otherwise. */
static int
-unicosmk_need_dex (x)
- rtx x;
+unicosmk_need_dex (rtx x)
{
struct unicosmk_dex *dex;
const char *name;
@@ -10285,8 +9704,7 @@ unicosmk_need_dex (x)
/* Output the DEX definitions for this file. */
static void
-unicosmk_output_dex (file)
- FILE *file;
+unicosmk_output_dex (FILE *file)
{
struct unicosmk_dex *dex;
int i;
@@ -10308,39 +9726,198 @@ unicosmk_output_dex (file)
fprintf (file, "\t.dexend\n");
}
+/* Output text that to appear at the beginning of an assembler file. */
+
+void
+unicosmk_asm_file_start (FILE *file)
+{
+ int i;
+
+ fputs ("\t.ident\t", file);
+ unicosmk_output_module_name (file);
+ fputs ("\n\n", file);
+
+ /* The Unicos/Mk assembler uses different register names. Instead of trying
+ to support them, we simply use micro definitions. */
+
+ /* CAM has different register names: rN for the integer register N and fN
+ for the floating-point register N. Instead of trying to use these in
+ alpha.md, we define the symbols $N and $fN to refer to the appropriate
+ register. */
+
+ for (i = 0; i < 32; ++i)
+ fprintf (file, "$%d <- r%d\n", i, i);
+
+ for (i = 0; i < 32; ++i)
+ fprintf (file, "$f%d <- f%d\n", i, i);
+
+ putc ('\n', file);
+
+ /* The .align directive fill unused space with zeroes which does not work
+ in code sections. We define the macro 'gcc@code@align' which uses nops
+ instead. Note that it assumes that code sections always have the
+ biggest possible alignment since . refers to the current offset from
+ the beginning of the section. */
+
+ fputs ("\t.macro gcc@code@align n\n", file);
+ fputs ("gcc@n@bytes = 1 << n\n", file);
+ fputs ("gcc@here = . % gcc@n@bytes\n", file);
+ fputs ("\t.if ne, gcc@here, 0\n", file);
+ fputs ("\t.repeat (gcc@n@bytes - gcc@here) / 4\n", file);
+ fputs ("\tbis r31,r31,r31\n", file);
+ fputs ("\t.endr\n", file);
+ fputs ("\t.endif\n", file);
+ fputs ("\t.endm gcc@code@align\n\n", file);
+
+ /* Output extern declarations which should always be visible. */
+ unicosmk_output_default_externs (file);
+
+ /* Open a dummy section. We always need to be inside a section for the
+ section-switching code to work correctly.
+ ??? This should be a module id or something like that. I still have to
+ figure out what the rules for those are. */
+ fputs ("\n\t.psect\t$SG00000,data\n", file);
+}
+
+/* Output text to appear at the end of an assembler file. This includes all
+ pending extern declarations and DEX expressions. */
+
+static void
+unicosmk_file_end (void)
+{
+ fputs ("\t.endp\n\n", asm_out_file);
+
+ /* Output all pending externs. */
+
+ unicosmk_output_externs (asm_out_file);
+
+ /* Output dex definitions used for functions whose names conflict with
+ register names. */
+
+ unicosmk_output_dex (asm_out_file);
+
+ fputs ("\t.end\t", asm_out_file);
+ unicosmk_output_module_name (asm_out_file);
+ putc ('\n', asm_out_file);
+}
+
#else
static void
-unicosmk_output_deferred_case_vectors (file)
- FILE *file ATTRIBUTE_UNUSED;
+unicosmk_output_deferred_case_vectors (FILE *file ATTRIBUTE_UNUSED)
{}
static void
-unicosmk_gen_dsib (imaskP)
- unsigned long * imaskP ATTRIBUTE_UNUSED;
+unicosmk_gen_dsib (unsigned long *imaskP ATTRIBUTE_UNUSED)
{}
static void
-unicosmk_output_ssib (file, fnname)
- FILE * file ATTRIBUTE_UNUSED;
- const char * fnname ATTRIBUTE_UNUSED;
+unicosmk_output_ssib (FILE * file ATTRIBUTE_UNUSED,
+ const char * fnname ATTRIBUTE_UNUSED)
{}
rtx
-unicosmk_add_call_info_word (x)
- rtx x ATTRIBUTE_UNUSED;
+unicosmk_add_call_info_word (rtx x ATTRIBUTE_UNUSED)
{
return NULL_RTX;
}
static int
-unicosmk_need_dex (x)
- rtx x ATTRIBUTE_UNUSED;
+unicosmk_need_dex (rtx x ATTRIBUTE_UNUSED)
{
return 0;
}
#endif /* TARGET_ABI_UNICOSMK */
+
+/* Initialize the GCC target structure. */
+#if TARGET_ABI_OPEN_VMS
+# undef TARGET_ATTRIBUTE_TABLE
+# define TARGET_ATTRIBUTE_TABLE vms_attribute_table
+# undef TARGET_SECTION_TYPE_FLAGS
+# define TARGET_SECTION_TYPE_FLAGS vms_section_type_flags
+#endif
+
+#undef TARGET_IN_SMALL_DATA_P
+#define TARGET_IN_SMALL_DATA_P alpha_in_small_data_p
+
+#if TARGET_ABI_UNICOSMK
+# undef TARGET_INSERT_ATTRIBUTES
+# define TARGET_INSERT_ATTRIBUTES unicosmk_insert_attributes
+# undef TARGET_SECTION_TYPE_FLAGS
+# define TARGET_SECTION_TYPE_FLAGS unicosmk_section_type_flags
+# undef TARGET_ASM_UNIQUE_SECTION
+# define TARGET_ASM_UNIQUE_SECTION unicosmk_unique_section
+# undef TARGET_ASM_GLOBALIZE_LABEL
+# define TARGET_ASM_GLOBALIZE_LABEL hook_void_FILEptr_constcharptr
+#endif
+
+#undef TARGET_ASM_ALIGNED_HI_OP
+#define TARGET_ASM_ALIGNED_HI_OP "\t.word\t"
+#undef TARGET_ASM_ALIGNED_DI_OP
+#define TARGET_ASM_ALIGNED_DI_OP "\t.quad\t"
+
+/* Default unaligned ops are provided for ELF systems. To get unaligned
+ data for non-ELF systems, we have to turn off auto alignment. */
+#ifndef OBJECT_FORMAT_ELF
+#undef TARGET_ASM_UNALIGNED_HI_OP
+#define TARGET_ASM_UNALIGNED_HI_OP "\t.align 0\n\t.word\t"
+#undef TARGET_ASM_UNALIGNED_SI_OP
+#define TARGET_ASM_UNALIGNED_SI_OP "\t.align 0\n\t.long\t"
+#undef TARGET_ASM_UNALIGNED_DI_OP
+#define TARGET_ASM_UNALIGNED_DI_OP "\t.align 0\n\t.quad\t"
+#endif
+
+#ifdef OBJECT_FORMAT_ELF
+#undef TARGET_ASM_SELECT_RTX_SECTION
+#define TARGET_ASM_SELECT_RTX_SECTION alpha_elf_select_rtx_section
+#endif
+
+#undef TARGET_ASM_FUNCTION_END_PROLOGUE
+#define TARGET_ASM_FUNCTION_END_PROLOGUE alpha_output_function_end_prologue
+
+#undef TARGET_SCHED_ADJUST_COST
+#define TARGET_SCHED_ADJUST_COST alpha_adjust_cost
+#undef TARGET_SCHED_ISSUE_RATE
+#define TARGET_SCHED_ISSUE_RATE alpha_issue_rate
+#undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE
+#define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE \
+ alpha_use_dfa_pipeline_interface
+#undef TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD
+#define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD \
+ alpha_multipass_dfa_lookahead
+
+#undef TARGET_HAVE_TLS
+#define TARGET_HAVE_TLS HAVE_AS_TLS
+
+#undef TARGET_INIT_BUILTINS
+#define TARGET_INIT_BUILTINS alpha_init_builtins
+#undef TARGET_EXPAND_BUILTIN
+#define TARGET_EXPAND_BUILTIN alpha_expand_builtin
+
+#undef TARGET_FUNCTION_OK_FOR_SIBCALL
+#define TARGET_FUNCTION_OK_FOR_SIBCALL alpha_function_ok_for_sibcall
+#undef TARGET_CANNOT_COPY_INSN_P
+#define TARGET_CANNOT_COPY_INSN_P alpha_cannot_copy_insn_p
+
+#if TARGET_ABI_OSF
+#undef TARGET_ASM_OUTPUT_MI_THUNK
+#define TARGET_ASM_OUTPUT_MI_THUNK alpha_output_mi_thunk_osf
+#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#endif
+
+#undef TARGET_RTX_COSTS
+#define TARGET_RTX_COSTS alpha_rtx_costs
+#undef TARGET_ADDRESS_COST
+#define TARGET_ADDRESS_COST hook_int_rtx_0
+
+#undef TARGET_MACHINE_DEPENDENT_REORG
+#define TARGET_MACHINE_DEPENDENT_REORG alpha_reorg
+
+struct gcc_target targetm = TARGET_INITIALIZER;
+
+
#include "gt-alpha.h"
diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h
index 2ee0f07..986d5ed 100644
--- a/gcc/config/alpha/elf.h
+++ b/gcc/config/alpha/elf.h
@@ -231,8 +231,8 @@ do { \
SECTION_FUNCTION_TEMPLATE(sbss_section, in_sbss, SBSS_SECTION_ASM_OP) \
SECTION_FUNCTION_TEMPLATE(sdata_section, in_sdata, SDATA_SECTION_ASM_OP)
-extern void sbss_section PARAMS ((void));
-extern void sdata_section PARAMS ((void));
+extern void sbss_section (void);
+extern void sdata_section (void);
#undef SECTION_FUNCTION_TEMPLATE
#define SECTION_FUNCTION_TEMPLATE(FN, ENUM, OP) \
diff --git a/gcc/config/alpha/osf.h b/gcc/config/alpha/osf.h
index 2be2a42..529a9a3 100644
--- a/gcc/config/alpha/osf.h
+++ b/gcc/config/alpha/osf.h
@@ -155,13 +155,10 @@ Boston, MA 02111-1307, USA. */
/* Attempt to turn on access permissions for the stack. */
#define TRANSFER_FROM_TRAMPOLINE \
-extern void __enable_execute_stack PARAMS ((void *)); \
- \
void \
-__enable_execute_stack (addr) \
- void *addr; \
+__enable_execute_stack (void *addr) \
{ \
- extern int mprotect PARAMS ((const void *, size_t, int)); \
+ extern int mprotect (const void *, size_t, int); \
long size = getpagesize (); \
long mask = ~(size-1); \
char *page = (char *) (((long) addr) & mask); \
diff --git a/gcc/config/alpha/unicosmk.h b/gcc/config/alpha/unicosmk.h
index fc0a970..a5ed941 100644
--- a/gcc/config/alpha/unicosmk.h
+++ b/gcc/config/alpha/unicosmk.h
@@ -102,8 +102,6 @@ Boston, MA 02111-1307, USA. */
other its replacement, at the start of a routine. This is somewhat
complicated on the T3E which is why we use a function. */
-extern int unicosmk_initial_elimination_offset PARAMS ((int, int));
-
#undef INITIAL_ELIMINATION_OFFSET
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
do { \
@@ -319,7 +317,7 @@ do { fprintf (FILE, "\tbr $1,0\n"); \
COMMON_SECTION \
SSIB_SECTION
-extern void common_section PARAMS ((void));
+extern void common_section (void);
#define COMMON_SECTION \
void \
common_section () \
@@ -327,7 +325,7 @@ common_section () \
in_section = in_common; \
}
-extern void ssib_section PARAMS ((void));
+extern void ssib_section (void);
#define SSIB_SECTION \
void \
ssib_section () \
diff --git a/gcc/config/alpha/vms-cc.c b/gcc/config/alpha/vms-cc.c
index 07b668f..faf98dd 100644
--- a/gcc/config/alpha/vms-cc.c
+++ b/gcc/config/alpha/vms-cc.c
@@ -1,5 +1,5 @@
/* VMS DEC C wrapper.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GNU CC.
@@ -34,50 +34,47 @@ Boston, MA 02111-1307, USA. */
#define PATH_SEPARATOR_STR ","
/* These can be set by command line arguments */
-int verbose = 0;
-int save_temps = 0;
+static int verbose = 0;
+static int save_temps = 0;
-int comp_arg_max = -1;
-const char **comp_args = 0;
-int comp_arg_index = -1;
-char *objfilename = 0;
+static int comp_arg_max = -1;
+static const char **comp_args = 0;
+static int comp_arg_index = -1;
+static char *objfilename = 0;
-char *system_search_dirs = (char *) "";
-char *search_dirs;
+static char *system_search_dirs = (char *) "";
+static char *search_dirs;
-char *default_defines = (char *) "";
-char *defines;
+static char *default_defines = (char *) "";
+static char *defines;
/* Translate a Unix syntax directory specification into VMS syntax.
If indicators of VMS syntax found, return input string. */
-static char *to_host_dir_spec PARAMS ((char *));
+static char *to_host_dir_spec (char *);
/* Translate a Unix syntax file specification into VMS syntax.
If indicators of VMS syntax found, return input string. */
-static char *to_host_file_spec PARAMS ((char *));
+static char *to_host_file_spec (char *);
/* Add a translated arg to the list to be passed to DEC CC */
-static void addarg PARAMS ((const char *));
+static void addarg (const char *);
/* Preprocess the number of args in P_ARGC and contained in ARGV.
Look for special flags, etc. that must be handled first. */
-static void preprocess_args PARAMS ((int *, char **));
+static void preprocess_args (int *, char **);
/* Process the number of args in P_ARGC and contained in ARGV. Look
for special flags, etc. that must be handled for the VMS compiler. */
-static void process_args PARAMS ((int *, char **));
+static void process_args (int *, char **);
/* Action routine called by decc$to_vms */
-static int translate_unix PARAMS ((char *, int));
-
-int main PARAMS ((int, char **));
+static int translate_unix (char *, int);
/* Add the argument contained in STR to the list of arguments to pass to the
compiler. */
static void
-addarg (str)
- const char *str;
+addarg (const char *str)
{
int i;
@@ -100,9 +97,7 @@ addarg (str)
}
static void
-preprocess_args (p_argc, argv)
- int *p_argc;
- char *argv[];
+preprocess_args (int *p_argc, char *argv[])
{
int i;
@@ -122,9 +117,7 @@ preprocess_args (p_argc, argv)
}
static void
-process_args (p_argc, argv)
- int *p_argc;
- char *argv[];
+process_args (int *p_argc, char *argv[])
{
int i;
@@ -185,9 +178,7 @@ process_args (p_argc, argv)
typedef struct dsc {unsigned short len, mbz; char *adr; } Descr;
int
-main (argc, argv)
- int argc;
- char **argv;
+main (int argc, char **argv)
{
int i;
char cwdev [128], *devptr;
@@ -320,17 +311,14 @@ static char new_host_dirspec [255];
static char filename_buff [256];
static int
-translate_unix (name, type)
- char *name;
- int type ATTRIBUTE_UNUSED;
+translate_unix (char *name, int type ATTRIBUTE_UNUSED)
{
strcpy (filename_buff, name);
return 0;
}
static char *
-to_host_dir_spec (dirspec)
- char *dirspec;
+to_host_dir_spec (char *dirspec)
{
int len = strlen (dirspec);
@@ -353,8 +341,7 @@ to_host_dir_spec (dirspec)
}
static char *
-to_host_file_spec (filespec)
- char *filespec;
+to_host_file_spec (char *filespec)
{
strcpy (new_host_filespec, "");
if (strchr (filespec, ']') || strchr (filespec, ':'))
diff --git a/gcc/config/alpha/vms-ld.c b/gcc/config/alpha/vms-ld.c
index 60e01d8..6ddfe5a 100644
--- a/gcc/config/alpha/vms-ld.c
+++ b/gcc/config/alpha/vms-ld.c
@@ -1,5 +1,5 @@
/* VMS linker wrapper.
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
@@ -89,39 +89,38 @@ static char *search_dirs;
/* Add STR to the list of arguments to pass to the linker. Expand the list as
necessary to accommodate. */
-static void addarg PARAMS ((const char *));
+static void addarg (const char *);
/* Check to see if NAME is a regular file, i.e. not a directory */
-static int is_regular_file PARAMS ((char *));
+static int is_regular_file (char *);
/* Translate a Unix syntax file specification FILESPEC into VMS syntax.
If indicators of VMS syntax found, return input string. */
-static char *to_host_file_spec PARAMS ((char *));
+static char *to_host_file_spec (char *);
/* Locate the library named LIB_NAME in the set of paths PATH_VAL. */
-static char *locate_lib PARAMS ((char *, char *));
+static char *locate_lib (char *, char *);
/* Given a library name NAME, i.e. foo, Look for libfoo.lib and then
libfoo.a in the set of directories we are allowed to search in. */
-static const char *expand_lib PARAMS ((char *));
+static const char *expand_lib (char *);
/* Preprocess the number of args P_ARGC in ARGV.
Look for special flags, etc. that must be handled first. */
-static void preprocess_args PARAMS ((int *, char **));
+static void preprocess_args (int *, char **);
/* Preprocess the number of args P_ARGC in ARGV. Look for
special flags, etc. that must be handled for the VMS linker. */
-static void process_args PARAMS ((int *, char **));
+static void process_args (int *, char **);
/* Action routine called by decc$to_vms. NAME is a file name or
directory name. TYPE is unused. */
-static int translate_unix PARAMS ((char *, int));
+static int translate_unix (char *, int);
-int main PARAMS ((int, char **));
+int main (int, char **);
static void
-addarg (str)
- const char *str;
+addarg (const char *str)
{
int i;
@@ -144,9 +143,7 @@ addarg (str)
}
static char *
-locate_lib (lib_name, path_val)
- char *lib_name;
- char *path_val;
+locate_lib (char *lib_name, char *path_val)
{
int lib_len = strlen (lib_name);
char *eptr, *sptr;
@@ -206,8 +203,7 @@ locate_lib (lib_name, path_val)
}
static const char *
-expand_lib (name)
- char *name;
+expand_lib (char *name)
{
char *lib, *lib_path;
@@ -240,8 +236,7 @@ expand_lib (name)
}
static int
-is_regular_file (name)
- char *name;
+is_regular_file (char *name)
{
int ret;
struct stat statbuf;
@@ -251,9 +246,7 @@ is_regular_file (name)
}
static void
-preprocess_args (p_argc, argv)
- int *p_argc;
- char **argv;
+preprocess_args (int *p_argc, char **argv)
{
int i;
@@ -305,9 +298,7 @@ preprocess_args (p_argc, argv)
}
static void
-process_args (p_argc, argv)
- int *p_argc;
- char **argv;
+process_args (int *p_argc, char **argv)
{
int i;
@@ -381,9 +372,7 @@ process_args (p_argc, argv)
and args to be what the VMS linker wants. */
int
-main (argc, argv)
- int argc;
- char **argv;
+main (int argc, char **argv)
{
int i;
char cwdev [128], *devptr;
@@ -753,17 +742,14 @@ static char new_host_filespec [255];
static char filename_buff [256];
static int
-translate_unix (name, type)
- char *name;
- int type ATTRIBUTE_UNUSED;
+translate_unix (char *name, int type ATTRIBUTE_UNUSED)
{
strcpy (filename_buff, name);
return 0;
}
static char *
-to_host_file_spec (filespec)
- char *filespec;
+to_host_file_spec (char *filespec)
{
strcpy (new_host_filespec, "");
if (strchr (filespec, ']') || strchr (filespec, ':'))
diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h
index 698e249..fe12fba 100644
--- a/gcc/config/alpha/vms.h
+++ b/gcc/config/alpha/vms.h
@@ -287,8 +287,8 @@ literals_section () \
} \
}
-extern void link_section PARAMS ((void));
-extern void literals_section PARAMS ((void));
+extern void link_section (void);
+extern void literals_section (void);
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) abort ()