]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/alpha/alpha-protos.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / alpha / alpha-protos.h
CommitLineData
e53b6e56 1/* Prototypes for alpha.cc functions used in the md file & elsewhere.
aeee4812 2 Copyright (C) 1999-2023 Free Software Foundation, Inc.
aa388f29 3
7ec022b2 4This file is part of GCC.
aa388f29 5
7ec022b2 6GCC is free software; you can redistribute it and/or modify
aa388f29 7it under the terms of the GNU General Public License as published by
2f83c7d6 8the Free Software Foundation; either version 3, or (at your option)
aa388f29
RH
9any later version.
10
7ec022b2 11GCC is distributed in the hope that it will be useful,
aa388f29
RH
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
2f83c7d6
NC
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
aa388f29 19
e2c9fb9b
RH
20extern int alpha_next_sequence_number;
21
a5c24926 22extern void literal_section (void);
a5c24926 23extern int zap_mask (HOST_WIDE_INT);
0191520b 24extern bool direct_return (void);
a5c24926 25
a5c24926
RH
26extern HOST_WIDE_INT alpha_initial_elimination_offset (unsigned int,
27 unsigned int);
a5c24926
RH
28extern void alpha_expand_prologue (void);
29extern void alpha_expand_epilogue (void);
30extern void alpha_output_filename (FILE *, const char *);
a5c24926 31
ef4bddc2
RS
32extern bool alpha_legitimate_constant_p (machine_mode, rtx);
33extern rtx alpha_legitimize_reload_address (rtx, machine_mode,
a5c24926
RH
34 int, int, int);
35
36extern rtx split_small_symbolic_operand (rtx);
37
38extern void get_aligned_mem (rtx, rtx *, rtx *);
60e93525
RH
39extern rtx get_unaligned_address (rtx);
40extern rtx get_unaligned_offset (rtx, HOST_WIDE_INT);
a5c24926 41extern enum reg_class alpha_preferred_reload_class (rtx, enum reg_class);
a5c24926
RH
42
43extern void alpha_set_memflags (rtx, rtx);
ef4bddc2
RS
44extern bool alpha_split_const_mov (machine_mode, rtx *);
45extern bool alpha_expand_mov (machine_mode, rtx *);
46extern bool alpha_expand_mov_nobwx (machine_mode, rtx *);
47extern void alpha_expand_movmisalign (machine_mode, rtx *);
a5c24926 48extern void alpha_emit_floatuns (rtx[]);
ef4bddc2
RS
49extern rtx alpha_emit_conditional_move (rtx, machine_mode);
50extern void alpha_split_tmode_pair (rtx[], machine_mode, bool);
a5c24926
RH
51extern void alpha_split_tfmode_frobsign (rtx[], rtx (*)(rtx, rtx, rtx));
52extern void alpha_expand_unaligned_load (rtx, rtx, HOST_WIDE_INT,
53 HOST_WIDE_INT, int);
54extern void alpha_expand_unaligned_store (rtx, rtx, HOST_WIDE_INT,
55 HOST_WIDE_INT);
56extern int alpha_expand_block_move (rtx []);
57extern int alpha_expand_block_clear (rtx []);
58extern rtx alpha_expand_zap_mask (HOST_WIDE_INT);
59extern void alpha_expand_builtin_vector_binop (rtx (*)(rtx, rtx, rtx),
ef4bddc2 60 machine_mode,
a5c24926 61 rtx, rtx, rtx);
221cf9ab
OH
62extern void alpha_expand_builtin_establish_vms_condition_handler (rtx, rtx);
63extern void alpha_expand_builtin_revert_vms_condition_handler (rtx);
64
a5c24926
RH
65extern rtx alpha_return_addr (int, rtx);
66extern rtx alpha_gp_save_rtx (void);
a5c24926
RH
67extern void alpha_initialize_trampoline (rtx, rtx, rtx, int, int, int);
68
a5c24926 69extern rtx alpha_va_arg (tree, tree);
7e4fb06a 70
a5c24926
RH
71extern void alpha_start_function (FILE *, const char *, tree);
72extern void alpha_end_function (FILE *, const char *, tree);
73
4dba3553 74extern bool alpha_find_lo_sum_using_gp (rtx);
77480b0b 75
cc378e65
UB
76extern int alpha_store_data_bypass_p (rtx_insn *, rtx_insn *);
77
aa388f29 78#ifdef REAL_VALUE_TYPE
ef4bddc2 79extern int check_float_value (machine_mode, REAL_VALUE_TYPE *, int);
6933647a
RH
80#endif
81
82#ifdef RTX_CODE
ef4bddc2
RS
83extern void alpha_emit_conditional_branch (rtx[], machine_mode);
84extern bool alpha_emit_setcc (rtx[], machine_mode);
a5c24926
RH
85extern int alpha_split_conditional_move (enum rtx_code, rtx, rtx, rtx, rtx);
86extern void alpha_emit_xfloating_arith (enum rtx_code, rtx[]);
87extern void alpha_emit_xfloating_cvt (enum rtx_code, rtx[]);
2371d1a0
RH
88extern void alpha_split_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx,
89 enum memmodel);
90extern void alpha_split_compare_and_swap (rtx op[]);
91extern void alpha_expand_compare_and_swap_12 (rtx op[]);
92extern void alpha_split_compare_and_swap_12 (rtx op[]);
93extern void alpha_split_atomic_exchange (rtx op[]);
94extern void alpha_expand_atomic_exchange_12 (rtx op[]);
95extern void alpha_split_atomic_exchange_12 (rtx op[]);
aa388f29
RH
96#endif
97
735f469b 98extern rtx alpha_use_linkage (rtx, bool, bool);
6933647a 99
be7b80f4 100#if TARGET_ABI_OPEN_VMS
ef4bddc2 101extern enum avms_arg_type alpha_arg_type (machine_mode);
a5c24926 102extern rtx alpha_arg_info_reg_val (CUMULATIVE_ARGS);
5e3fef6c 103extern void avms_asm_output_external (FILE *, tree, const char *);
18fd5621
EB
104extern void vms_output_aligned_decl_common (FILE *, tree, const char *,
105 unsigned HOST_WIDE_INT,
106 unsigned int);
1d3499d8
OH
107extern HOST_WIDE_INT alpha_vms_initial_elimination_offset (unsigned int,
108 unsigned int);
aa388f29 109#endif
aa388f29 110
a5c24926 111extern rtx unicosmk_add_call_info_word (rtx);
30102605 112
dbb838b7 113extern bool some_small_symbolic_operand_int (rtx);
201312c2
RH
114extern int tls_symbolic_operand_1 (rtx, int, int);
115extern rtx resolve_reload_operand (rtx);
a32fc216
UB
116
117namespace gcc { class context; }
118class rtl_opt_pass;
119
120extern rtl_opt_pass *make_pass_handle_trap_shadows (gcc::context *);
121extern rtl_opt_pass *make_pass_align_insns (gcc::context *);