Branch data 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 int248_register_operand (rtx, machine_mode);
42 : : extern bool int_nonimmediate_operand (rtx, machine_mode);
43 : : extern bool register_ssemem_operand (rtx, machine_mode);
44 : : extern bool nonimm_ssenomem_operand (rtx, machine_mode);
45 : : extern bool x87nonimm_ssenomem_operand (rtx, machine_mode);
46 : : extern bool register_sse4nonimm_operand (rtx, machine_mode);
47 : : extern bool symbol_operand (rtx, machine_mode);
48 : : extern bool ix86_endbr_immediate_operand (rtx, machine_mode);
49 : : extern bool x86_64_immediate_operand (rtx, machine_mode);
50 : : extern bool x86_64_zext_immediate_operand (rtx, machine_mode);
51 : : extern bool x86_64_neg_const_int_operand (rtx, machine_mode);
52 : : extern bool x86_64_hilo_int_operand (rtx, machine_mode);
53 : : extern bool x86_64_dwzext_immediate_operand (rtx, machine_mode);
54 : : extern bool x86_64_immediate_size_operand (rtx, machine_mode);
55 : : extern bool x86_64_general_operand (rtx, machine_mode);
56 : : extern bool x86_64_hilo_general_operand (rtx, machine_mode);
57 : : extern bool x86_64_sext_operand (rtx, machine_mode);
58 : : extern bool sext_operand (rtx, machine_mode);
59 : : extern bool x86_64_zext_operand (rtx, machine_mode);
60 : : extern bool x86_64_szext_general_operand (rtx, machine_mode);
61 : : extern bool x86_64_nonmemory_operand (rtx, machine_mode);
62 : : extern bool x86_64_szext_nonmemory_operand (rtx, machine_mode);
63 : : extern bool pic_32bit_operand (rtx, machine_mode);
64 : : extern bool x86_64_movabs_operand (rtx, machine_mode);
65 : : extern bool symbolic_operand (rtx, machine_mode);
66 : : extern bool local_symbolic_operand (rtx, machine_mode);
67 : : extern bool local_func_symbolic_operand (rtx, machine_mode);
68 : : extern bool gotoff_operand (rtx, machine_mode);
69 : : extern bool tls_symbolic_operand (rtx, machine_mode);
70 : : extern bool tls_modbase_operand (rtx, machine_mode);
71 : : extern bool tls_address_pattern (rtx, machine_mode);
72 : : extern bool constant_call_address_operand (rtx, machine_mode);
73 : : extern bool register_no_elim_operand (rtx, machine_mode);
74 : : extern bool register_no_SP_operand (rtx, machine_mode);
75 : : extern bool call_register_operand (rtx, machine_mode);
76 : : extern bool general_no_elim_operand (rtx, machine_mode);
77 : : extern bool nonmemory_no_elim_operand (rtx, machine_mode);
78 : : extern bool indirect_branch_operand (rtx, machine_mode);
79 : : extern bool sibcall_memory_operand (rtx, machine_mode);
80 : : extern bool GOT_memory_operand (rtx, machine_mode);
81 : : extern bool call_insn_operand (rtx, machine_mode);
82 : : extern bool sibcall_insn_operand (rtx, machine_mode);
83 : : extern bool GOT32_symbol_operand (rtx, machine_mode);
84 : : extern bool const0_operand (rtx, machine_mode);
85 : : extern bool const1_operand (rtx, machine_mode);
86 : : extern bool constm1_operand (rtx, machine_mode);
87 : : extern bool const0_or_m1_operand (rtx, machine_mode);
88 : : extern bool const8_operand (rtx, machine_mode);
89 : : extern bool const128_operand (rtx, machine_mode);
90 : : extern bool const_32bit_mask (rtx, machine_mode);
91 : : extern bool const248_operand (rtx, machine_mode);
92 : : extern bool const123_operand (rtx, machine_mode);
93 : : extern bool const2367_operand (rtx, machine_mode);
94 : : extern bool const1248_operand (rtx, machine_mode);
95 : : extern bool const359_operand (rtx, machine_mode);
96 : : extern bool const_4_or_8_to_11_operand (rtx, machine_mode);
97 : : extern bool const48_operand (rtx, machine_mode);
98 : : extern bool const_0_to_1_operand (rtx, machine_mode);
99 : : extern bool const_0_to_3_operand (rtx, machine_mode);
100 : : extern bool const_0_to_4_operand (rtx, machine_mode);
101 : : extern bool const_0_to_5_operand (rtx, machine_mode);
102 : : extern bool const_0_to_7_operand (rtx, machine_mode);
103 : : extern bool const_0_to_15_operand (rtx, machine_mode);
104 : : extern bool const_0_to_31_operand (rtx, machine_mode);
105 : : extern bool const_0_to_63_operand (rtx, machine_mode);
106 : : extern bool const_0_to_127_operand (rtx, machine_mode);
107 : : extern bool const_0_to_255_operand (rtx, machine_mode);
108 : : extern bool const_0_to_255_mul_8_operand (rtx, machine_mode);
109 : : extern bool const_0_to_255_not_mul_8_operand (rtx, machine_mode);
110 : : extern bool const_1_to_31_operand (rtx, machine_mode);
111 : : extern bool const_1_to_63_operand (rtx, machine_mode);
112 : : extern bool const_2_to_3_operand (rtx, machine_mode);
113 : : extern bool const_4_to_5_operand (rtx, machine_mode);
114 : : extern bool const_4_to_7_operand (rtx, machine_mode);
115 : : extern bool const_6_to_7_operand (rtx, machine_mode);
116 : : extern bool const_8_to_9_operand (rtx, machine_mode);
117 : : extern bool const_8_to_11_operand (rtx, machine_mode);
118 : : extern bool const_8_to_15_operand (rtx, machine_mode);
119 : : extern bool const_10_to_11_operand (rtx, machine_mode);
120 : : extern bool const_12_to_13_operand (rtx, machine_mode);
121 : : extern bool const_12_to_15_operand (rtx, machine_mode);
122 : : extern bool const_14_to_15_operand (rtx, machine_mode);
123 : : extern bool const_16_to_19_operand (rtx, machine_mode);
124 : : extern bool const_16_to_31_operand (rtx, machine_mode);
125 : : extern bool const_20_to_23_operand (rtx, machine_mode);
126 : : extern bool const_24_to_27_operand (rtx, machine_mode);
127 : : extern bool const_28_to_31_operand (rtx, machine_mode);
128 : : extern bool cmpps_imm_operand (rtx, machine_mode);
129 : : extern bool incdec_operand (rtx, machine_mode);
130 : : extern bool vec_setm_sse41_operand (rtx, machine_mode);
131 : : extern bool vec_setm_avx2_operand (rtx, machine_mode);
132 : : extern bool vec_setm_mmx_operand (rtx, machine_mode);
133 : : extern bool reg_or_pm1_operand (rtx, machine_mode);
134 : : extern bool regmem_or_bitnot_regmem_operand (rtx, machine_mode);
135 : : extern bool ternlog_operand (rtx, machine_mode);
136 : : extern bool shiftdi_operand (rtx, machine_mode);
137 : : extern bool ashldi_input_operand (rtx, machine_mode);
138 : : extern bool zero_extended_scalar_load_operand (rtx, machine_mode);
139 : : extern bool float_vector_all_ones_operand (rtx, machine_mode);
140 : : extern bool vector_all_ones_operand (rtx, machine_mode);
141 : : extern bool int_float_vector_all_ones_operand (rtx, machine_mode);
142 : : extern bool vector_all_ones_zero_extend_half_operand (rtx, machine_mode);
143 : : extern bool vector_all_ones_zero_extend_quarter_operand (rtx, machine_mode);
144 : : extern bool vector_memory_operand (rtx, machine_mode);
145 : : extern bool vector_operand (rtx, machine_mode);
146 : : extern bool vector_or_const_vector_operand (rtx, machine_mode);
147 : : extern bool vector_or_0_or_1s_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_comparison_int_operator (rtx, machine_mode);
170 : : extern bool ix86_comparison_uns_operator (rtx, machine_mode);
171 : : extern bool bt_comparison_operator (rtx, machine_mode);
172 : : extern bool shr_comparison_operator (rtx, machine_mode);
173 : : extern bool add_comparison_operator (rtx, machine_mode);
174 : : extern bool ix86_comparison_operator (rtx, machine_mode);
175 : : extern bool ix86_carry_flag_operator (rtx, machine_mode);
176 : : extern bool ix86_carry_flag_unset_operator (rtx, machine_mode);
177 : : extern bool ix86_trivial_fp_comparison_operator (rtx, machine_mode);
178 : : extern bool ix86_trivial_fp_comparison_operator_xf (rtx, machine_mode);
179 : : extern bool ix86_fp_comparison_operator (rtx, machine_mode);
180 : : extern bool ix86_fp_comparison_operator_xf (rtx, machine_mode);
181 : : extern bool ix86_timode_comparison_operator (rtx, machine_mode);
182 : : extern bool ix86_timode_comparison_operand (rtx, machine_mode);
183 : : extern bool cmp_fp_expander_operand (rtx, machine_mode);
184 : : extern bool binary_fp_operator (rtx, machine_mode);
185 : : extern bool mult_operator (rtx, machine_mode);
186 : : extern bool div_operator (rtx, machine_mode);
187 : : extern bool logic_operator (rtx, machine_mode);
188 : : extern bool plusminuslogic_operator (rtx, machine_mode);
189 : : extern bool arith_or_logical_operator (rtx, machine_mode);
190 : : extern bool commutative_operator (rtx, machine_mode);
191 : : extern bool promotable_binary_operator (rtx, machine_mode);
192 : : extern bool compare_operator (rtx, machine_mode);
193 : : extern bool extract_operator (rtx, machine_mode);
194 : : extern bool misaligned_operand (rtx, machine_mode);
195 : : extern bool movq_parallel (rtx, machine_mode);
196 : : extern bool vzeroall_operation (rtx, machine_mode);
197 : : extern bool vzeroall_pattern (rtx, machine_mode);
198 : : extern bool vzeroupper_pattern (rtx, machine_mode);
199 : : extern bool addsub_vm_operator (rtx, machine_mode);
200 : : extern bool addsub_vs_operator (rtx, machine_mode);
201 : : extern bool addsub_vs_parallel (rtx, machine_mode);
202 : : extern bool permvar_truncate_operand (rtx, machine_mode);
203 : : extern bool pshufb_truncv4siv4hi_operand (rtx, machine_mode);
204 : : extern bool pshufb_truncv8hiv8qi_operand (rtx, machine_mode);
205 : : extern bool pmovzx_parallel (rtx, machine_mode);
206 : : extern bool const_vector_duplicate_operand (rtx, machine_mode);
207 : : extern bool avx_vbroadcast_operand (rtx, machine_mode);
208 : : extern bool palignr_operand (rtx, machine_mode);
209 : : extern bool avx2_pblendw_operand (rtx, machine_mode);
210 : : extern bool general_vector_operand (rtx, machine_mode);
211 : : extern bool register_or_constm1_operand (rtx, machine_mode);
212 : : extern bool save_multiple (rtx, machine_mode);
213 : : extern bool restore_multiple (rtx, machine_mode);
214 : : extern bool encodekey128_operation (rtx, machine_mode);
215 : : extern bool encodekey256_operation (rtx, machine_mode);
216 : : extern bool aeswidekl_operation (rtx, machine_mode);
217 : : extern bool apx_evex_memory_operand (rtx, machine_mode);
218 : : extern bool apx_evex_add_memory_operand (rtx, machine_mode);
219 : : #endif /* HAVE_MACHINE_MODES */
220 : :
221 : : #ifdef GCC_HARD_REG_SET_H
222 : : struct target_constraints {
223 : : HARD_REG_SET register_filters[1];
224 : : };
225 : :
226 : : extern struct target_constraints default_target_constraints;
227 : : #if SWITCHABLE_TARGET
228 : : extern struct target_constraints *this_target_constraints;
229 : : #else
230 : : #define this_target_constraints (&default_target_constraints)
231 : : #endif
232 : :
233 : : #define TEST_REGISTER_FILTER_BIT(ID, REGNO) \
234 : : ((void) (ID), (void) (REGNO), false)
235 : :
236 : : inline bool
237 : : test_register_filters (unsigned int, unsigned int)
238 : : {
239 : : return true;
240 : : }
241 : : #endif
242 : :
243 : : #define CONSTRAINT_NUM_DEFINED_P 1
244 : : enum constraint_num
245 : : {
246 : : CONSTRAINT__UNKNOWN = 0,
247 : : CONSTRAINT_r,
248 : : CONSTRAINT_R,
249 : : CONSTRAINT_q,
250 : : CONSTRAINT_Q,
251 : : CONSTRAINT_l,
252 : : CONSTRAINT_a,
253 : : CONSTRAINT_b,
254 : : CONSTRAINT_c,
255 : : CONSTRAINT_d,
256 : : CONSTRAINT_S,
257 : : CONSTRAINT_D,
258 : : CONSTRAINT_A,
259 : : CONSTRAINT_U,
260 : : CONSTRAINT_f,
261 : : CONSTRAINT_t,
262 : : CONSTRAINT_u,
263 : : CONSTRAINT_Yk,
264 : : CONSTRAINT_k,
265 : : CONSTRAINT_y,
266 : : CONSTRAINT_x,
267 : : CONSTRAINT_v,
268 : : CONSTRAINT_Yz,
269 : : CONSTRAINT_Yd,
270 : : CONSTRAINT_Yp,
271 : : CONSTRAINT_Ya,
272 : : CONSTRAINT_Yb,
273 : : CONSTRAINT_Yf,
274 : : CONSTRAINT_Yr,
275 : : CONSTRAINT_Yv,
276 : : CONSTRAINT_Yw,
277 : : CONSTRAINT_YW,
278 : : CONSTRAINT_jR,
279 : : CONSTRAINT_jr,
280 : : CONSTRAINT_jc,
281 : : CONSTRAINT_I,
282 : : CONSTRAINT_J,
283 : : CONSTRAINT_K,
284 : : CONSTRAINT_L,
285 : : CONSTRAINT_M,
286 : : CONSTRAINT_N,
287 : : CONSTRAINT_O,
288 : : CONSTRAINT_m,
289 : : CONSTRAINT_o,
290 : : CONSTRAINT_jm,
291 : : CONSTRAINT_jo,
292 : : CONSTRAINT_je,
293 : : CONSTRAINT_jM,
294 : : CONSTRAINT_jO,
295 : : CONSTRAINT_Bm,
296 : : CONSTRAINT_Bk,
297 : : CONSTRAINT_Bn,
298 : : CONSTRAINT_Br,
299 : : CONSTRAINT_ja,
300 : : CONSTRAINT_p,
301 : : CONSTRAINT_Tv,
302 : : CONSTRAINT_Ts,
303 : : CONSTRAINT_jp,
304 : : CONSTRAINT_jb,
305 : : CONSTRAINT_Bz,
306 : : CONSTRAINT_BH,
307 : : CONSTRAINT_Wb,
308 : : CONSTRAINT_Wc,
309 : : CONSTRAINT_Ww,
310 : : CONSTRAINT_G,
311 : : CONSTRAINT_e,
312 : : CONSTRAINT_We,
313 : : CONSTRAINT_Wz,
314 : : CONSTRAINT_Wd,
315 : : CONSTRAINT_Wf,
316 : : CONSTRAINT_Ws,
317 : : CONSTRAINT_Z,
318 : : CONSTRAINT_Bf,
319 : : CONSTRAINT_V,
320 : : CONSTRAINT__l,
321 : : CONSTRAINT__g,
322 : : CONSTRAINT_BF,
323 : : CONSTRAINT_BM,
324 : : CONSTRAINT_j_l,
325 : : CONSTRAINT_j_g,
326 : : CONSTRAINT_jV,
327 : : CONSTRAINT_i,
328 : : CONSTRAINT_s,
329 : : CONSTRAINT__c,
330 : : CONSTRAINT_n,
331 : : CONSTRAINT_E,
332 : : CONSTRAINT_F,
333 : : CONSTRAINT_X,
334 : : CONSTRAINT_Bg,
335 : : CONSTRAINT_Bs,
336 : : CONSTRAINT_Bw,
337 : : CONSTRAINT_BC,
338 : : CONSTRAINT_C,
339 : : CONSTRAINT__LIMIT
340 : : };
341 : :
342 : : extern enum constraint_num lookup_constraint_1 (const char *);
343 : : extern const unsigned char lookup_constraint_array[];
344 : :
345 : : /* Return the constraint at the beginning of P, or CONSTRAINT__UNKNOWN if it
346 : : isn't recognized. */
347 : :
348 : : static inline enum constraint_num
349 : 17291351241 : lookup_constraint (const char *p)
350 : : {
351 : 17291351241 : unsigned int index = lookup_constraint_array[(unsigned char) *p];
352 : 17291351241 : return (index == UCHAR_MAX
353 : 17291351241 : ? lookup_constraint_1 (p)
354 : 17291351241 : : (enum constraint_num) index);
355 : : }
356 : :
357 : : extern bool (*constraint_satisfied_p_array[]) (rtx);
358 : :
359 : : /* Return true if X satisfies constraint C. */
360 : :
361 : : static inline bool
362 : 6176483203 : constraint_satisfied_p (rtx x, enum constraint_num c)
363 : : {
364 : 6176483203 : int i = (int) c - (int) CONSTRAINT_I;
365 : 6176483203 : return i >= 0 && constraint_satisfied_p_array[i] (x);
366 : : }
367 : :
368 : : static inline bool
369 : 15163249288 : insn_extra_register_constraint (enum constraint_num c)
370 : : {
371 : 15163249288 : return c >= CONSTRAINT_r && c <= CONSTRAINT_jc;
372 : : }
373 : :
374 : : static inline bool
375 : 4567167054 : insn_extra_memory_constraint (enum constraint_num c)
376 : : {
377 : 4567167054 : return c >= CONSTRAINT_m && c <= CONSTRAINT_jO;
378 : : }
379 : :
380 : : static inline bool
381 : 166250891 : insn_extra_special_memory_constraint (enum constraint_num c)
382 : : {
383 : 166250891 : return c >= CONSTRAINT_Bm && c <= CONSTRAINT_ja;
384 : : }
385 : :
386 : : static inline bool
387 : : insn_extra_relaxed_memory_constraint (enum constraint_num)
388 : : {
389 : : return false;
390 : : }
391 : :
392 : : static inline bool
393 : 4842385352 : insn_extra_address_constraint (enum constraint_num c)
394 : : {
395 : 4842385352 : return c >= CONSTRAINT_p && c <= CONSTRAINT_jb;
396 : : }
397 : :
398 : : static inline void
399 : : insn_extra_constraint_allows_reg_mem (enum constraint_num c,
400 : : bool *allows_reg, bool *allows_mem)
401 : : {
402 : : if (c >= CONSTRAINT_Bz && c <= CONSTRAINT_Z)
403 : : return;
404 : : if (c >= CONSTRAINT_Bf && c <= CONSTRAINT_Bf)
405 : : {
406 : 0 : *allows_reg = true;
407 : 0 : return;
408 : : }
409 : : if (c >= CONSTRAINT_V && c <= CONSTRAINT_jV)
410 : : {
411 : 0 : *allows_mem = true;
412 : 0 : return;
413 : : }
414 : 2409 : (void) c;
415 : 2409 : *allows_reg = true;
416 : 2409 : *allows_mem = true;
417 : : }
418 : :
419 : : static inline size_t
420 : 26483503328 : insn_constraint_len (char fc, const char *str ATTRIBUTE_UNUSED)
421 : : {
422 : 26483503328 : switch (fc)
423 : : {
424 : : case 'B': return 2;
425 : : case 'T': return 2;
426 : : case 'W': return 2;
427 : : case 'Y': return 2;
428 : : case 'j': return 2;
429 : 25508874411 : default: break;
430 : : }
431 : 25508874411 : return 1;
432 : : }
433 : :
434 : : #define CONSTRAINT_LEN(c_,s_) insn_constraint_len (c_,s_)
435 : :
436 : : extern enum reg_class reg_class_for_constraint_1 (enum constraint_num);
437 : :
438 : : static inline enum reg_class
439 : 15145194825 : reg_class_for_constraint (enum constraint_num c)
440 : : {
441 : 15163249288 : if (insn_extra_register_constraint (c))
442 : 7176066384 : return reg_class_for_constraint_1 (c);
443 : : return NO_REGS;
444 : : }
445 : :
446 : : extern bool insn_const_int_ok_for_constraint (HOST_WIDE_INT, enum constraint_num);
447 : : #define CONST_OK_FOR_CONSTRAINT_P(v_,c_,s_) \
448 : : insn_const_int_ok_for_constraint (v_, lookup_constraint (s_))
449 : :
450 : : enum constraint_type
451 : : {
452 : : CT_REGISTER,
453 : : CT_CONST_INT,
454 : : CT_MEMORY,
455 : : CT_SPECIAL_MEMORY,
456 : : CT_RELAXED_MEMORY,
457 : : CT_ADDRESS,
458 : : CT_FIXED_FORM
459 : : };
460 : :
461 : : static inline enum constraint_type
462 : 7011108709 : get_constraint_type (enum constraint_num c)
463 : : {
464 : 7011108709 : if (c >= CONSTRAINT_Bm)
465 : : {
466 : 828040057 : if (c >= CONSTRAINT_Bz)
467 : : return CT_FIXED_FORM;
468 : 114112569 : if (c >= CONSTRAINT_p)
469 : : return CT_ADDRESS;
470 : 108618919 : return CT_SPECIAL_MEMORY;
471 : : }
472 : 6183068652 : if (c >= CONSTRAINT_m)
473 : : return CT_MEMORY;
474 : 5628364735 : if (c >= CONSTRAINT_I)
475 : 11868731 : return CT_CONST_INT;
476 : : return CT_REGISTER;
477 : : }
478 : :
479 : : #ifdef GCC_HARD_REG_SET_H
480 : : static inline const HARD_REG_SET *
481 : : get_register_filter (constraint_num)
482 : : {
483 : : return nullptr;
484 : : }
485 : : #endif
486 : :
487 : : static inline int
488 : : get_register_filter_id (constraint_num)
489 : : {
490 : : return -1;
491 : : }
492 : : #endif /* tm-preds.h */
|