Home | History | Annotate | Download | only in include
      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