]> 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
aa388f29 1/* Prototypes for alpha.c functions used in the md file & elsewhere.
8d9254fc 2 Copyright (C) 1999-2020 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
aa388f29 76#ifdef REAL_VALUE_TYPE
ef4bddc2 77extern int check_float_value (machine_mode, REAL_VALUE_TYPE *, int);
6933647a
RH
78#endif
79
80#ifdef RTX_CODE
ef4bddc2
RS
81extern void alpha_emit_conditional_branch (rtx[], machine_mode);
82extern bool alpha_emit_setcc (rtx[], machine_mode);
a5c24926
RH
83extern int alpha_split_conditional_move (enum rtx_code, rtx, rtx, rtx, rtx);
84extern void alpha_emit_xfloating_arith (enum rtx_code, rtx[]);
85extern void alpha_emit_xfloating_cvt (enum rtx_code, rtx[]);
2371d1a0
RH
86extern void alpha_split_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx,
87 enum memmodel);
88extern void alpha_split_compare_and_swap (rtx op[]);
89extern void alpha_expand_compare_and_swap_12 (rtx op[]);
90extern void alpha_split_compare_and_swap_12 (rtx op[]);
91extern void alpha_split_atomic_exchange (rtx op[]);
92extern void alpha_expand_atomic_exchange_12 (rtx op[]);
93extern void alpha_split_atomic_exchange_12 (rtx op[]);
aa388f29
RH
94#endif
95
735f469b 96extern rtx alpha_use_linkage (rtx, bool, bool);
6933647a 97
be7b80f4 98#if TARGET_ABI_OPEN_VMS
ef4bddc2 99extern enum avms_arg_type alpha_arg_type (machine_mode);
a5c24926 100extern rtx alpha_arg_info_reg_val (CUMULATIVE_ARGS);
5e3fef6c 101extern void avms_asm_output_external (FILE *, tree, const char *);
18fd5621
EB
102extern void vms_output_aligned_decl_common (FILE *, tree, const char *,
103 unsigned HOST_WIDE_INT,
104 unsigned int);
1d3499d8
OH
105extern HOST_WIDE_INT alpha_vms_initial_elimination_offset (unsigned int,
106 unsigned int);
aa388f29 107#endif
aa388f29 108
a5c24926 109extern rtx unicosmk_add_call_info_word (rtx);
30102605 110
dbb838b7 111extern bool some_small_symbolic_operand_int (rtx);
201312c2
RH
112extern int tls_symbolic_operand_1 (rtx, int, int);
113extern rtx resolve_reload_operand (rtx);
a32fc216
UB
114
115namespace gcc { class context; }
116class rtl_opt_pass;
117
118extern rtl_opt_pass *make_pass_handle_trap_shadows (gcc::context *);
119extern rtl_opt_pass *make_pass_align_insns (gcc::context *);