• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/lib/gcc/arm-none-eabi/4.6.1/plugin/include/
1/* Generated automatically by the program 'build/genpreds'
2   from the machine description file '/scratch/jwlemke/2011.09-arm-eabi-lite/src/gcc-4.6-2011.09/gcc/config/arm/arm.md'.  */
3
4#ifndef GCC_TM_PREDS_H
5#define GCC_TM_PREDS_H
6
7#ifdef HAVE_MACHINE_MODES
8extern int general_operand (rtx, enum machine_mode);
9extern int address_operand (rtx, enum machine_mode);
10extern int register_operand (rtx, enum machine_mode);
11extern int pmode_register_operand (rtx, enum machine_mode);
12extern int scratch_operand (rtx, enum machine_mode);
13extern int immediate_operand (rtx, enum machine_mode);
14extern int const_int_operand (rtx, enum machine_mode);
15extern int const_double_operand (rtx, enum machine_mode);
16extern int nonimmediate_operand (rtx, enum machine_mode);
17extern int nonmemory_operand (rtx, enum machine_mode);
18extern int push_operand (rtx, enum machine_mode);
19extern int pop_operand (rtx, enum machine_mode);
20extern int memory_operand (rtx, enum machine_mode);
21extern int indirect_operand (rtx, enum machine_mode);
22extern int ordered_comparison_operator (rtx, enum machine_mode);
23extern int comparison_operator (rtx, enum machine_mode);
24extern int s_register_operand (rtx, enum machine_mode);
25extern int arm_hard_register_operand (rtx, enum machine_mode);
26extern int low_register_operand (rtx, enum machine_mode);
27extern int low_reg_or_int_operand (rtx, enum machine_mode);
28extern int arm_general_register_operand (rtx, enum machine_mode);
29extern int f_register_operand (rtx, enum machine_mode);
30extern int vfp_register_operand (rtx, enum machine_mode);
31extern int subreg_lowpart_operator (rtx, enum machine_mode);
32extern int reg_or_int_operand (rtx, enum machine_mode);
33extern int arm_immediate_operand (rtx, enum machine_mode);
34extern int arm_immediate_di_operand (rtx, enum machine_mode);
35extern int arm_neg_immediate_operand (rtx, enum machine_mode);
36extern int arm_not_immediate_operand (rtx, enum machine_mode);
37extern int const0_operand (rtx, enum machine_mode);
38extern int arm_rhs_operand (rtx, enum machine_mode);
39extern int arm_rhsm_operand (rtx, enum machine_mode);
40extern int shift_amount_operand (rtx, enum machine_mode);
41extern int arm_add_operand (rtx, enum machine_mode);
42extern int arm_addimm_operand (rtx, enum machine_mode);
43extern int arm_not_operand (rtx, enum machine_mode);
44extern int arm_di_operand (rtx, enum machine_mode);
45extern int offsettable_memory_operand (rtx, enum machine_mode);
46extern int call_memory_operand (rtx, enum machine_mode);
47extern int arm_reload_memory_operand (rtx, enum machine_mode);
48extern int arm_float_rhs_operand (rtx, enum machine_mode);
49extern int arm_float_add_operand (rtx, enum machine_mode);
50extern int vfp_compare_operand (rtx, enum machine_mode);
51extern int arm_float_compare_operand (rtx, enum machine_mode);
52extern int index_operand (rtx, enum machine_mode);
53extern int shiftable_operator (rtx, enum machine_mode);
54extern int logical_binary_operator (rtx, enum machine_mode);
55extern int commutative_binary_operator (rtx, enum machine_mode);
56extern int shift_operator (rtx, enum machine_mode);
57extern int sat_shift_operator (rtx, enum machine_mode);
58extern int mult_operator (rtx, enum machine_mode);
59extern int thumb_16bit_operator (rtx, enum machine_mode);
60extern int equality_operator (rtx, enum machine_mode);
61extern int expandable_comparison_operator (rtx, enum machine_mode);
62extern int arm_comparison_operator (rtx, enum machine_mode);
63extern int lt_ge_comparison_operator (rtx, enum machine_mode);
64extern int noov_comparison_operator (rtx, enum machine_mode);
65extern int minmax_operator (rtx, enum machine_mode);
66extern int cc_register (rtx, enum machine_mode);
67extern int dominant_cc_register (rtx, enum machine_mode);
68extern int arm_extendqisi_mem_op (rtx, enum machine_mode);
69extern int arm_reg_or_extendqisi_mem_op (rtx, enum machine_mode);
70extern int power_of_two_operand (rtx, enum machine_mode);
71extern int nonimmediate_di_operand (rtx, enum machine_mode);
72extern int di_operand (rtx, enum machine_mode);
73extern int nonimmediate_soft_df_operand (rtx, enum machine_mode);
74extern int soft_df_operand (rtx, enum machine_mode);
75extern int load_multiple_operation (rtx, enum machine_mode);
76extern int store_multiple_operation (rtx, enum machine_mode);
77extern int multi_register_push (rtx, enum machine_mode);
78extern int thumb1_cmp_operand (rtx, enum machine_mode);
79extern int thumb1_cmpneg_operand (rtx, enum machine_mode);
80extern int thumb_cbrch_target_operand (rtx, enum machine_mode);
81extern int cirrus_register_operand (rtx, enum machine_mode);
82extern int cirrus_fp_register (rtx, enum machine_mode);
83extern int cirrus_shift_const (rtx, enum machine_mode);
84extern int const_multiple_of_8_operand (rtx, enum machine_mode);
85extern int imm_for_neon_mov_operand (rtx, enum machine_mode);
86extern int imm_for_neon_logic_operand (rtx, enum machine_mode);
87extern int imm_for_neon_inv_logic_operand (rtx, enum machine_mode);
88extern int neon_logic_op2 (rtx, enum machine_mode);
89extern int neon_inv_logic_op2 (rtx, enum machine_mode);
90extern int neon_lane_number (rtx, enum machine_mode);
91extern int cmpdi_operand (rtx, enum machine_mode);
92extern int arm_sync_memory_operand (rtx, enum machine_mode);
93extern int vect_par_constant_high (rtx, enum machine_mode);
94extern int vect_par_constant_low (rtx, enum machine_mode);
95#endif /* HAVE_MACHINE_MODES */
96
97#define CONSTRAINT_NUM_DEFINED_P 1
98enum constraint_num
99{
100  CONSTRAINT__UNKNOWN = 0,
101  CONSTRAINT_f,
102  CONSTRAINT_t,
103  CONSTRAINT_v,
104  CONSTRAINT_w,
105  CONSTRAINT_x,
106  CONSTRAINT_y,
107  CONSTRAINT_z,
108  CONSTRAINT_l,
109  CONSTRAINT_h,
110  CONSTRAINT_j,
111  CONSTRAINT_k,
112  CONSTRAINT_b,
113  CONSTRAINT_c,
114  CONSTRAINT_I,
115  CONSTRAINT_J,
116  CONSTRAINT_K,
117  CONSTRAINT_L,
118  CONSTRAINT_M,
119  CONSTRAINT_N,
120  CONSTRAINT_O,
121  CONSTRAINT_Pa,
122  CONSTRAINT_Pb,
123  CONSTRAINT_Pc,
124  CONSTRAINT_Pd,
125  CONSTRAINT_Ps,
126  CONSTRAINT_Pt,
127  CONSTRAINT_Pu,
128  CONSTRAINT_Pv,
129  CONSTRAINT_Pw,
130  CONSTRAINT_Px,
131  CONSTRAINT_G,
132  CONSTRAINT_H,
133  CONSTRAINT_Dz,
134  CONSTRAINT_D0,
135  CONSTRAINT_Da,
136  CONSTRAINT_Db,
137  CONSTRAINT_Dc,
138  CONSTRAINT_Di,
139  CONSTRAINT_Dn,
140  CONSTRAINT_Dl,
141  CONSTRAINT_DL,
142  CONSTRAINT_Dv,
143  CONSTRAINT_Dy,
144  CONSTRAINT_Ut,
145  CONSTRAINT_Uv,
146  CONSTRAINT_Uy,
147  CONSTRAINT_Un,
148  CONSTRAINT_Um,
149  CONSTRAINT_Us,
150  CONSTRAINT_Uq,
151  CONSTRAINT_Q,
152  CONSTRAINT_Uw,
153  CONSTRAINT__LIMIT
154};
155
156extern enum constraint_num lookup_constraint (const char *);
157extern bool constraint_satisfied_p (rtx, enum constraint_num);
158
159static inline size_t
160insn_constraint_len (char fc, const char *str ATTRIBUTE_UNUSED)
161{
162  switch (fc)
163    {
164    case 'D': return 2;
165    case 'P': return 2;
166    case 'U': return 2;
167    default: break;
168    }
169  return 1;
170}
171
172#define CONSTRAINT_LEN(c_,s_) insn_constraint_len (c_,s_)
173
174extern enum reg_class regclass_for_constraint (enum constraint_num);
175#define REG_CLASS_FROM_CONSTRAINT(c_,s_) \
176    regclass_for_constraint (lookup_constraint (s_))
177#define REG_CLASS_FOR_CONSTRAINT(x_) \
178    regclass_for_constraint (x_)
179
180extern bool insn_const_int_ok_for_constraint (HOST_WIDE_INT, enum constraint_num);
181#define CONST_OK_FOR_CONSTRAINT_P(v_,c_,s_) \
182    insn_const_int_ok_for_constraint (v_, lookup_constraint (s_))
183
184#define CONST_DOUBLE_OK_FOR_CONSTRAINT_P(v_,c_,s_) \
185    constraint_satisfied_p (v_, lookup_constraint (s_))
186
187#define EXTRA_CONSTRAINT_STR(v_,c_,s_) \
188    constraint_satisfied_p (v_, lookup_constraint (s_))
189
190extern bool insn_extra_memory_constraint (enum constraint_num);
191#define EXTRA_MEMORY_CONSTRAINT(c_,s_) insn_extra_memory_constraint (lookup_constraint (s_))
192
193#define EXTRA_ADDRESS_CONSTRAINT(c_,s_) false
194
195#endif /* tm-preds.h */
196