Line data Source code
1 : /* Generated automatically by the program 'build/genpreds'
2 : from the machine description file '/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md'. */
3 :
4 : #ifndef GCC_TM_PREDS_H
5 : #define GCC_TM_PREDS_H
6 :
7 : #ifdef HAVE_MACHINE_MODES
8 : extern bool general_operand (rtx, machine_mode);
9 : extern bool address_operand (rtx, machine_mode);
10 : extern bool register_operand (rtx, machine_mode);
11 : extern bool pmode_register_operand (rtx, machine_mode);
12 : extern bool scratch_operand (rtx, machine_mode);
13 : extern bool immediate_operand (rtx, machine_mode);
14 : extern bool const_int_operand (rtx, machine_mode);
15 : extern bool const_scalar_int_operand (rtx, machine_mode);
16 : extern bool const_double_operand (rtx, machine_mode);
17 : extern bool nonimmediate_operand (rtx, machine_mode);
18 : extern bool nonmemory_operand (rtx, machine_mode);
19 : extern bool push_operand (rtx, machine_mode);
20 : extern bool pop_operand (rtx, machine_mode);
21 : extern bool memory_operand (rtx, machine_mode);
22 : extern bool indirect_operand (rtx, machine_mode);
23 : extern bool ordered_comparison_operator (rtx, machine_mode);
24 : extern bool comparison_operator (rtx, machine_mode);
25 : extern bool aligned_register_operand (rtx, machine_mode);
26 : extern bool any_fp_register_operand (rtx, machine_mode);
27 : extern bool fp_register_operand (rtx, machine_mode);
28 : extern bool general_reg_operand (rtx, machine_mode);
29 : extern bool index_reg_operand (rtx, machine_mode);
30 : extern bool nonimmediate_gr_operand (rtx, machine_mode);
31 : extern bool general_gr_operand (rtx, machine_mode);
32 : extern bool mmx_reg_operand (rtx, machine_mode);
33 : extern bool register_mmxmem_operand (rtx, machine_mode);
34 : extern bool sse_reg_operand (rtx, machine_mode);
35 : extern bool any_QIreg_operand (rtx, machine_mode);
36 : extern bool QIreg_operand (rtx, machine_mode);
37 : extern bool ext_QIreg_operand (rtx, machine_mode);
38 : extern bool ax_reg_operand (rtx, machine_mode);
39 : extern bool flags_reg_operand (rtx, machine_mode);
40 : extern bool mask_reg_operand (rtx, machine_mode);
41 : extern bool bsr0_operand (rtx, machine_mode);
42 : extern bool int248_register_operand (rtx, machine_mode);
43 : extern bool int_nonimmediate_operand (rtx, machine_mode);
44 : extern bool register_ssemem_operand (rtx, machine_mode);
45 : extern bool nonimm_ssenomem_operand (rtx, machine_mode);
46 : extern bool x87nonimm_ssenomem_operand (rtx, machine_mode);
47 : extern bool register_sse4nonimm_operand (rtx, machine_mode);
48 : extern bool symbol_operand (rtx, machine_mode);
49 : extern bool ix86_endbr_immediate_operand (rtx, machine_mode);
50 : extern bool x86_64_immediate_operand (rtx, machine_mode);
51 : extern bool x86_64_zext_immediate_operand (rtx, machine_mode);
52 : extern bool x86_64_neg_const_int_operand (rtx, machine_mode);
53 : extern bool x86_64_hilo_int_operand (rtx, machine_mode);
54 : extern bool x86_64_dwzext_immediate_operand (rtx, machine_mode);
55 : extern bool x86_64_immediate_size_operand (rtx, machine_mode);
56 : extern bool x86_64_general_operand (rtx, machine_mode);
57 : extern bool x86_64_hilo_general_operand (rtx, machine_mode);
58 : extern bool x86_64_sext_operand (rtx, machine_mode);
59 : extern bool sext_operand (rtx, machine_mode);
60 : extern bool x86_64_zext_operand (rtx, machine_mode);
61 : extern bool x86_64_szext_general_operand (rtx, machine_mode);
62 : extern bool x86_64_nonmemory_operand (rtx, machine_mode);
63 : extern bool x86_64_szext_nonmemory_operand (rtx, machine_mode);
64 : extern bool pic_32bit_operand (rtx, machine_mode);
65 : extern bool x86_64_movabs_operand (rtx, machine_mode);
66 : extern bool symbolic_operand (rtx, machine_mode);
67 : extern bool local_symbolic_operand (rtx, machine_mode);
68 : extern bool local_func_symbolic_operand (rtx, machine_mode);
69 : extern bool gotoff_operand (rtx, machine_mode);
70 : extern bool tls_symbolic_operand (rtx, machine_mode);
71 : extern bool tls_modbase_operand (rtx, machine_mode);
72 : extern bool tls_address_pattern (rtx, machine_mode);
73 : extern bool constant_call_address_operand (rtx, machine_mode);
74 : extern bool register_no_elim_operand (rtx, machine_mode);
75 : extern bool register_no_SP_operand (rtx, machine_mode);
76 : extern bool call_register_operand (rtx, machine_mode);
77 : extern bool general_no_elim_operand (rtx, machine_mode);
78 : extern bool nonmemory_no_elim_operand (rtx, machine_mode);
79 : extern bool indirect_branch_operand (rtx, machine_mode);
80 : extern bool sibcall_memory_operand (rtx, machine_mode);
81 : extern bool GOT_memory_operand (rtx, machine_mode);
82 : extern bool call_insn_operand (rtx, machine_mode);
83 : extern bool sibcall_insn_operand (rtx, machine_mode);
84 : extern bool GOT32_symbol_operand (rtx, machine_mode);
85 : extern bool const0_operand (rtx, machine_mode);
86 : extern bool const1_operand (rtx, machine_mode);
87 : extern bool constm1_operand (rtx, machine_mode);
88 : extern bool const0_or_m1_operand (rtx, machine_mode);
89 : extern bool const8_operand (rtx, machine_mode);
90 : extern bool const128_operand (rtx, machine_mode);
91 : extern bool const_32bit_mask (rtx, machine_mode);
92 : extern bool const248_operand (rtx, machine_mode);
93 : extern bool const123_operand (rtx, machine_mode);
94 : extern bool const2367_operand (rtx, machine_mode);
95 : extern bool const1248_operand (rtx, machine_mode);
96 : extern bool const359_operand (rtx, machine_mode);
97 : extern bool const_4_or_8_to_11_operand (rtx, machine_mode);
98 : extern bool const48_operand (rtx, machine_mode);
99 : extern bool const_0_to_1_operand (rtx, machine_mode);
100 : extern bool const_0_to_3_operand (rtx, machine_mode);
101 : extern bool const_0_to_4_operand (rtx, machine_mode);
102 : extern bool const_0_to_5_operand (rtx, machine_mode);
103 : extern bool const_0_to_7_operand (rtx, machine_mode);
104 : extern bool const_0_to_15_operand (rtx, machine_mode);
105 : extern bool const_0_to_31_operand (rtx, machine_mode);
106 : extern bool const_0_to_63_operand (rtx, machine_mode);
107 : extern bool const_0_to_127_operand (rtx, machine_mode);
108 : extern bool const_0_to_255_operand (rtx, machine_mode);
109 : extern bool const_0_to_255_mul_8_operand (rtx, machine_mode);
110 : extern bool const_0_to_255_not_mul_8_operand (rtx, machine_mode);
111 : extern bool const_1_to_31_operand (rtx, machine_mode);
112 : extern bool const_1_to_63_operand (rtx, machine_mode);
113 : extern bool const_2_to_3_operand (rtx, machine_mode);
114 : extern bool const_4_to_5_operand (rtx, machine_mode);
115 : extern bool const_4_to_7_operand (rtx, machine_mode);
116 : extern bool const_6_to_7_operand (rtx, machine_mode);
117 : extern bool const_8_to_9_operand (rtx, machine_mode);
118 : extern bool const_8_to_11_operand (rtx, machine_mode);
119 : extern bool const_8_to_15_operand (rtx, machine_mode);
120 : extern bool const_10_to_11_operand (rtx, machine_mode);
121 : extern bool const_12_to_13_operand (rtx, machine_mode);
122 : extern bool const_12_to_15_operand (rtx, machine_mode);
123 : extern bool const_14_to_15_operand (rtx, machine_mode);
124 : extern bool const_16_to_19_operand (rtx, machine_mode);
125 : extern bool const_16_to_31_operand (rtx, machine_mode);
126 : extern bool const_20_to_23_operand (rtx, machine_mode);
127 : extern bool const_24_to_27_operand (rtx, machine_mode);
128 : extern bool const_28_to_31_operand (rtx, machine_mode);
129 : extern bool cmpps_imm_operand (rtx, machine_mode);
130 : extern bool incdec_operand (rtx, machine_mode);
131 : extern bool vec_setm_sse41_operand (rtx, machine_mode);
132 : extern bool vec_setm_avx2_operand (rtx, machine_mode);
133 : extern bool vec_setm_mmx_operand (rtx, machine_mode);
134 : extern bool reg_or_pm1_operand (rtx, machine_mode);
135 : extern bool regmem_or_bitnot_regmem_operand (rtx, machine_mode);
136 : extern bool ternlog_operand (rtx, machine_mode);
137 : extern bool shiftdi_operand (rtx, machine_mode);
138 : extern bool ashldi_input_operand (rtx, machine_mode);
139 : extern bool zero_extended_scalar_load_operand (rtx, machine_mode);
140 : extern bool float_vector_all_ones_operand (rtx, machine_mode);
141 : extern bool vector_all_ones_operand (rtx, machine_mode);
142 : extern bool int_float_vector_all_ones_operand (rtx, machine_mode);
143 : extern bool vector_all_ones_zero_extend_half_operand (rtx, machine_mode);
144 : extern bool vector_all_ones_zero_extend_quarter_operand (rtx, machine_mode);
145 : extern bool vector_memory_operand (rtx, machine_mode);
146 : extern bool vector_operand (rtx, machine_mode);
147 : extern bool vector_or_const_vector_operand (rtx, machine_mode);
148 : extern bool bcst_mem_operand (rtx, machine_mode);
149 : extern bool bcst_vector_operand (rtx, machine_mode);
150 : extern bool nonimmediate_or_const_vector_operand (rtx, machine_mode);
151 : extern bool nonimmediate_or_const_vec_dup_operand (rtx, machine_mode);
152 : extern bool reg_or_const_vector_operand (rtx, machine_mode);
153 : extern bool x86_64_const_vector_operand (rtx, machine_mode);
154 : extern bool nonimmediate_or_x86_64_const_vector_operand (rtx, machine_mode);
155 : extern bool nonimmediate_or_sse_const_operand (rtx, machine_mode);
156 : extern bool reg_or_0_operand (rtx, machine_mode);
157 : extern bool nonimm_or_0_operand (rtx, machine_mode);
158 : extern bool nonimm_or_0_or_1s_operand (rtx, machine_mode);
159 : extern bool SImode_address_operand (rtx, machine_mode);
160 : extern bool address_no_seg_operand (rtx, machine_mode);
161 : extern bool vsib_address_operand (rtx, machine_mode);
162 : extern bool vsib_mem_operator (rtx, machine_mode);
163 : extern bool aligned_operand (rtx, machine_mode);
164 : extern bool memory_displacement_operand (rtx, machine_mode);
165 : extern bool memory_displacement_only_operand (rtx, machine_mode);
166 : extern bool long_memory_operand (rtx, machine_mode);
167 : extern bool fcmov_comparison_operator (rtx, machine_mode);
168 : extern bool sse_comparison_operator (rtx, machine_mode);
169 : extern bool ix86_fp_vec_cmp_operator (rtx, machine_mode);
170 : extern bool ix86_comparison_int_operator (rtx, machine_mode);
171 : extern bool ix86_comparison_uns_operator (rtx, machine_mode);
172 : extern bool bt_comparison_operator (rtx, machine_mode);
173 : extern bool shr_comparison_operator (rtx, machine_mode);
174 : extern bool add_comparison_operator (rtx, machine_mode);
175 : extern bool ieee_maxmin_comparison_operator (rtx, machine_mode);
176 : extern bool ix86_comparison_operator (rtx, machine_mode);
177 : extern bool ix86_carry_flag_operator (rtx, machine_mode);
178 : extern bool ix86_carry_flag_unset_operator (rtx, machine_mode);
179 : extern bool ix86_trivial_fp_comparison_operator (rtx, machine_mode);
180 : extern bool ix86_trivial_fp_comparison_operator_xf (rtx, machine_mode);
181 : extern bool ix86_fp_comparison_operator (rtx, machine_mode);
182 : extern bool ix86_fp_comparison_operator_xf (rtx, machine_mode);
183 : extern bool ix86_timode_comparison_operator (rtx, machine_mode);
184 : extern bool ix86_timode_comparison_operand (rtx, machine_mode);
185 : extern bool cmp_fp_expander_operand (rtx, machine_mode);
186 : extern bool binary_fp_operator (rtx, machine_mode);
187 : extern bool mult_operator (rtx, machine_mode);
188 : extern bool div_operator (rtx, machine_mode);
189 : extern bool logic_operator (rtx, machine_mode);
190 : extern bool and_operator (rtx, machine_mode);
191 : extern bool plusminuslogic_operator (rtx, machine_mode);
192 : extern bool arith_or_logical_operator (rtx, machine_mode);
193 : extern bool commutative_operator (rtx, machine_mode);
194 : extern bool promotable_binary_operator (rtx, machine_mode);
195 : extern bool compare_operator (rtx, machine_mode);
196 : extern bool extract_high_operator (rtx, machine_mode);
197 : extern bool misaligned_operand (rtx, machine_mode);
198 : extern bool movq_parallel (rtx, machine_mode);
199 : extern bool vzeroall_operation (rtx, machine_mode);
200 : extern bool vzeroall_pattern (rtx, machine_mode);
201 : extern bool vzeroupper_pattern (rtx, machine_mode);
202 : extern bool addsub_vm_operator (rtx, machine_mode);
203 : extern bool addsub_vs_operator (rtx, machine_mode);
204 : extern bool addsub_vs_parallel (rtx, machine_mode);
205 : extern bool permvar_truncate_operand (rtx, machine_mode);
206 : extern bool pshufb_truncv4siv4hi_operand (rtx, machine_mode);
207 : extern bool pshufb_truncv8hiv8qi_operand (rtx, machine_mode);
208 : extern bool pmovzx_parallel (rtx, machine_mode);
209 : extern bool insertps_parallel (rtx, machine_mode);
210 : extern bool const_vector_duplicate_operand (rtx, machine_mode);
211 : extern bool avx_vbroadcast_operand (rtx, machine_mode);
212 : extern bool avx_vbroadcast128_operand (rtx, machine_mode);
213 : extern bool palignr_operand (rtx, machine_mode);
214 : extern bool avx2_pblendw_operand (rtx, machine_mode);
215 : extern bool general_vector_operand (rtx, machine_mode);
216 : extern bool register_or_constm1_operand (rtx, machine_mode);
217 : extern bool save_multiple (rtx, machine_mode);
218 : extern bool restore_multiple (rtx, machine_mode);
219 : extern bool encodekey128_operation (rtx, machine_mode);
220 : extern bool encodekey256_operation (rtx, machine_mode);
221 : extern bool aeswidekl_operation (rtx, machine_mode);
222 : extern bool apx_evex_memory_operand (rtx, machine_mode);
223 : extern bool apx_evex_add_memory_operand (rtx, machine_mode);
224 : #endif /* HAVE_MACHINE_MODES */
225 :
226 : #ifdef GCC_HARD_REG_SET_H
227 : struct target_constraints {
228 : HARD_REG_SET register_filters[1];
229 : };
230 :
231 : extern struct target_constraints default_target_constraints;
232 : #if SWITCHABLE_TARGET
233 : extern struct target_constraints *this_target_constraints;
234 : #else
235 : #define this_target_constraints (&default_target_constraints)
236 : #endif
237 :
238 : #define TEST_REGISTER_FILTER_BIT(ID, REGNO) \
239 : ((void) (ID), (void) (REGNO), false)
240 :
241 : inline bool
242 : test_register_filters (unsigned int, unsigned int)
243 : {
244 : return true;
245 : }
246 : #endif
247 :
248 : #define CONSTRAINT_NUM_DEFINED_P 1
249 : enum constraint_num
250 : {
251 : CONSTRAINT__UNKNOWN = 0,
252 : CONSTRAINT_r,
253 : CONSTRAINT_R,
254 : CONSTRAINT_q,
255 : CONSTRAINT_Q,
256 : CONSTRAINT_l,
257 : CONSTRAINT_a,
258 : CONSTRAINT_b,
259 : CONSTRAINT_c,
260 : CONSTRAINT_d,
261 : CONSTRAINT_S,
262 : CONSTRAINT_D,
263 : CONSTRAINT_A,
264 : CONSTRAINT_U,
265 : CONSTRAINT_f,
266 : CONSTRAINT_t,
267 : CONSTRAINT_u,
268 : CONSTRAINT_Yk,
269 : CONSTRAINT_k,
270 : CONSTRAINT_y,
271 : CONSTRAINT_x,
272 : CONSTRAINT_v,
273 : CONSTRAINT_Yz,
274 : CONSTRAINT_Yd,
275 : CONSTRAINT_YD,
276 : CONSTRAINT_Yp,
277 : CONSTRAINT_Ya,
278 : CONSTRAINT_Yb,
279 : CONSTRAINT_Yf,
280 : CONSTRAINT_Yr,
281 : CONSTRAINT_Yv,
282 : CONSTRAINT_Yw,
283 : CONSTRAINT_YW,
284 : CONSTRAINT_jR,
285 : CONSTRAINT_jr,
286 : CONSTRAINT_jc,
287 : CONSTRAINT_I,
288 : CONSTRAINT_J,
289 : CONSTRAINT_K,
290 : CONSTRAINT_L,
291 : CONSTRAINT_M,
292 : CONSTRAINT_N,
293 : CONSTRAINT_O,
294 : CONSTRAINT_m,
295 : CONSTRAINT_o,
296 : CONSTRAINT_jm,
297 : CONSTRAINT_jo,
298 : CONSTRAINT_je,
299 : CONSTRAINT_jM,
300 : CONSTRAINT_jO,
301 : CONSTRAINT_Bm,
302 : CONSTRAINT_Bk,
303 : CONSTRAINT_Bn,
304 : CONSTRAINT_Br,
305 : CONSTRAINT_ja,
306 : CONSTRAINT_p,
307 : CONSTRAINT_Tv,
308 : CONSTRAINT_Ts,
309 : CONSTRAINT_jp,
310 : CONSTRAINT_jb,
311 : CONSTRAINT_Bz,
312 : CONSTRAINT_BH,
313 : CONSTRAINT_Wb,
314 : CONSTRAINT_Wc,
315 : CONSTRAINT_Ww,
316 : CONSTRAINT_G,
317 : CONSTRAINT_e,
318 : CONSTRAINT_We,
319 : CONSTRAINT_Wz,
320 : CONSTRAINT_Wd,
321 : CONSTRAINT_Wf,
322 : CONSTRAINT_Ws,
323 : CONSTRAINT_Z,
324 : CONSTRAINT_Bf,
325 : CONSTRAINT_V,
326 : CONSTRAINT__l,
327 : CONSTRAINT__g,
328 : CONSTRAINT_BF,
329 : CONSTRAINT_BM,
330 : CONSTRAINT_j_l,
331 : CONSTRAINT_j_g,
332 : CONSTRAINT_jV,
333 : CONSTRAINT_i,
334 : CONSTRAINT_s,
335 : CONSTRAINT__c,
336 : CONSTRAINT_n,
337 : CONSTRAINT_E,
338 : CONSTRAINT_F,
339 : CONSTRAINT_X,
340 : CONSTRAINT_Bg,
341 : CONSTRAINT_Bs,
342 : CONSTRAINT_Bw,
343 : CONSTRAINT_BC,
344 : CONSTRAINT_C,
345 : CONSTRAINT__LIMIT
346 : };
347 :
348 : extern enum constraint_num lookup_constraint_1 (const char *);
349 : extern const unsigned char lookup_constraint_array[];
350 :
351 : /* Return the constraint at the beginning of P, or CONSTRAINT__UNKNOWN if it
352 : isn't recognized. */
353 :
354 : static inline enum constraint_num
355 18002647874 : lookup_constraint (const char *p)
356 : {
357 18002647874 : unsigned int index = lookup_constraint_array[(unsigned char) *p];
358 18002647874 : return (index == UCHAR_MAX
359 18002647874 : ? lookup_constraint_1 (p)
360 18002647874 : : (enum constraint_num) index);
361 : }
362 :
363 : extern bool (*constraint_satisfied_p_array[]) (rtx);
364 :
365 : /* Return true if X satisfies constraint C. */
366 :
367 : static inline bool
368 6363888336 : constraint_satisfied_p (rtx x, enum constraint_num c)
369 : {
370 6363888336 : int i = (int) c - (int) CONSTRAINT_I;
371 6363888336 : return i >= 0 && constraint_satisfied_p_array[i] (x);
372 : }
373 :
374 : static inline bool
375 15658971332 : insn_extra_register_constraint (enum constraint_num c)
376 : {
377 15658971332 : return c >= CONSTRAINT_r && c <= CONSTRAINT_jc;
378 : }
379 :
380 : static inline bool
381 4701361089 : insn_extra_memory_constraint (enum constraint_num c)
382 : {
383 4701361089 : return c >= CONSTRAINT_m && c <= CONSTRAINT_jO;
384 : }
385 :
386 : static inline bool
387 171841255 : insn_extra_special_memory_constraint (enum constraint_num c)
388 : {
389 171841255 : return c >= CONSTRAINT_Bm && c <= CONSTRAINT_ja;
390 : }
391 :
392 : static inline bool
393 : insn_extra_relaxed_memory_constraint (enum constraint_num)
394 : {
395 : return false;
396 : }
397 :
398 : static inline bool
399 4988162756 : insn_extra_address_constraint (enum constraint_num c)
400 : {
401 4988162756 : return c >= CONSTRAINT_p && c <= CONSTRAINT_jb;
402 : }
403 :
404 : static inline void
405 : insn_extra_constraint_allows_reg_mem (enum constraint_num c,
406 : bool *allows_reg, bool *allows_mem)
407 : {
408 : if (c >= CONSTRAINT_Bz && c <= CONSTRAINT_Z)
409 : return;
410 : if (c >= CONSTRAINT_Bf && c <= CONSTRAINT_Bf)
411 : {
412 0 : *allows_reg = true;
413 0 : return;
414 : }
415 : if (c >= CONSTRAINT_V && c <= CONSTRAINT_jV)
416 : {
417 0 : *allows_mem = true;
418 0 : return;
419 : }
420 2855 : (void) c;
421 2855 : *allows_reg = true;
422 2855 : *allows_mem = true;
423 : }
424 :
425 : static inline size_t
426 42939374801 : insn_constraint_len (char fc, const char *str)
427 : {
428 42939374801 : switch (fc)
429 : {
430 : case 'B': return 2;
431 : case 'T': return 2;
432 : case 'W': return 2;
433 : case 'Y': return 2;
434 : case 'j': return 2;
435 41060494606 : default: break;
436 : }
437 41060494606 : if (str[0] == '{')
438 : {
439 : size_t len = 1;
440 201121 : while (str[len] != '}' && str[len] != '\0')
441 151168 : ++len;
442 49953 : return len + 1;
443 : }
444 : return 1;
445 : }
446 :
447 : #define CONSTRAINT_LEN(c_,s_) insn_constraint_len (c_,s_)
448 :
449 : extern enum reg_class reg_class_for_constraint_1 (enum constraint_num);
450 :
451 : static inline enum reg_class
452 15658971332 : reg_class_for_constraint (enum constraint_num c)
453 : {
454 15658971332 : if (insn_extra_register_constraint (c))
455 7420251601 : return reg_class_for_constraint_1 (c);
456 : return NO_REGS;
457 : }
458 :
459 : extern bool insn_const_int_ok_for_constraint (HOST_WIDE_INT, enum constraint_num);
460 : #define CONST_OK_FOR_CONSTRAINT_P(v_,c_,s_) \
461 : insn_const_int_ok_for_constraint (v_, lookup_constraint (s_))
462 :
463 : enum constraint_type
464 : {
465 : CT_REGISTER,
466 : CT_CONST_INT,
467 : CT_MEMORY,
468 : CT_SPECIAL_MEMORY,
469 : CT_RELAXED_MEMORY,
470 : CT_ADDRESS,
471 : CT_FIXED_FORM
472 : };
473 :
474 : static inline enum constraint_type
475 7269134377 : get_constraint_type (enum constraint_num c)
476 : {
477 7269134377 : if (c >= CONSTRAINT_Bm)
478 : {
479 862910600 : if (c >= CONSTRAINT_Bz)
480 : return CT_FIXED_FORM;
481 118795160 : if (c >= CONSTRAINT_p)
482 : return CT_ADDRESS;
483 113047675 : return CT_SPECIAL_MEMORY;
484 : }
485 6406223777 : if (c >= CONSTRAINT_m)
486 : return CT_MEMORY;
487 5832674663 : if (c >= CONSTRAINT_I)
488 12267022 : return CT_CONST_INT;
489 : return CT_REGISTER;
490 : }
491 :
492 : #ifdef GCC_HARD_REG_SET_H
493 : static inline const HARD_REG_SET *
494 : get_register_filter (constraint_num)
495 : {
496 : return nullptr;
497 : }
498 : #endif
499 :
500 : static inline int
501 : get_register_filter_id (constraint_num)
502 : {
503 : return -1;
504 : }
505 :
506 : static inline int
507 : get_dependent_filter_id (constraint_num)
508 : {
509 : return -1;
510 : }
511 :
512 : static inline int
513 : get_dependent_filter_ref (int id)
514 : {
515 : (void) id;
516 : return -1;
517 : }
518 :
519 : extern bool
520 : eval_dependent_filter (int id, unsigned int regno,
521 : machine_mode mode,
522 : unsigned int ref_regno,
523 : machine_mode ref_mode);
524 : #endif /* tm-preds.h */
|