]> gcc.gnu.org Git - gcc.git/blob - gcc/config/c4x/c4x-protos.h
c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
[gcc.git] / gcc / config / c4x / c4x-protos.h
1 /* Definitions of target machine for GNU compiler. TMS320C[34]x
2 Copyright (C) 1994-98, 1999 Free Software Foundation, Inc.
3
4 Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz)
5 and Herman Ten Brugge (Haj.Ten.Brugge@net.HCC.nl).
6
7 This file is part of GNU CC.
8
9 GNU CC is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
12 any later version.
13
14 GNU CC is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with GNU CC; see the file COPYING. If not, write to
21 the Free Software Foundation, 59 Temple Place - Suite 330,
22 Boston, MA 02111-1307, USA. */
23
24 extern void c4x_override_options PARAMS ((void));
25
26 extern void c4x_optimization_options PARAMS ((int, int));
27
28 extern void c4x_output_ascii PARAMS ((FILE *, const char *, int));
29
30 extern void c4x_function_prologue PARAMS ((FILE *, int));
31
32 extern void c4x_function_epilogue PARAMS ((FILE *, int));
33
34 extern int c4x_null_epilogue_p PARAMS ((void));
35
36 extern int c4x_handle_pragma PARAMS ((int (* p_getc) (void),
37 void (* p_ungetc) (int),
38 char *));
39
40 #ifdef TREE_CODE
41 extern void c4x_set_default_attributes PARAMS ((tree, tree *));
42
43 extern void c4x_function_arg_advance PARAMS ((CUMULATIVE_ARGS *,
44 enum machine_mode, tree, int));
45
46 extern struct rtx_def *c4x_function_arg PARAMS ((CUMULATIVE_ARGS *,
47 enum machine_mode, tree,
48 int));
49
50 extern void c4x_encode_section_info PARAMS ((tree));
51 #endif /* TREE_CODE */
52
53
54 #if defined(RTX_CODE) && defined(TREE_CODE)
55 extern void c4x_init_cumulative_args PARAMS ((CUMULATIVE_ARGS *c, tree, rtx));
56
57 extern void c4x_va_start PARAMS ((int, tree, rtx));
58
59 extern struct rtx_def *c4x_va_arg PARAMS ((tree, tree));
60 #endif /* TREE_CODE and RTX_CODE*/
61
62
63 #ifdef RTX_CODE
64 extern struct rtx_def *c4x_gen_compare_reg PARAMS ((enum rtx_code, rtx, rtx));
65
66 extern int c4x_check_legit_addr PARAMS ((enum machine_mode, rtx, int));
67
68 extern struct rtx_def *c4x_legitimize_address PARAMS ((rtx,
69 enum machine_mode));
70
71 extern struct rtx_def *c4x_legitimize_reload_address PARAMS ((rtx, enum machine_mode, rtx));
72
73 extern int c4x_address_cost PARAMS ((rtx));
74
75 extern void c4x_print_operand PARAMS ((FILE *, rtx, int));
76
77 extern void c4x_print_operand_address PARAMS ((FILE *, rtx));
78
79 extern enum reg_class c4x_preferred_reload_class PARAMS ((rtx,
80 enum reg_class));
81
82 extern struct rtx_def *c4x_operand_subword PARAMS ((rtx, int, int,
83 enum machine_mode));
84
85 extern char *c4x_output_cbranch PARAMS ((char *, rtx));
86
87 extern int c4x_label_conflict PARAMS ((rtx, rtx, rtx));
88
89 extern int c4x_address_conflict PARAMS ((rtx, rtx, int, int));
90
91 extern int c4x_adjust_cost PARAMS ((rtx, rtx, rtx, int));
92
93 extern void c4x_process_after_reload PARAMS ((rtx));
94
95 extern int c4x_rptb_nop_p PARAMS ((rtx));
96
97 extern int c4x_rptb_rpts_p PARAMS ((rtx, rtx));
98
99 extern int c4x_autoinc_operand PARAMS ((rtx, enum machine_mode));
100
101 extern int fp_zero_operand PARAMS ((rtx, enum machine_mode));
102
103 extern int const_operand PARAMS ((rtx, enum machine_mode));
104
105 extern int stik_const_operand PARAMS ((rtx, enum machine_mode));
106
107 extern int not_const_operand PARAMS ((rtx, enum machine_mode));
108
109 extern int parallel_operand PARAMS ((rtx, enum machine_mode));
110
111 extern int reg_or_const_operand PARAMS ((rtx, enum machine_mode));
112
113 extern int reg_operand PARAMS ((rtx, enum machine_mode));
114
115 extern int mixed_subreg_operand PARAMS ((rtx, enum machine_mode));
116
117 extern int reg_imm_operand PARAMS ((rtx, enum machine_mode));
118
119 extern int r0r1_reg_operand PARAMS ((rtx, enum machine_mode));
120
121 extern int r2r3_reg_operand PARAMS ((rtx, enum machine_mode));
122
123 extern int ext_low_reg_operand PARAMS ((rtx, enum machine_mode));
124
125 extern int ext_reg_operand PARAMS ((rtx, enum machine_mode));
126
127 extern int std_reg_operand PARAMS ((rtx, enum machine_mode));
128
129 extern int std_or_reg_operand PARAMS ((rtx, enum machine_mode));
130
131 extern int dst_operand PARAMS ((rtx, enum machine_mode));
132
133 extern int src_operand PARAMS ((rtx, enum machine_mode));
134
135 extern int src_hi_operand PARAMS ((rtx, enum machine_mode));
136
137 extern int lsrc_operand PARAMS ((rtx, enum machine_mode));
138
139 extern int tsrc_operand PARAMS ((rtx, enum machine_mode));
140
141 extern int addr_reg_operand PARAMS ((rtx, enum machine_mode));
142
143 extern int index_reg_operand PARAMS ((rtx, enum machine_mode));
144
145 extern int dp_reg_operand PARAMS ((rtx, enum machine_mode));
146
147 extern int sp_reg_operand PARAMS ((rtx, enum machine_mode));
148
149 extern int rc_reg_operand PARAMS ((rtx, enum machine_mode));
150
151 extern int st_reg_operand PARAMS ((rtx, enum machine_mode));
152
153 extern int symbolic_address_operand PARAMS ((rtx, enum machine_mode));
154
155 extern int ar0_reg_operand PARAMS ((rtx, enum machine_mode));
156
157 extern int ar0_mem_operand PARAMS ((rtx, enum machine_mode));
158
159 extern int ar1_reg_operand PARAMS ((rtx, enum machine_mode));
160
161 extern int ar1_mem_operand PARAMS ((rtx, enum machine_mode));
162
163 extern int ar2_reg_operand PARAMS ((rtx, enum machine_mode));
164
165 extern int ar2_mem_operand PARAMS ((rtx, enum machine_mode));
166
167 extern int ar3_reg_operand PARAMS ((rtx, enum machine_mode));
168
169 extern int ar3_mem_operand PARAMS ((rtx, enum machine_mode));
170
171 extern int ar4_reg_operand PARAMS ((rtx, enum machine_mode));
172
173 extern int ar4_mem_operand PARAMS ((rtx, enum machine_mode));
174
175 extern int ar5_reg_operand PARAMS ((rtx, enum machine_mode));
176
177 extern int ar5_mem_operand PARAMS ((rtx, enum machine_mode));
178
179 extern int ar6_reg_operand PARAMS ((rtx, enum machine_mode));
180
181 extern int ar6_mem_operand PARAMS ((rtx, enum machine_mode));
182
183 extern int ar7_reg_operand PARAMS ((rtx, enum machine_mode));
184
185 extern int ar7_mem_operand PARAMS ((rtx, enum machine_mode));
186
187 extern int ir0_reg_operand PARAMS ((rtx, enum machine_mode));
188
189 extern int ir0_mem_operand PARAMS ((rtx, enum machine_mode));
190
191 extern int ir1_reg_operand PARAMS ((rtx, enum machine_mode));
192
193 extern int ir1_mem_operand PARAMS ((rtx, enum machine_mode));
194
195 extern int group1_reg_operand PARAMS ((rtx, enum machine_mode));
196
197 extern int group1_mem_operand PARAMS ((rtx, enum machine_mode));
198
199 extern int arx_reg_operand PARAMS ((rtx, enum machine_mode));
200
201 extern int call_address_operand PARAMS ((rtx, enum machine_mode));
202
203 extern int par_ind_operand PARAMS ((rtx, enum machine_mode));
204
205 extern int not_rc_reg PARAMS ((rtx, enum machine_mode));
206
207 extern int not_modify_reg PARAMS ((rtx, enum machine_mode));
208
209 extern int c4x_shiftable_constant PARAMS ((rtx));
210
211 extern int c4x_H_constant PARAMS ((rtx));
212
213 extern int c4x_I_constant PARAMS ((rtx));
214
215 extern int c4x_J_constant PARAMS ((rtx));
216
217 extern int c4x_L_constant PARAMS ((rtx));
218
219 extern int c4x_Q_constraint PARAMS ((rtx));
220
221 extern int c4x_R_constraint PARAMS ((rtx));
222
223 extern int c4x_S_constraint PARAMS ((rtx));
224
225 extern int c4x_T_constraint PARAMS ((rtx));
226
227 extern int c4x_U_constraint PARAMS ((rtx));
228
229 extern void c4x_emit_libcall PARAMS ((rtx, enum rtx_code,
230 enum machine_mode,
231 enum machine_mode, int, rtx *));
232
233 extern void c4x_emit_libcall3 PARAMS ((rtx, enum rtx_code,
234 enum machine_mode, rtx *));
235
236 extern void c4x_emit_libcall_mulhi PARAMS ((rtx, enum rtx_code,
237 enum machine_mode, rtx *));
238
239 extern int c4x_emit_move_sequence PARAMS ((rtx *, enum machine_mode));
240
241 extern int legitimize_operands PARAMS ((enum rtx_code, rtx *,
242 enum machine_mode));
243
244 extern int valid_operands PARAMS ((enum rtx_code, rtx *, enum machine_mode));
245
246 extern int valid_parallel_load_store PARAMS ((rtx *, enum machine_mode));
247
248 extern int valid_parallel_operands_4 PARAMS ((rtx *, enum machine_mode));
249
250 extern int valid_parallel_operands_5 PARAMS ((rtx *, enum machine_mode));
251
252 extern int valid_parallel_operands_6 PARAMS ((rtx *, enum machine_mode));
253
254 extern rtx smulhi3_libfunc;
255 extern rtx umulhi3_libfunc;
256 extern rtx fix_truncqfhi2_libfunc;
257 extern rtx fixuns_truncqfhi2_libfunc;
258 extern rtx fix_trunchfhi2_libfunc;
259 extern rtx fixuns_trunchfhi2_libfunc;
260 extern rtx floathiqf2_libfunc;
261 extern rtx floatunshiqf2_libfunc;
262 extern rtx floathihf2_libfunc;
263 extern rtx floatunshihf2_libfunc;
264
265 #endif /* RTX_CODE */
266
This page took 0.052451 seconds and 6 git commands to generate.