9 #ifndef FIRM_BE_SPARC_GEN_SPARC_REGALLOC_IF_H
10 #define FIRM_BE_SPARC_GEN_SPARC_REGALLOC_IF_H
12 #include "sparc_nodes_attr.h"
168 REG_MUL_DIV_HIGH_RES_Y,
174 N_sparc_flags_REGS = 1,
175 N_sparc_fp_REGS = 32,
176 N_sparc_fpflags_REGS = 1,
177 N_sparc_gp_REGS = 32,
178 N_sparc_mul_div_high_res_REGS = 1,
187 CLASS_sparc_mul_div_high_res,
191 extern const arch_register_req_t sparc_class_reg_req_flags;
192 extern const arch_register_req_t sparc_single_reg_req_flags_psr;
193 extern const arch_register_req_t sparc_class_reg_req_fp;
194 extern const arch_register_req_t sparc_single_reg_req_fp_f0;
195 extern const arch_register_req_t sparc_single_reg_req_fp_f1;
196 extern const arch_register_req_t sparc_single_reg_req_fp_f2;
197 extern const arch_register_req_t sparc_single_reg_req_fp_f3;
198 extern const arch_register_req_t sparc_single_reg_req_fp_f4;
199 extern const arch_register_req_t sparc_single_reg_req_fp_f5;
200 extern const arch_register_req_t sparc_single_reg_req_fp_f6;
201 extern const arch_register_req_t sparc_single_reg_req_fp_f7;
202 extern const arch_register_req_t sparc_single_reg_req_fp_f8;
203 extern const arch_register_req_t sparc_single_reg_req_fp_f9;
204 extern const arch_register_req_t sparc_single_reg_req_fp_f10;
205 extern const arch_register_req_t sparc_single_reg_req_fp_f11;
206 extern const arch_register_req_t sparc_single_reg_req_fp_f12;
207 extern const arch_register_req_t sparc_single_reg_req_fp_f13;
208 extern const arch_register_req_t sparc_single_reg_req_fp_f14;
209 extern const arch_register_req_t sparc_single_reg_req_fp_f15;
210 extern const arch_register_req_t sparc_single_reg_req_fp_f16;
211 extern const arch_register_req_t sparc_single_reg_req_fp_f17;
212 extern const arch_register_req_t sparc_single_reg_req_fp_f18;
213 extern const arch_register_req_t sparc_single_reg_req_fp_f19;
214 extern const arch_register_req_t sparc_single_reg_req_fp_f20;
215 extern const arch_register_req_t sparc_single_reg_req_fp_f21;
216 extern const arch_register_req_t sparc_single_reg_req_fp_f22;
217 extern const arch_register_req_t sparc_single_reg_req_fp_f23;
218 extern const arch_register_req_t sparc_single_reg_req_fp_f24;
219 extern const arch_register_req_t sparc_single_reg_req_fp_f25;
220 extern const arch_register_req_t sparc_single_reg_req_fp_f26;
221 extern const arch_register_req_t sparc_single_reg_req_fp_f27;
222 extern const arch_register_req_t sparc_single_reg_req_fp_f28;
223 extern const arch_register_req_t sparc_single_reg_req_fp_f29;
224 extern const arch_register_req_t sparc_single_reg_req_fp_f30;
225 extern const arch_register_req_t sparc_single_reg_req_fp_f31;
226 extern const arch_register_req_t sparc_class_reg_req_fpflags;
227 extern const arch_register_req_t sparc_single_reg_req_fpflags_fsr;
228 extern const arch_register_req_t sparc_class_reg_req_gp;
229 extern const arch_register_req_t sparc_single_reg_req_gp_l0;
230 extern const arch_register_req_t sparc_single_reg_req_gp_l1;
231 extern const arch_register_req_t sparc_single_reg_req_gp_l2;
232 extern const arch_register_req_t sparc_single_reg_req_gp_l3;
233 extern const arch_register_req_t sparc_single_reg_req_gp_l4;
234 extern const arch_register_req_t sparc_single_reg_req_gp_l5;
235 extern const arch_register_req_t sparc_single_reg_req_gp_l6;
236 extern const arch_register_req_t sparc_single_reg_req_gp_l7;
237 extern const arch_register_req_t sparc_single_reg_req_gp_g0;
238 extern const arch_register_req_t sparc_single_reg_req_gp_g1;
239 extern const arch_register_req_t sparc_single_reg_req_gp_g2;
240 extern const arch_register_req_t sparc_single_reg_req_gp_g3;
241 extern const arch_register_req_t sparc_single_reg_req_gp_g4;
242 extern const arch_register_req_t sparc_single_reg_req_gp_g5;
243 extern const arch_register_req_t sparc_single_reg_req_gp_g6;
244 extern const arch_register_req_t sparc_single_reg_req_gp_g7;
245 extern const arch_register_req_t sparc_single_reg_req_gp_o0;
246 extern const arch_register_req_t sparc_single_reg_req_gp_o1;
247 extern const arch_register_req_t sparc_single_reg_req_gp_o2;
248 extern const arch_register_req_t sparc_single_reg_req_gp_o3;
249 extern const arch_register_req_t sparc_single_reg_req_gp_o4;
250 extern const arch_register_req_t sparc_single_reg_req_gp_o5;
251 extern const arch_register_req_t sparc_single_reg_req_gp_sp;
252 extern const arch_register_req_t sparc_single_reg_req_gp_o7;
253 extern const arch_register_req_t sparc_single_reg_req_gp_i0;
254 extern const arch_register_req_t sparc_single_reg_req_gp_i1;
255 extern const arch_register_req_t sparc_single_reg_req_gp_i2;
256 extern const arch_register_req_t sparc_single_reg_req_gp_i3;
257 extern const arch_register_req_t sparc_single_reg_req_gp_i4;
258 extern const arch_register_req_t sparc_single_reg_req_gp_i5;
259 extern const arch_register_req_t sparc_single_reg_req_gp_fp;
260 extern const arch_register_req_t sparc_single_reg_req_gp_i7;
261 extern const arch_register_req_t sparc_class_reg_req_mul_div_high_res;
262 extern const arch_register_req_t sparc_single_reg_req_mul_div_high_res_y;
265 extern const arch_register_t sparc_registers[N_SPARC_REGISTERS];
267 extern arch_register_class_t sparc_reg_classes[N_SPARC_CLASSES];
269 void sparc_register_init(
void);