1 /* Generated automatically by the program 'build/genpreds'
2    from the machine description file '/mnt/disks/build-disk/src/android/mingw/toolchain/gcc/gcc-4.8.3/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 int general_operand (rtx, enum machine_mode);
9 extern int address_operand (rtx, enum machine_mode);
10 extern int register_operand (rtx, enum machine_mode);
11 extern int pmode_register_operand (rtx, enum machine_mode);
12 extern int scratch_operand (rtx, enum machine_mode);
13 extern int immediate_operand (rtx, enum machine_mode);
14 extern int const_int_operand (rtx, enum machine_mode);
15 extern int const_double_operand (rtx, enum machine_mode);
16 extern int nonimmediate_operand (rtx, enum machine_mode);
17 extern int nonmemory_operand (rtx, enum machine_mode);
18 extern int push_operand (rtx, enum machine_mode);
19 extern int pop_operand (rtx, enum machine_mode);
20 extern int memory_operand (rtx, enum machine_mode);
21 extern int indirect_operand (rtx, enum machine_mode);
22 extern int ordered_comparison_operator (rtx, enum machine_mode);
23 extern int comparison_operator (rtx, enum machine_mode);
24 extern int any_fp_register_operand (rtx, enum machine_mode);
25 extern int fp_register_operand (rtx, enum machine_mode);
26 extern int register_and_not_any_fp_reg_operand (rtx, enum machine_mode);
27 extern int register_and_not_fp_reg_operand (rtx, enum machine_mode);
28 extern int mmx_reg_operand (rtx, enum machine_mode);
29 extern int sse_reg_operand (rtx, enum machine_mode);
30 extern int q_regs_operand (rtx, enum machine_mode);
31 extern int ext_register_operand (rtx, enum machine_mode);
32 extern int ax_reg_operand (rtx, enum machine_mode);
33 extern int flags_reg_operand (rtx, enum machine_mode);
34 extern int QIreg_operand (rtx, enum machine_mode);
35 extern int ext_QIreg_operand (rtx, enum machine_mode);
36 extern int x86_64_immediate_operand (rtx, enum machine_mode);
37 extern int x86_64_zext_immediate_operand (rtx, enum machine_mode);
38 extern int x86_64_general_operand (rtx, enum machine_mode);
39 extern int x86_64_zext_general_operand (rtx, enum machine_mode);
40 extern int x86_64_szext_general_operand (rtx, enum machine_mode);
41 extern int x86_64_nonmemory_operand (rtx, enum machine_mode);
42 extern int x86_64_szext_nonmemory_operand (rtx, enum machine_mode);
43 extern int pic_32bit_operand (rtx, enum machine_mode);
44 extern int x86_64_movabs_operand (rtx, enum machine_mode);
45 extern int symbolic_operand (rtx, enum machine_mode);
46 extern int local_symbolic_operand (rtx, enum machine_mode);
47 extern int gotoff_operand (rtx, enum machine_mode);
48 extern int tls_symbolic_operand (rtx, enum machine_mode);
49 extern int tls_modbase_operand (rtx, enum machine_mode);
50 extern int constant_call_address_operand (rtx, enum machine_mode);
51 extern int call_register_no_elim_operand (rtx, enum machine_mode);
52 extern int register_no_elim_operand (rtx, enum machine_mode);
53 extern int index_register_operand (rtx, enum machine_mode);
54 extern int general_no_elim_operand (rtx, enum machine_mode);
55 extern int nonmemory_no_elim_operand (rtx, enum machine_mode);
56 extern int indirect_branch_operand (rtx, enum machine_mode);
57 extern int call_insn_operand (rtx, enum machine_mode);
58 extern int sibcall_insn_operand (rtx, enum machine_mode);
59 extern int const0_operand (rtx, enum machine_mode);
60 extern int const1_operand (rtx, enum machine_mode);
61 extern int const8_operand (rtx, enum machine_mode);
62 extern int const128_operand (rtx, enum machine_mode);
63 extern int const_32bit_mask (rtx, enum machine_mode);
64 extern int const248_operand (rtx, enum machine_mode);
65 extern int const1248_operand (rtx, enum machine_mode);
66 extern int const359_operand (rtx, enum machine_mode);
67 extern int const_0_to_1_operand (rtx, enum machine_mode);
68 extern int const_0_to_3_operand (rtx, enum machine_mode);
69 extern int const_0_to_7_operand (rtx, enum machine_mode);
70 extern int const_0_to_15_operand (rtx, enum machine_mode);
71 extern int const_0_to_31_operand (rtx, enum machine_mode);
72 extern int const_0_to_63_operand (rtx, enum machine_mode);
73 extern int const_0_to_255_operand (rtx, enum machine_mode);
74 extern int const_0_to_255_mul_8_operand (rtx, enum machine_mode);
75 extern int const_1_to_31_operand (rtx, enum machine_mode);
76 extern int const_1_to_63_operand (rtx, enum machine_mode);
77 extern int const_2_to_3_operand (rtx, enum machine_mode);
78 extern int const_4_to_5_operand (rtx, enum machine_mode);
79 extern int const_4_to_7_operand (rtx, enum machine_mode);
80 extern int const_6_to_7_operand (rtx, enum machine_mode);
81 extern int const_8_to_11_operand (rtx, enum machine_mode);
82 extern int const_12_to_15_operand (rtx, enum machine_mode);
83 extern int incdec_operand (rtx, enum machine_mode);
84 extern int reg_or_pm1_operand (rtx, enum machine_mode);
85 extern int shiftdi_operand (rtx, enum machine_mode);
86 extern int ashldi_input_operand (rtx, enum machine_mode);
87 extern int zero_extended_scalar_load_operand (rtx, enum machine_mode);
88 extern int vector_all_ones_operand (rtx, enum machine_mode);
89 extern int vector_move_operand (rtx, enum machine_mode);
90 extern int nonimmediate_or_const_vector_operand (rtx, enum machine_mode);
91 extern int nonimmediate_or_sse_const_operand (rtx, enum machine_mode);
92 extern int reg_or_0_operand (rtx, enum machine_mode);
93 extern int lea_address_operand (rtx, enum machine_mode);
94 extern int SImode_address_operand (rtx, enum machine_mode);
95 extern int vsib_address_operand (rtx, enum machine_mode);
96 extern int vsib_mem_operator (rtx, enum machine_mode);
97 extern int aligned_operand (rtx, enum machine_mode);
98 extern int memory_displacement_operand (rtx, enum machine_mode);
99 extern int memory_displacement_only_operand (rtx, enum machine_mode);
100 extern int cmpxchg8b_pic_memory_operand (rtx, enum machine_mode);
101 extern int long_memory_operand (rtx, enum machine_mode);
102 extern int fcmov_comparison_operator (rtx, enum machine_mode);
103 extern int sse_comparison_operator (rtx, enum machine_mode);
104 extern int ix86_comparison_int_operator (rtx, enum machine_mode);
105 extern int ix86_comparison_uns_operator (rtx, enum machine_mode);
106 extern int bt_comparison_operator (rtx, enum machine_mode);
107 extern int ix86_comparison_operator (rtx, enum machine_mode);
108 extern int ix86_carry_flag_operator (rtx, enum machine_mode);
109 extern int ix86_trivial_fp_comparison_operator (rtx, enum machine_mode);
110 extern int ix86_fp_comparison_operator (rtx, enum machine_mode);
111 extern int ix86_swapped_fp_comparison_operator (rtx, enum machine_mode);
112 extern int cmp_fp_expander_operand (rtx, enum machine_mode);
113 extern int binary_fp_operator (rtx, enum machine_mode);
114 extern int mult_operator (rtx, enum machine_mode);
115 extern int div_operator (rtx, enum machine_mode);
116 extern int plusminuslogic_operator (rtx, enum machine_mode);
117 extern int float_operator (rtx, enum machine_mode);
118 extern int arith_or_logical_operator (rtx, enum machine_mode);
119 extern int commutative_operator (rtx, enum machine_mode);
120 extern int promotable_binary_operator (rtx, enum machine_mode);
121 extern int compare_operator (rtx, enum machine_mode);
122 extern int absneg_operator (rtx, enum machine_mode);
123 extern int misaligned_operand (rtx, enum machine_mode);
124 extern int emms_operation (rtx, enum machine_mode);
125 extern int vzeroall_operation (rtx, enum machine_mode);
126 extern int vzeroupper_operation (rtx, enum machine_mode);
127 extern int avx_vbroadcast_operand (rtx, enum machine_mode);
128 extern int avx2_pblendw_operand (rtx, enum machine_mode);
129 #endif /* HAVE_MACHINE_MODES */
130 
131 #define CONSTRAINT_NUM_DEFINED_P 1
132 enum constraint_num
133 {
134   CONSTRAINT__UNKNOWN = 0,
135   CONSTRAINT_R,
136   CONSTRAINT_q,
137   CONSTRAINT_Q,
138   CONSTRAINT_l,
139   CONSTRAINT_a,
140   CONSTRAINT_b,
141   CONSTRAINT_c,
142   CONSTRAINT_d,
143   CONSTRAINT_S,
144   CONSTRAINT_D,
145   CONSTRAINT_A,
146   CONSTRAINT_U,
147   CONSTRAINT_f,
148   CONSTRAINT_t,
149   CONSTRAINT_u,
150   CONSTRAINT_y,
151   CONSTRAINT_x,
152   CONSTRAINT_Yz,
153   CONSTRAINT_Yi,
154   CONSTRAINT_Ym,
155   CONSTRAINT_Yp,
156   CONSTRAINT_Ya,
157   CONSTRAINT_Yd,
158   CONSTRAINT_Yx,
159   CONSTRAINT_Yf,
160   CONSTRAINT_z,
161   CONSTRAINT_w,
162   CONSTRAINT_I,
163   CONSTRAINT_J,
164   CONSTRAINT_K,
165   CONSTRAINT_L,
166   CONSTRAINT_M,
167   CONSTRAINT_N,
168   CONSTRAINT_O,
169   CONSTRAINT_G,
170   CONSTRAINT_C,
171   CONSTRAINT_e,
172   CONSTRAINT_Wz,
173   CONSTRAINT_Z,
174   CONSTRAINT__LIMIT
175 };
176 
177 extern enum constraint_num lookup_constraint (const char *);
178 extern bool constraint_satisfied_p (rtx, enum constraint_num);
179 
180 static inline size_t
insn_constraint_len(char fc,const char * str ATTRIBUTE_UNUSED)181 insn_constraint_len (char fc, const char *str ATTRIBUTE_UNUSED)
182 {
183   switch (fc)
184     {
185     case 'W': return 2;
186     case 'Y': return 2;
187     default: break;
188     }
189   return 1;
190 }
191 
192 #define CONSTRAINT_LEN(c_,s_) insn_constraint_len (c_,s_)
193 
194 extern enum reg_class regclass_for_constraint (enum constraint_num);
195 #define REG_CLASS_FROM_CONSTRAINT(c_,s_) \
196     regclass_for_constraint (lookup_constraint (s_))
197 #define REG_CLASS_FOR_CONSTRAINT(x_) \
198     regclass_for_constraint (x_)
199 
200 extern bool insn_const_int_ok_for_constraint (HOST_WIDE_INT, enum constraint_num);
201 #define CONST_OK_FOR_CONSTRAINT_P(v_,c_,s_) \
202     insn_const_int_ok_for_constraint (v_, lookup_constraint (s_))
203 
204 #define CONST_DOUBLE_OK_FOR_CONSTRAINT_P(v_,c_,s_) \
205     constraint_satisfied_p (v_, lookup_constraint (s_))
206 
207 #define EXTRA_CONSTRAINT_STR(v_,c_,s_) \
208     constraint_satisfied_p (v_, lookup_constraint (s_))
209 
210 #define EXTRA_MEMORY_CONSTRAINT(c_,s_) false
211 
212 #define EXTRA_ADDRESS_CONSTRAINT(c_,s_) false
213 
214 #endif /* tm-preds.h */
215