1 /* Generated automatically by the program 'build/genpreds' 2 from the machine description file '/usr/local/google/buildbot/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 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