]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/pa/pa-protos.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / pa / pa-protos.h
CommitLineData
519104fe 1/* Prototypes for pa.c functions used in the md file & elsewhere.
8d9254fc 2 Copyright (C) 2000-2020 Free Software Foundation, Inc.
519104fe 3
b7849684 4This file is part of GCC.
519104fe 5
b7849684 6GCC is free software; you can redistribute it and/or modify
519104fe 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)
519104fe
KG
9any later version.
10
b7849684 11GCC is distributed in the hope that it will be useful,
519104fe
KG
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/>. */
519104fe
KG
19
20#ifdef RTX_CODE
fe19a83d 21/* Prototype function used in various macros. */
16c16a24 22extern rtx pa_eh_return_handler_rtx (void);
519104fe 23
519104fe
KG
24/* Define functions in pa.c and used in insn-output.c. */
25
ae9d61ab
JDA
26extern const char *pa_output_and (rtx *);
27extern const char *pa_output_64bit_and (rtx *);
28extern const char *pa_output_ior (rtx *);
29extern const char *pa_output_64bit_ior (rtx *);
30extern const char *pa_output_move_double (rtx *);
31extern const char *pa_output_fp_move_double (rtx *);
32extern const char *pa_output_block_move (rtx *, int);
33extern const char *pa_output_block_clear (rtx *, int);
b32d5189
DM
34extern const char *pa_output_cbranch (rtx *, int, rtx_insn *);
35extern const char *pa_output_lbranch (rtx, rtx_insn *, int);
36extern const char *pa_output_bb (rtx *, int, rtx_insn *, int);
37extern const char *pa_output_bvb (rtx *, int, rtx_insn *, int);
38extern const char *pa_output_dbra (rtx *, rtx_insn *, int);
39extern const char *pa_output_movb (rtx *, rtx_insn *, int, int);
40extern const char *pa_output_parallel_movb (rtx *, rtx_insn *);
41extern const char *pa_output_parallel_addb (rtx *, rtx_insn *);
432d483a
DM
42extern const char *pa_output_call (rtx_insn *, rtx, int);
43extern const char *pa_output_indirect_call (rtx_insn *, rtx);
b32d5189
DM
44extern const char *pa_output_millicode_call (rtx_insn *, rtx);
45extern const char *pa_output_mul_insn (int, rtx_insn *);
46extern const char *pa_output_div_insn (rtx *, int, rtx_insn *);
47extern const char *pa_output_mod_insn (int, rtx_insn *);
ae9d61ab 48extern const char *pa_singlemove_string (rtx *);
3ba07ad3
JDA
49extern void pa_output_addr_vec (rtx, rtx);
50extern void pa_output_addr_diff_vec (rtx, rtx);
e0d80a58 51extern void pa_output_arg_descriptor (rtx_insn *);
ae9d61ab
JDA
52extern void pa_output_global_address (FILE *, rtx, int);
53extern void pa_print_operand (FILE *, rtx, int);
54extern void pa_encode_label (rtx);
55extern int pa_symbolic_expression_p (rtx);
432d483a 56extern int pa_adjust_insn_length (rtx_insn *, int);
ae9d61ab
JDA
57extern int pa_fmpyaddoperands (rtx *);
58extern int pa_fmpysuboperands (rtx *);
59extern void pa_emit_bcond_fp (rtx[]);
ef4bddc2 60extern int pa_emit_move_sequence (rtx *, machine_mode, rtx);
ae9d61ab
JDA
61extern int pa_emit_hpdiv_const (rtx *, int);
62extern int pa_is_function_label_plus_const (rtx);
647d790d 63extern int pa_fpstore_bypass_p (rtx_insn *, rtx_insn *);
432d483a
DM
64extern int pa_attr_length_millicode_call (rtx_insn *);
65extern int pa_attr_length_call (rtx_insn *, int);
66extern int pa_attr_length_indirect_call (rtx_insn *);
ef4bddc2 67extern rtx pa_legitimize_reload_address (rtx, machine_mode,
1a04ac2b 68 int, int, int);
519104fe
KG
69
70/* Declare functions defined in pa.c and used in templates. */
71
ae9d61ab 72extern rtx pa_return_addr_rtx (int, rtx);
519104fe 73
84034c69 74extern int pa_insn_refs_are_delayed (rtx_insn *);
ae9d61ab 75extern rtx pa_get_deferred_plabel (rtx);
7e7c9d40 76extern rtx pa_maybe_emit_compare_and_swap_exchange_loop (rtx, rtx, rtx);
519104fe
KG
77#endif /* RTX_CODE */
78
ae9d61ab 79extern int pa_and_mask_p (unsigned HOST_WIDE_INT);
5877e54e 80extern int pa_cint_ok_for_move (unsigned HOST_WIDE_INT);
ae9d61ab 81extern int pa_ior_mask_p (unsigned HOST_WIDE_INT);
5877e54e 82extern int pa_ldil_cint_p (unsigned HOST_WIDE_INT);
b47fbc53 83extern int pa_mem_shadd_constant_p (int);
ae9d61ab
JDA
84extern int pa_shadd_constant_p (int);
85extern int pa_zdepi_cint_p (unsigned HOST_WIDE_INT);
86
87extern void pa_output_ascii (FILE *, const char *, int);
f075bd95 88extern HOST_WIDE_INT pa_compute_frame_size (poly_int64, int *);
ae9d61ab
JDA
89extern void pa_expand_prologue (void);
90extern void pa_expand_epilogue (void);
15768583 91extern bool pa_can_use_return_insn (void);
520babc7 92
d4482715 93/* Miscellaneous functions in pa.c. */
519104fe 94#ifdef TREE_CODE
ae9d61ab 95extern int pa_reloc_needed (tree);
586de218 96extern bool pa_return_in_memory (const_tree, const_tree);
519104fe 97#endif /* TREE_CODE */
9a55eab3 98
d4482715
JDA
99extern void pa_asm_output_aligned_bss (FILE *, const char *,
100 unsigned HOST_WIDE_INT,
101 unsigned int);
102extern void pa_asm_output_aligned_common (FILE *, const char *,
103 unsigned HOST_WIDE_INT,
104 unsigned int);
105extern void pa_asm_output_aligned_local (FILE *, const char *,
106 unsigned HOST_WIDE_INT,
107 unsigned int);
744b2d61 108extern void pa_hpux_asm_output_external (FILE *, tree, const char *);
bc707992 109extern HOST_WIDE_INT pa_initial_elimination_offset (int, int);
42b394ff 110extern HOST_WIDE_INT pa_function_arg_size (machine_mode, const_tree);
e13896a3 111extern void pa_output_function_label (FILE *);
7604f435 112extern void hppa_profile_hook (int);
d4482715 113
ae9d61ab 114extern const int pa_magic_milli[];
b8559e81
JDA
115
116/* Routines implemented in pa-d.c */
117extern void pa_d_target_versions (void);