]> gcc.gnu.org Git - gcc.git/blame - gcc/config/pa/pa-protos.h
pa-protos.h: Update copyright.
[gcc.git] / gcc / config / pa / pa-protos.h
CommitLineData
519104fe 1/* Prototypes for pa.c functions used in the md file & elsewhere.
d1885651 2 Copyright (C) 2000, 2001, 2002, 2003, 2004 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
KG
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2, or (at your option)
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
b7849684 17along with GCC; see the file COPYING. If not, write to
519104fe
KG
18the Free Software Foundation, 59 Temple Place - Suite 330,
19Boston, MA 02111-1307, USA. */
20
21#ifdef RTX_CODE
fe19a83d 22/* Prototype function used in various macros. */
b7849684 23extern int symbolic_operand (rtx, enum machine_mode);
519104fe 24
fe19a83d 25/* Used in insn-*.c. */
b7849684
JE
26extern int following_call (rtx);
27extern int function_label_operand (rtx, enum machine_mode);
28extern int lhs_lshift_cint_operand (rtx, enum machine_mode);
519104fe
KG
29
30#ifdef TREE_CODE
b7849684
JE
31extern void hppa_va_start (tree, rtx);
32extern rtx hppa_va_arg (tree, tree);
519104fe 33#endif /* TREE_CODE */
b7849684 34extern rtx hppa_legitimize_address (rtx, rtx, enum machine_mode);
519104fe
KG
35
36/* Define functions in pa.c and used in insn-output.c. */
37
b7849684
JE
38extern const char *output_and (rtx *);
39extern const char *output_ior (rtx *);
40extern const char *output_move_double (rtx *);
41extern const char *output_fp_move_double (rtx *);
42extern const char *output_block_move (rtx *, int);
cdc9103c 43extern const char *output_block_clear (rtx *, int);
b7849684
JE
44extern const char *output_cbranch (rtx *, int, int, int, rtx);
45extern const char *output_lbranch (rtx, rtx);
46extern const char *output_bb (rtx *, int, int, int, rtx, int);
47extern const char *output_bvb (rtx *, int, int, int, rtx, int);
48extern const char *output_dbra (rtx *, rtx, int);
49extern const char *output_movb (rtx *, rtx, int, int);
50extern const char *output_parallel_movb (rtx *, int);
51extern const char *output_parallel_addb (rtx *, int);
52extern const char *output_call (rtx, rtx, int);
53extern const char *output_indirect_call (rtx, rtx);
54extern const char *output_millicode_call (rtx, rtx);
55extern const char *output_mul_insn (int, rtx);
56extern const char *output_div_insn (rtx *, int, rtx);
57extern const char *output_mod_insn (int, rtx);
58extern const char *singlemove_string (rtx *);
59extern void output_arg_descriptor (rtx);
60extern void output_global_address (FILE *, rtx, int);
61extern void print_operand (FILE *, rtx, int);
62extern rtx legitimize_pic_address (rtx, enum machine_mode, rtx);
63extern struct rtx_def *gen_cmp_fp (enum rtx_code, rtx, rtx);
64extern void hppa_encode_label (rtx);
65extern int arith11_operand (rtx, enum machine_mode);
66extern int adddi3_operand (rtx, enum machine_mode);
d8f95bed 67extern int indexed_memory_operand (rtx, enum machine_mode);
b7849684
JE
68extern int symbolic_expression_p (rtx);
69extern int symbolic_memory_operand (rtx, enum machine_mode);
70extern int pa_adjust_insn_length (rtx, int);
71extern int int11_operand (rtx, enum machine_mode);
72extern int reg_or_cint_move_operand (rtx, enum machine_mode);
73extern int arith5_operand (rtx, enum machine_mode);
74extern int uint5_operand (rtx, enum machine_mode);
75extern int pic_label_operand (rtx, enum machine_mode);
76extern int plus_xor_ior_operator (rtx, enum machine_mode);
d8f95bed 77extern int borx_reg_operand (rtx, enum machine_mode);
b7849684
JE
78extern int shadd_operand (rtx, enum machine_mode);
79extern int arith_operand (rtx, enum machine_mode);
80extern int read_only_operand (rtx, enum machine_mode);
d8f95bed
JDA
81extern int move_dest_operand (rtx, enum machine_mode);
82extern int move_src_operand (rtx, enum machine_mode);
b7849684
JE
83extern int and_operand (rtx, enum machine_mode);
84extern int ior_operand (rtx, enum machine_mode);
85extern int arith32_operand (rtx, enum machine_mode);
86extern int uint32_operand (rtx, enum machine_mode);
b7849684
JE
87extern int reg_before_reload_operand (rtx, enum machine_mode);
88extern int reg_or_0_operand (rtx, enum machine_mode);
89extern int reg_or_0_or_nonsymb_mem_operand (rtx, enum machine_mode);
90extern int pre_cint_operand (rtx, enum machine_mode);
91extern int post_cint_operand (rtx, enum machine_mode);
92extern int div_operand (rtx, enum machine_mode);
93extern int int5_operand (rtx, enum machine_mode);
94extern int movb_comparison_operator (rtx, enum machine_mode);
95extern int ireg_or_int5_operand (rtx, enum machine_mode);
96extern int fmpyaddoperands (rtx *);
97extern int fmpysuboperands (rtx *);
98extern int call_operand_address (rtx, enum machine_mode);
99extern int ior_operand (rtx, enum machine_mode);
100extern void emit_bcond_fp (enum rtx_code, rtx);
101extern int emit_move_sequence (rtx *, enum machine_mode, rtx);
102extern int emit_hpdiv_const (rtx *, int);
103extern int is_function_label_plus_const (rtx);
104extern int jump_in_call_delay (rtx);
105extern enum reg_class secondary_reload_class (enum reg_class,
106 enum machine_mode, rtx);
107extern int hppa_fpstore_bypass_p (rtx, rtx);
108extern int attr_length_millicode_call (rtx);
109extern int attr_length_call (rtx, int);
110extern int attr_length_indirect_call (rtx);
111extern int attr_length_save_restore_dltp (rtx);
519104fe
KG
112
113/* Declare functions defined in pa.c and used in templates. */
114
b7849684 115extern struct rtx_def *return_addr_rtx (int, rtx);
519104fe 116
b7849684
JE
117extern int fp_reg_operand (rtx, enum machine_mode);
118extern int arith_double_operand (rtx, enum machine_mode);
119extern int ireg_operand (rtx, enum machine_mode);
120extern int lhs_lshift_operand (rtx, enum machine_mode);
121extern int pc_or_label_operand (rtx, enum machine_mode);
519104fe
KG
122#ifdef ARGS_SIZE_RTX
123/* expr.h defines ARGS_SIZE_RTX and `enum direction' */
84caa961 124#ifdef TREE_CODE
b7849684 125extern enum direction function_arg_padding (enum machine_mode, tree);
84caa961 126#endif
519104fe 127#endif /* ARGS_SIZE_RTX */
b7849684
JE
128extern int non_hard_reg_operand (rtx, enum machine_mode);
129extern int eq_neq_comparison_operator (rtx, enum machine_mode);
130extern int insn_refs_are_delayed (rtx);
519104fe
KG
131#endif /* RTX_CODE */
132
fe19a83d 133/* Prototype function used in macro CONST_OK_FOR_LETTER_P. */
b7849684
JE
134extern int zdepi_cint_p (unsigned HOST_WIDE_INT);
135
136extern struct rtx_def *hppa_builtin_saveregs (void);
137
138extern void override_options (void);
139extern void output_ascii (FILE *, const char *, int);
a4295210 140extern HOST_WIDE_INT compute_frame_size (HOST_WIDE_INT, int *);
b7849684
JE
141extern int and_mask_p (unsigned HOST_WIDE_INT);
142extern int cint_ok_for_move (HOST_WIDE_INT);
143extern void hppa_expand_prologue (void);
144extern void hppa_expand_epilogue (void);
145extern int hppa_can_use_return_insn_p (void);
146extern int ior_mask_p (unsigned HOST_WIDE_INT);
147extern void compute_zdepdi_operands (unsigned HOST_WIDE_INT,
148 unsigned *);
520babc7 149#ifdef RTX_CODE
b7849684
JE
150extern const char * output_64bit_and (rtx *);
151extern const char * output_64bit_ior (rtx *);
152extern int cmpib_comparison_operator (rtx, enum machine_mode);
520babc7
JL
153#endif
154
155
519104fe
KG
156
157#ifdef TREE_CODE
b7849684 158extern int reloc_needed (tree);
520babc7 159#ifdef RTX_CODE
b7849684
JE
160extern rtx function_arg (CUMULATIVE_ARGS *, enum machine_mode,
161 tree, int);
162extern rtx function_value (tree, tree);
520babc7 163#endif
b7849684
JE
164extern int function_arg_partial_nregs (CUMULATIVE_ARGS *,
165 enum machine_mode,
166 tree, int);
519104fe 167#endif /* TREE_CODE */
This page took 1.161497 seconds and 5 git commands to generate.