1 /**
2  * @file
3  * @brief Function prototypes for the new opcode functions.
4  * @note  DO NOT EDIT THIS FILE, your changes will be lost.
5  *        Edit ir/be/sparc/sparc_spec.pl instead.
6  *        created by: ir/be/scripts/generate_new_opcodes.pl ir/be/sparc/sparc_spec.pl ir/be/sparc
7  * @date  Mon Nov 19 18:12:23 2012
8  */
9 #ifndef FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H
10 #define FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H
11 
12 typedef enum sparc_opcodes {
13 	iro_sparc_SubCCZero,
14 	iro_sparc_Sra,
15 	iro_sparc_Ld,
16 	iro_sparc_fitof,
17 	iro_sparc_fadd,
18 	iro_sparc_Start,
19 	iro_sparc_RestoreZero,
20 	iro_sparc_SetHi,
21 	iro_sparc_Xor,
22 	iro_sparc_Or,
23 	iro_sparc_Restore,
24 	iro_sparc_SubX_t,
25 	iro_sparc_UMulh,
26 	iro_sparc_Ba,
27 	iro_sparc_Cmp,
28 	iro_sparc_fftof,
29 	iro_sparc_XNorCCZero,
30 	iro_sparc_Call,
31 	iro_sparc_AddX,
32 	iro_sparc_SubSP,
33 	iro_sparc_Add,
34 	iro_sparc_SubCC,
35 	iro_sparc_Ldf,
36 	iro_sparc_fdiv,
37 	iro_sparc_AndN,
38 	iro_sparc_fftoi,
39 	iro_sparc_XorCCZero,
40 	iro_sparc_St,
41 	iro_sparc_MulCCZero,
42 	iro_sparc_Save,
43 	iro_sparc_fbfcc,
44 	iro_sparc_Sub,
45 	iro_sparc_Mul,
46 	iro_sparc_SubCC_t,
47 	iro_sparc_Stf,
48 	iro_sparc_SDiv,
49 	iro_sparc_AddX_t,
50 	iro_sparc_fabs,
51 	iro_sparc_AddCC,
52 	iro_sparc_Bicc,
53 	iro_sparc_OrN,
54 	iro_sparc_SubX,
55 	iro_sparc_fcmp,
56 	iro_sparc_OrCCZero,
57 	iro_sparc_AddSP,
58 	iro_sparc_SMulh,
59 	iro_sparc_AddCC_t,
60 	iro_sparc_Return,
61 	iro_sparc_XNor,
62 	iro_sparc_AndNCCZero,
63 	iro_sparc_AndCCZero,
64 	iro_sparc_FrameAddr,
65 	iro_sparc_OrNCCZero,
66 	iro_sparc_And,
67 	iro_sparc_fmul,
68 	iro_sparc_AddCCZero,
69 	iro_sparc_UDiv,
70 	iro_sparc_Sll,
71 	iro_sparc_SwitchJmp,
72 	iro_sparc_Srl,
73 	iro_sparc_fneg,
74 	iro_sparc_fsub,
75 	iro_sparc_last_generated,
76 	iro_sparc_last = iro_sparc_last_generated
77 } sparc_opcodes;
78 
79 int is_sparc_irn(const ir_node *node);
80 int is_sparc_op(const ir_op *op);
81 
82 int get_sparc_opcode_first(void);
83 int get_sparc_opcode_last(void);
84 int get_sparc_irn_opcode(const ir_node *node);
85 void sparc_create_opcodes(const arch_irn_ops_t *be_ops);
86 void sparc_free_opcodes(void);
87 extern ir_op *op_sparc_SubCCZero;
88 ir_op *get_op_sparc_SubCCZero(void);
89 int is_sparc_SubCCZero(const ir_node *n);
90 /**
91  * construct SubCCZero node
92  */
93 ir_node *new_bd_sparc_SubCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
94 /**
95  * construct SubCCZero node
96  */
97 ir_node *new_bd_sparc_SubCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
98 
99 extern ir_op *op_sparc_Sra;
100 ir_op *get_op_sparc_Sra(void);
101 int is_sparc_Sra(const ir_node *n);
102 /**
103  * construct Sra node
104  */
105 ir_node *new_bd_sparc_Sra_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
106 /**
107  * construct Sra node
108  */
109 ir_node *new_bd_sparc_Sra_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
110 
111 extern ir_op *op_sparc_Ld;
112 ir_op *get_op_sparc_Ld(void);
113 int is_sparc_Ld(const ir_node *n);
114 /**
115  * construct Ld node
116  */
117 ir_node *new_bd_sparc_Ld_imm(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
118 /**
119  * construct Ld node
120  */
121 ir_node *new_bd_sparc_Ld_reg(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *ptr2, ir_node *mem, ir_mode *ls_mode);
122 
123 extern ir_op *op_sparc_fitof;
124 ir_op *get_op_sparc_fitof(void);
125 int is_sparc_fitof(const ir_node *n);
126 /**
127  * construct fitof node
128  */
129 ir_node *new_bd_sparc_fitof_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
130 /**
131  * construct fitof node
132  */
133 ir_node *new_bd_sparc_fitof_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
134 /**
135  * construct fitof node
136  */
137 ir_node *new_bd_sparc_fitof_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
138 
139 extern ir_op *op_sparc_fadd;
140 ir_op *get_op_sparc_fadd(void);
141 int is_sparc_fadd(const ir_node *n);
142 /**
143  * construct fadd node
144  */
145 ir_node *new_bd_sparc_fadd_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
146 /**
147  * construct fadd node
148  */
149 ir_node *new_bd_sparc_fadd_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
150 /**
151  * construct fadd node
152  */
153 ir_node *new_bd_sparc_fadd_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
154 
155 extern ir_op *op_sparc_Start;
156 ir_op *get_op_sparc_Start(void);
157 int is_sparc_Start(const ir_node *n);
158 /**
159  * construct Start node
160  */
161 ir_node *new_bd_sparc_Start(dbg_info *dbgi, ir_node *block, int n_res);
162 
163 extern ir_op *op_sparc_RestoreZero;
164 ir_op *get_op_sparc_RestoreZero(void);
165 int is_sparc_RestoreZero(const ir_node *n);
166 /**
167  * construct RestoreZero node
168  */
169 ir_node *new_bd_sparc_RestoreZero(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *frame_pointer);
170 
171 extern ir_op *op_sparc_SetHi;
172 ir_op *get_op_sparc_SetHi(void);
173 int is_sparc_SetHi(const ir_node *n);
174 /**
175  * construct SetHi node
176  */
177 ir_node *new_bd_sparc_SetHi(dbg_info *dbgi, ir_node *block, ir_entity *entity, int32_t immediate_value);
178 
179 extern ir_op *op_sparc_Xor;
180 ir_op *get_op_sparc_Xor(void);
181 int is_sparc_Xor(const ir_node *n);
182 /**
183  * construct Xor node
184  */
185 ir_node *new_bd_sparc_Xor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
186 /**
187  * construct Xor node
188  */
189 ir_node *new_bd_sparc_Xor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
190 
191 extern ir_op *op_sparc_Or;
192 ir_op *get_op_sparc_Or(void);
193 int is_sparc_Or(const ir_node *n);
194 /**
195  * construct Or node
196  */
197 ir_node *new_bd_sparc_Or_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
198 /**
199  * construct Or node
200  */
201 ir_node *new_bd_sparc_Or_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
202 
203 extern ir_op *op_sparc_Restore;
204 ir_op *get_op_sparc_Restore(void);
205 int is_sparc_Restore(const ir_node *n);
206 /**
207  * construct Restore node
208  */
209 ir_node *new_bd_sparc_Restore_imm(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *frame_pointer, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
210 /**
211  * construct Restore node
212  */
213 ir_node *new_bd_sparc_Restore_reg(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *frame_pointer, ir_node *left, ir_node *right);
214 
215 extern ir_op *op_sparc_SubX_t;
216 ir_op *get_op_sparc_SubX_t(void);
217 int is_sparc_SubX_t(const ir_node *n);
218 /**
219  * construct SubX_t node
220  */
221 ir_node *new_bd_sparc_SubX_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags_input, ir_mode *mode);
222 
223 extern ir_op *op_sparc_UMulh;
224 ir_op *get_op_sparc_UMulh(void);
225 int is_sparc_UMulh(const ir_node *n);
226 /**
227  * construct UMulh node
228  */
229 ir_node *new_bd_sparc_UMulh_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
230 /**
231  * construct UMulh node
232  */
233 ir_node *new_bd_sparc_UMulh_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
234 
235 extern ir_op *op_sparc_Ba;
236 ir_op *get_op_sparc_Ba(void);
237 int is_sparc_Ba(const ir_node *n);
238 /**
239  * construct Ba node
240  */
241 ir_node *new_bd_sparc_Ba(dbg_info *dbgi, ir_node *block);
242 
243 extern ir_op *op_sparc_Cmp;
244 ir_op *get_op_sparc_Cmp(void);
245 int is_sparc_Cmp(const ir_node *n);
246 /**
247  * construct Cmp node
248  */
249 ir_node *new_bd_sparc_Cmp_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
250 /**
251  * construct Cmp node
252  */
253 ir_node *new_bd_sparc_Cmp_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
254 
255 extern ir_op *op_sparc_fftof;
256 ir_op *get_op_sparc_fftof(void);
257 int is_sparc_fftof(const ir_node *n);
258 /**
259  * construct fftof node
260  */
261 ir_node *new_bd_sparc_fftof_d_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
262 /**
263  * construct fftof node
264  */
265 ir_node *new_bd_sparc_fftof_q_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
266 /**
267  * construct fftof node
268  */
269 ir_node *new_bd_sparc_fftof_q_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
270 /**
271  * construct fftof node
272  */
273 ir_node *new_bd_sparc_fftof_s_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
274 /**
275  * construct fftof node
276  */
277 ir_node *new_bd_sparc_fftof_s_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
278 /**
279  * construct fftof node
280  */
281 ir_node *new_bd_sparc_fftof_d_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
282 
283 extern ir_op *op_sparc_XNorCCZero;
284 ir_op *get_op_sparc_XNorCCZero(void);
285 int is_sparc_XNorCCZero(const ir_node *n);
286 /**
287  * construct XNorCCZero node
288  */
289 ir_node *new_bd_sparc_XNorCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
290 /**
291  * construct XNorCCZero node
292  */
293 ir_node *new_bd_sparc_XNorCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
294 
295 extern ir_op *op_sparc_Call;
296 ir_op *get_op_sparc_Call(void);
297 int is_sparc_Call(const ir_node *n);
298 /**
299  * construct Call node
300  */
301 ir_node *new_bd_sparc_Call_imm(dbg_info *dbgi, ir_node *block, int arity, ir_node *in[], int n_res, ir_entity *entity, int32_t offset, bool aggregate_return);
302 /**
303  * construct Call node
304  */
305 ir_node *new_bd_sparc_Call_reg(dbg_info *dbgi, ir_node *block, int arity, ir_node *in[], int n_res, bool aggregate_return);
306 
307 extern ir_op *op_sparc_AddX;
308 ir_op *get_op_sparc_AddX(void);
309 int is_sparc_AddX(const ir_node *n);
310 /**
311  * construct AddX node
312  */
313 ir_node *new_bd_sparc_AddX_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *carry, ir_entity *immediate_entity, int32_t immediate_value);
314 /**
315  * construct AddX node
316  */
317 ir_node *new_bd_sparc_AddX_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *carry);
318 
319 extern ir_op *op_sparc_SubSP;
320 ir_op *get_op_sparc_SubSP(void);
321 int is_sparc_SubSP(const ir_node *n);
322 /**
323  * construct SubSP node
324  */
325 ir_node *new_bd_sparc_SubSP_imm(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *mem, ir_entity *immediate_entity, int32_t immediate_value);
326 /**
327  * construct SubSP node
328  */
329 ir_node *new_bd_sparc_SubSP_reg(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *size, ir_node *mem);
330 
331 extern ir_op *op_sparc_Add;
332 ir_op *get_op_sparc_Add(void);
333 int is_sparc_Add(const ir_node *n);
334 /**
335  * construct Add node
336  */
337 ir_node *new_bd_sparc_Add_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
338 /**
339  * construct Add node
340  */
341 ir_node *new_bd_sparc_Add_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
342 
343 extern ir_op *op_sparc_SubCC;
344 ir_op *get_op_sparc_SubCC(void);
345 int is_sparc_SubCC(const ir_node *n);
346 /**
347  * construct SubCC node
348  */
349 ir_node *new_bd_sparc_SubCC_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
350 /**
351  * construct SubCC node
352  */
353 ir_node *new_bd_sparc_SubCC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
354 
355 extern ir_op *op_sparc_Ldf;
356 ir_op *get_op_sparc_Ldf(void);
357 int is_sparc_Ldf(const ir_node *n);
358 /**
359  * construct Ldf node
360  */
361 ir_node *new_bd_sparc_Ldf_q(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
362 /**
363  * construct Ldf node
364  */
365 ir_node *new_bd_sparc_Ldf_d(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
366 /**
367  * construct Ldf node
368  */
369 ir_node *new_bd_sparc_Ldf_s(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
370 
371 extern ir_op *op_sparc_fdiv;
372 ir_op *get_op_sparc_fdiv(void);
373 int is_sparc_fdiv(const ir_node *n);
374 /**
375  * construct fdiv node
376  */
377 ir_node *new_bd_sparc_fdiv_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
378 /**
379  * construct fdiv node
380  */
381 ir_node *new_bd_sparc_fdiv_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
382 /**
383  * construct fdiv node
384  */
385 ir_node *new_bd_sparc_fdiv_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
386 
387 extern ir_op *op_sparc_AndN;
388 ir_op *get_op_sparc_AndN(void);
389 int is_sparc_AndN(const ir_node *n);
390 /**
391  * construct AndN node
392  */
393 ir_node *new_bd_sparc_AndN_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
394 /**
395  * construct AndN node
396  */
397 ir_node *new_bd_sparc_AndN_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
398 
399 extern ir_op *op_sparc_fftoi;
400 ir_op *get_op_sparc_fftoi(void);
401 int is_sparc_fftoi(const ir_node *n);
402 /**
403  * construct fftoi node
404  */
405 ir_node *new_bd_sparc_fftoi_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
406 /**
407  * construct fftoi node
408  */
409 ir_node *new_bd_sparc_fftoi_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
410 /**
411  * construct fftoi node
412  */
413 ir_node *new_bd_sparc_fftoi_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
414 
415 extern ir_op *op_sparc_XorCCZero;
416 ir_op *get_op_sparc_XorCCZero(void);
417 int is_sparc_XorCCZero(const ir_node *n);
418 /**
419  * construct XorCCZero node
420  */
421 ir_node *new_bd_sparc_XorCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
422 /**
423  * construct XorCCZero node
424  */
425 ir_node *new_bd_sparc_XorCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
426 
427 extern ir_op *op_sparc_St;
428 ir_op *get_op_sparc_St(void);
429 int is_sparc_St(const ir_node *n);
430 /**
431  * construct St node
432  */
433 ir_node *new_bd_sparc_St_imm(dbg_info *dbgi, ir_node *block, ir_node *val, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
434 /**
435  * construct St node
436  */
437 ir_node *new_bd_sparc_St_reg(dbg_info *dbgi, ir_node *block, ir_node *val, ir_node *ptr, ir_node *ptr2, ir_node *mem, ir_mode *ls_mode);
438 
439 extern ir_op *op_sparc_MulCCZero;
440 ir_op *get_op_sparc_MulCCZero(void);
441 int is_sparc_MulCCZero(const ir_node *n);
442 /**
443  * construct MulCCZero node
444  */
445 ir_node *new_bd_sparc_MulCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
446 /**
447  * construct MulCCZero node
448  */
449 ir_node *new_bd_sparc_MulCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
450 
451 extern ir_op *op_sparc_Save;
452 ir_op *get_op_sparc_Save(void);
453 int is_sparc_Save(const ir_node *n);
454 /**
455  * construct Save node
456  */
457 ir_node *new_bd_sparc_Save_imm(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_entity *immediate_entity, int32_t immediate_value);
458 /**
459  * construct Save node
460  */
461 ir_node *new_bd_sparc_Save_reg(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *increment);
462 
463 extern ir_op *op_sparc_fbfcc;
464 ir_op *get_op_sparc_fbfcc(void);
465 int is_sparc_fbfcc(const ir_node *n);
466 /**
467  * construct fbfcc node
468  */
469 ir_node *new_bd_sparc_fbfcc(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation);
470 
471 extern ir_op *op_sparc_Sub;
472 ir_op *get_op_sparc_Sub(void);
473 int is_sparc_Sub(const ir_node *n);
474 /**
475  * construct Sub node
476  */
477 ir_node *new_bd_sparc_Sub_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
478 /**
479  * construct Sub node
480  */
481 ir_node *new_bd_sparc_Sub_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
482 
483 extern ir_op *op_sparc_Mul;
484 ir_op *get_op_sparc_Mul(void);
485 int is_sparc_Mul(const ir_node *n);
486 /**
487  * construct Mul node
488  */
489 ir_node *new_bd_sparc_Mul_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
490 /**
491  * construct Mul node
492  */
493 ir_node *new_bd_sparc_Mul_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
494 
495 extern ir_op *op_sparc_SubCC_t;
496 ir_op *get_op_sparc_SubCC_t(void);
497 int is_sparc_SubCC_t(const ir_node *n);
498 /**
499  * construct SubCC_t node
500  */
501 ir_node *new_bd_sparc_SubCC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
502 
503 extern ir_op *op_sparc_Stf;
504 ir_op *get_op_sparc_Stf(void);
505 int is_sparc_Stf(const ir_node *n);
506 /**
507  * construct Stf node
508  */
509 ir_node *new_bd_sparc_Stf_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
510 /**
511  * construct Stf node
512  */
513 ir_node *new_bd_sparc_Stf_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
514 /**
515  * construct Stf node
516  */
517 ir_node *new_bd_sparc_Stf_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
518 
519 extern ir_op *op_sparc_SDiv;
520 ir_op *get_op_sparc_SDiv(void);
521 int is_sparc_SDiv(const ir_node *n);
522 /**
523  * construct SDiv node
524  */
525 ir_node *new_bd_sparc_SDiv_imm(dbg_info *dbgi, ir_node *block, ir_node *dividend_high, ir_node *dividend_low, ir_entity *immediate_entity, int32_t immediate_value);
526 /**
527  * construct SDiv node
528  */
529 ir_node *new_bd_sparc_SDiv_reg(dbg_info *dbgi, ir_node *block, ir_node *dividend_high, ir_node *dividend_low, ir_node *divisor);
530 
531 extern ir_op *op_sparc_AddX_t;
532 ir_op *get_op_sparc_AddX_t(void);
533 int is_sparc_AddX_t(const ir_node *n);
534 /**
535  * construct AddX_t node
536  */
537 ir_node *new_bd_sparc_AddX_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags_input, ir_mode *mode);
538 
539 extern ir_op *op_sparc_fabs;
540 ir_op *get_op_sparc_fabs(void);
541 int is_sparc_fabs(const ir_node *n);
542 /**
543  * construct fabs node
544  */
545 ir_node *new_bd_sparc_fabs_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
546 /**
547  * construct fabs node
548  */
549 ir_node *new_bd_sparc_fabs_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
550 /**
551  * construct fabs node
552  */
553 ir_node *new_bd_sparc_fabs_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
554 
555 extern ir_op *op_sparc_AddCC;
556 ir_op *get_op_sparc_AddCC(void);
557 int is_sparc_AddCC(const ir_node *n);
558 /**
559  * construct AddCC node
560  */
561 ir_node *new_bd_sparc_AddCC_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
562 /**
563  * construct AddCC node
564  */
565 ir_node *new_bd_sparc_AddCC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
566 
567 extern ir_op *op_sparc_Bicc;
568 ir_op *get_op_sparc_Bicc(void);
569 int is_sparc_Bicc(const ir_node *n);
570 /**
571  * construct Bicc node
572  */
573 ir_node *new_bd_sparc_Bicc(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation, bool is_unsigned);
574 
575 extern ir_op *op_sparc_OrN;
576 ir_op *get_op_sparc_OrN(void);
577 int is_sparc_OrN(const ir_node *n);
578 /**
579  * construct OrN node
580  */
581 ir_node *new_bd_sparc_OrN_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
582 /**
583  * construct OrN node
584  */
585 ir_node *new_bd_sparc_OrN_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
586 
587 extern ir_op *op_sparc_SubX;
588 ir_op *get_op_sparc_SubX(void);
589 int is_sparc_SubX(const ir_node *n);
590 /**
591  * construct SubX node
592  */
593 ir_node *new_bd_sparc_SubX_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *carry, ir_entity *immediate_entity, int32_t immediate_value);
594 /**
595  * construct SubX node
596  */
597 ir_node *new_bd_sparc_SubX_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *carry);
598 
599 extern ir_op *op_sparc_fcmp;
600 ir_op *get_op_sparc_fcmp(void);
601 int is_sparc_fcmp(const ir_node *n);
602 /**
603  * construct fcmp node
604  */
605 ir_node *new_bd_sparc_fcmp_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
606 /**
607  * construct fcmp node
608  */
609 ir_node *new_bd_sparc_fcmp_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
610 /**
611  * construct fcmp node
612  */
613 ir_node *new_bd_sparc_fcmp_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
614 
615 extern ir_op *op_sparc_OrCCZero;
616 ir_op *get_op_sparc_OrCCZero(void);
617 int is_sparc_OrCCZero(const ir_node *n);
618 /**
619  * construct OrCCZero node
620  */
621 ir_node *new_bd_sparc_OrCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
622 /**
623  * construct OrCCZero node
624  */
625 ir_node *new_bd_sparc_OrCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
626 
627 extern ir_op *op_sparc_AddSP;
628 ir_op *get_op_sparc_AddSP(void);
629 int is_sparc_AddSP(const ir_node *n);
630 /**
631  * construct AddSP node
632  */
633 ir_node *new_bd_sparc_AddSP(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *size);
634 
635 extern ir_op *op_sparc_SMulh;
636 ir_op *get_op_sparc_SMulh(void);
637 int is_sparc_SMulh(const ir_node *n);
638 /**
639  * construct SMulh node
640  */
641 ir_node *new_bd_sparc_SMulh_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
642 /**
643  * construct SMulh node
644  */
645 ir_node *new_bd_sparc_SMulh_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
646 
647 extern ir_op *op_sparc_AddCC_t;
648 ir_op *get_op_sparc_AddCC_t(void);
649 int is_sparc_AddCC_t(const ir_node *n);
650 /**
651  * construct AddCC_t node
652  */
653 ir_node *new_bd_sparc_AddCC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
654 
655 extern ir_op *op_sparc_Return;
656 ir_op *get_op_sparc_Return(void);
657 int is_sparc_Return(const ir_node *n);
658 /**
659  * construct Return node
660  */
661 ir_node *new_bd_sparc_Return_imm(dbg_info *dbgi, ir_node *block, int arity, ir_node *in[], ir_entity *entity, int32_t offset);
662 /**
663  * construct Return node
664  */
665 ir_node *new_bd_sparc_Return_reg(dbg_info *dbgi, ir_node *block, int arity, ir_node *in[]);
666 
667 extern ir_op *op_sparc_XNor;
668 ir_op *get_op_sparc_XNor(void);
669 int is_sparc_XNor(const ir_node *n);
670 /**
671  * construct XNor node
672  */
673 ir_node *new_bd_sparc_XNor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
674 /**
675  * construct XNor node
676  */
677 ir_node *new_bd_sparc_XNor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
678 
679 extern ir_op *op_sparc_AndNCCZero;
680 ir_op *get_op_sparc_AndNCCZero(void);
681 int is_sparc_AndNCCZero(const ir_node *n);
682 /**
683  * construct AndNCCZero node
684  */
685 ir_node *new_bd_sparc_AndNCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
686 /**
687  * construct AndNCCZero node
688  */
689 ir_node *new_bd_sparc_AndNCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
690 
691 extern ir_op *op_sparc_AndCCZero;
692 ir_op *get_op_sparc_AndCCZero(void);
693 int is_sparc_AndCCZero(const ir_node *n);
694 /**
695  * construct AndCCZero node
696  */
697 ir_node *new_bd_sparc_AndCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
698 /**
699  * construct AndCCZero node
700  */
701 ir_node *new_bd_sparc_AndCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
702 
703 extern ir_op *op_sparc_FrameAddr;
704 ir_op *get_op_sparc_FrameAddr(void);
705 int is_sparc_FrameAddr(const ir_node *n);
706 /**
707  * construct FrameAddr node
708  */
709 ir_node *new_bd_sparc_FrameAddr(dbg_info *dbgi, ir_node *block, ir_node *base, ir_entity *entity, int32_t offset);
710 
711 extern ir_op *op_sparc_OrNCCZero;
712 ir_op *get_op_sparc_OrNCCZero(void);
713 int is_sparc_OrNCCZero(const ir_node *n);
714 /**
715  * construct OrNCCZero node
716  */
717 ir_node *new_bd_sparc_OrNCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
718 /**
719  * construct OrNCCZero node
720  */
721 ir_node *new_bd_sparc_OrNCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
722 
723 extern ir_op *op_sparc_And;
724 ir_op *get_op_sparc_And(void);
725 int is_sparc_And(const ir_node *n);
726 /**
727  * construct And node
728  */
729 ir_node *new_bd_sparc_And_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
730 /**
731  * construct And node
732  */
733 ir_node *new_bd_sparc_And_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
734 
735 extern ir_op *op_sparc_fmul;
736 ir_op *get_op_sparc_fmul(void);
737 int is_sparc_fmul(const ir_node *n);
738 /**
739  * construct fmul node
740  */
741 ir_node *new_bd_sparc_fmul_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
742 /**
743  * construct fmul node
744  */
745 ir_node *new_bd_sparc_fmul_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
746 /**
747  * construct fmul node
748  */
749 ir_node *new_bd_sparc_fmul_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
750 
751 extern ir_op *op_sparc_AddCCZero;
752 ir_op *get_op_sparc_AddCCZero(void);
753 int is_sparc_AddCCZero(const ir_node *n);
754 /**
755  * construct AddCCZero node
756  */
757 ir_node *new_bd_sparc_AddCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
758 /**
759  * construct AddCCZero node
760  */
761 ir_node *new_bd_sparc_AddCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
762 
763 extern ir_op *op_sparc_UDiv;
764 ir_op *get_op_sparc_UDiv(void);
765 int is_sparc_UDiv(const ir_node *n);
766 /**
767  * construct UDiv node
768  */
769 ir_node *new_bd_sparc_UDiv_imm(dbg_info *dbgi, ir_node *block, ir_node *dividend_high, ir_node *dividend_low, ir_entity *immediate_entity, int32_t immediate_value);
770 /**
771  * construct UDiv node
772  */
773 ir_node *new_bd_sparc_UDiv_reg(dbg_info *dbgi, ir_node *block, ir_node *dividend_high, ir_node *dividend_low, ir_node *divisor);
774 
775 extern ir_op *op_sparc_Sll;
776 ir_op *get_op_sparc_Sll(void);
777 int is_sparc_Sll(const ir_node *n);
778 /**
779  * construct Sll node
780  */
781 ir_node *new_bd_sparc_Sll_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
782 /**
783  * construct Sll node
784  */
785 ir_node *new_bd_sparc_Sll_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
786 
787 extern ir_op *op_sparc_SwitchJmp;
788 ir_op *get_op_sparc_SwitchJmp(void);
789 int is_sparc_SwitchJmp(const ir_node *n);
790 /**
791  * construct SwitchJmp node
792  */
793 ir_node *new_bd_sparc_SwitchJmp(dbg_info *dbgi, ir_node *block, ir_node *op0, int n_res, const ir_switch_table *table, ir_entity *jump_table);
794 
795 extern ir_op *op_sparc_Srl;
796 ir_op *get_op_sparc_Srl(void);
797 int is_sparc_Srl(const ir_node *n);
798 /**
799  * construct Srl node
800  */
801 ir_node *new_bd_sparc_Srl_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
802 /**
803  * construct Srl node
804  */
805 ir_node *new_bd_sparc_Srl_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
806 
807 extern ir_op *op_sparc_fneg;
808 ir_op *get_op_sparc_fneg(void);
809 int is_sparc_fneg(const ir_node *n);
810 /**
811  * construct fneg node
812  */
813 ir_node *new_bd_sparc_fneg_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
814 /**
815  * construct fneg node
816  */
817 ir_node *new_bd_sparc_fneg_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
818 /**
819  * construct fneg node
820  */
821 ir_node *new_bd_sparc_fneg_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
822 
823 extern ir_op *op_sparc_fsub;
824 ir_op *get_op_sparc_fsub(void);
825 int is_sparc_fsub(const ir_node *n);
826 /**
827  * construct fsub node
828  */
829 ir_node *new_bd_sparc_fsub_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
830 /**
831  * construct fsub node
832  */
833 ir_node *new_bd_sparc_fsub_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
834 /**
835  * construct fsub node
836  */
837 ir_node *new_bd_sparc_fsub_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
838 
839 
840 
841 enum pn_sparc_Ld {
842 	pn_sparc_Ld_res = 0,
843 	pn_sparc_Ld_M = 1,
844 };
845 
846 enum n_sparc_Ld {
847 	n_sparc_Ld_ptr = 0,
848 	n_sparc_Ld_mem = 1,
849 };
850 
851 enum n_sparc_fadd {
852 	n_sparc_fadd_left = 0,
853 	n_sparc_fadd_right = 1,
854 };
855 
856 enum pn_sparc_RestoreZero {
857 	pn_sparc_RestoreZero_stack = 0,
858 };
859 
860 enum n_sparc_RestoreZero {
861 	n_sparc_RestoreZero_stack = 0,
862 	n_sparc_RestoreZero_frame_pointer = 1,
863 };
864 
865 enum pn_sparc_SetHi {
866 	pn_sparc_SetHi_res = 0,
867 };
868 
869 enum pn_sparc_Restore {
870 	pn_sparc_Restore_stack = 0,
871 	pn_sparc_Restore_res = 1,
872 };
873 
874 enum n_sparc_SubX_t {
875 	n_sparc_SubX_t_left = 0,
876 	n_sparc_SubX_t_right = 1,
877 	n_sparc_SubX_t_flags_input = 2,
878 };
879 
880 enum pn_sparc_UMulh {
881 	pn_sparc_UMulh_low = 0,
882 	pn_sparc_UMulh_high = 1,
883 };
884 
885 enum pn_sparc_SubSP {
886 	pn_sparc_SubSP_stack = 0,
887 	pn_sparc_SubSP_addr = 1,
888 	pn_sparc_SubSP_M = 2,
889 };
890 
891 enum pn_sparc_SubCC {
892 	pn_sparc_SubCC_res = 0,
893 	pn_sparc_SubCC_flags = 1,
894 };
895 
896 enum pn_sparc_Ldf {
897 	pn_sparc_Ldf_res = 0,
898 	pn_sparc_Ldf_M = 1,
899 };
900 
901 enum n_sparc_Ldf {
902 	n_sparc_Ldf_ptr = 0,
903 	n_sparc_Ldf_mem = 1,
904 };
905 
906 enum pn_sparc_fdiv {
907 	pn_sparc_fdiv_res = 0,
908 	pn_sparc_fdiv_M = 1,
909 };
910 
911 enum n_sparc_fdiv {
912 	n_sparc_fdiv_left = 0,
913 	n_sparc_fdiv_right = 1,
914 };
915 
916 enum pn_sparc_St {
917 	pn_sparc_St_M = 0,
918 };
919 
920 enum n_sparc_St {
921 	n_sparc_St_val = 0,
922 	n_sparc_St_ptr = 1,
923 	n_sparc_St_mem = 2,
924 };
925 
926 enum pn_sparc_Save {
927 	pn_sparc_Save_stack = 0,
928 };
929 
930 enum n_sparc_Save {
931 	n_sparc_Save_stack = 0,
932 };
933 
934 enum pn_sparc_fbfcc {
935 	pn_sparc_fbfcc_false = 0,
936 	pn_sparc_fbfcc_true = 1,
937 };
938 
939 enum n_sparc_fbfcc {
940 	n_sparc_fbfcc_flags = 0,
941 };
942 
943 enum pn_sparc_SubCC_t {
944 	pn_sparc_SubCC_t_res = 0,
945 	pn_sparc_SubCC_t_flags = 1,
946 };
947 
948 enum n_sparc_SubCC_t {
949 	n_sparc_SubCC_t_left = 0,
950 	n_sparc_SubCC_t_right = 1,
951 };
952 
953 enum pn_sparc_Stf {
954 	pn_sparc_Stf_M = 0,
955 };
956 
957 enum n_sparc_Stf {
958 	n_sparc_Stf_val = 0,
959 	n_sparc_Stf_ptr = 1,
960 	n_sparc_Stf_mem = 2,
961 };
962 
963 enum pn_sparc_SDiv {
964 	pn_sparc_SDiv_res = 0,
965 	pn_sparc_SDiv_M = 1,
966 };
967 
968 enum n_sparc_SDiv {
969 	n_sparc_SDiv_dividend_high = 0,
970 	n_sparc_SDiv_dividend_low = 1,
971 	n_sparc_SDiv_divisor = 2,
972 };
973 
974 enum n_sparc_AddX_t {
975 	n_sparc_AddX_t_left = 0,
976 	n_sparc_AddX_t_right = 1,
977 	n_sparc_AddX_t_flags_input = 2,
978 };
979 
980 enum n_sparc_fabs {
981 	n_sparc_fabs_val = 0,
982 };
983 
984 enum pn_sparc_AddCC {
985 	pn_sparc_AddCC_res = 0,
986 	pn_sparc_AddCC_flags = 1,
987 };
988 
989 enum pn_sparc_Bicc {
990 	pn_sparc_Bicc_false = 0,
991 	pn_sparc_Bicc_true = 1,
992 };
993 
994 enum n_sparc_Bicc {
995 	n_sparc_Bicc_flags = 0,
996 };
997 
998 enum pn_sparc_AddSP {
999 	pn_sparc_AddSP_stack = 0,
1000 };
1001 
1002 enum n_sparc_AddSP {
1003 	n_sparc_AddSP_stack = 0,
1004 	n_sparc_AddSP_size = 1,
1005 };
1006 
1007 enum pn_sparc_SMulh {
1008 	pn_sparc_SMulh_low = 0,
1009 	pn_sparc_SMulh_high = 1,
1010 };
1011 
1012 enum pn_sparc_AddCC_t {
1013 	pn_sparc_AddCC_t_res = 0,
1014 	pn_sparc_AddCC_t_flags = 1,
1015 };
1016 
1017 enum n_sparc_AddCC_t {
1018 	n_sparc_AddCC_t_left = 0,
1019 	n_sparc_AddCC_t_right = 1,
1020 };
1021 
1022 enum n_sparc_FrameAddr {
1023 	n_sparc_FrameAddr_base = 0,
1024 };
1025 
1026 enum n_sparc_fmul {
1027 	n_sparc_fmul_left = 0,
1028 	n_sparc_fmul_right = 1,
1029 };
1030 
1031 enum pn_sparc_UDiv {
1032 	pn_sparc_UDiv_res = 0,
1033 	pn_sparc_UDiv_M = 1,
1034 };
1035 
1036 enum n_sparc_UDiv {
1037 	n_sparc_UDiv_dividend_high = 0,
1038 	n_sparc_UDiv_dividend_low = 1,
1039 	n_sparc_UDiv_divisor = 2,
1040 };
1041 
1042 enum n_sparc_fneg {
1043 	n_sparc_fneg_val = 0,
1044 };
1045 
1046 enum n_sparc_fsub {
1047 	n_sparc_fsub_left = 0,
1048 	n_sparc_fsub_right = 1,
1049 };
1050 
1051 
1052 #endif
1053