libFirm
gen_sparc_new_nodes.h
1 
9 #ifndef FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H
10 #define FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H
11 
12 #include "be_types.h"
13 #include "irnode_t.h"
14 #include "sparc_nodes_attr.h"
15 
16 typedef enum sparc_opcodes {
17  iro_sparc_Add,
18  iro_sparc_AddCC,
19  iro_sparc_AddCC_t,
20  iro_sparc_AddSP,
21  iro_sparc_AddX,
22  iro_sparc_AddX_t,
23  iro_sparc_And,
24  iro_sparc_AndCCZero,
25  iro_sparc_AndN,
26  iro_sparc_AndNCCZero,
27  iro_sparc_Ba,
28  iro_sparc_Bicc,
29  iro_sparc_Call,
30  iro_sparc_Cas,
31  iro_sparc_Cmp,
32  iro_sparc_FrameAddr,
33  iro_sparc_IJmp,
34  iro_sparc_Ld,
35  iro_sparc_Ldf,
36  iro_sparc_Or,
37  iro_sparc_OrCCZero,
38  iro_sparc_OrN,
39  iro_sparc_OrNCCZero,
40  iro_sparc_Restore,
41  iro_sparc_RestoreZero,
42  iro_sparc_Return,
43  iro_sparc_SDiv,
44  iro_sparc_SMul,
45  iro_sparc_SMulCCZero,
46  iro_sparc_SMulh,
47  iro_sparc_Save,
48  iro_sparc_SetHi,
49  iro_sparc_Sll,
50  iro_sparc_Sra,
51  iro_sparc_Srl,
52  iro_sparc_St,
53  iro_sparc_Stbar,
54  iro_sparc_Stf,
55  iro_sparc_Sub,
56  iro_sparc_SubCC,
57  iro_sparc_SubCC_t,
58  iro_sparc_SubSP,
59  iro_sparc_SubX,
60  iro_sparc_SubX_t,
61  iro_sparc_SwitchJmp,
62  iro_sparc_UDiv,
63  iro_sparc_UMulh,
64  iro_sparc_XNor,
65  iro_sparc_XNorCCZero,
66  iro_sparc_Xor,
67  iro_sparc_XorCCZero,
68  iro_sparc_fabs,
69  iro_sparc_fadd,
70  iro_sparc_fbfcc,
71  iro_sparc_fcmp,
72  iro_sparc_fdiv,
73  iro_sparc_fftof,
74  iro_sparc_fftoi,
75  iro_sparc_fitof,
76  iro_sparc_fmul,
77  iro_sparc_fneg,
78  iro_sparc_fsub,
79  iro_sparc_last
80 } sparc_opcodes;
81 
82 
83 int is_sparc_irn(const ir_node *node);
84 int is_sparc_op(const ir_op *op);
85 
86 int get_sparc_irn_opcode(const ir_node *node);
87 void sparc_create_opcodes(void);
88 void sparc_free_opcodes(void);
89 
90 extern ir_op *op_sparc_Add;
91 
92 static inline bool is_sparc_Add(ir_node const *const n)
93 {
94  return get_irn_op(n) == op_sparc_Add;
95 }
96 
100 ir_node *new_bd_sparc_Add_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
104 ir_node *new_bd_sparc_Add_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
105 
106 extern ir_op *op_sparc_AddCC;
107 
108 static inline bool is_sparc_AddCC(ir_node const *const n)
109 {
110  return get_irn_op(n) == op_sparc_AddCC;
111 }
112 
116 ir_node *new_bd_sparc_AddCC_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
120 ir_node *new_bd_sparc_AddCC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
121 
122 extern ir_op *op_sparc_AddCC_t;
123 
124 static inline bool is_sparc_AddCC_t(ir_node const *const n)
125 {
126  return get_irn_op(n) == op_sparc_AddCC_t;
127 }
128 
132 ir_node *new_bd_sparc_AddCC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
133 
134 extern ir_op *op_sparc_AddSP;
135 
136 static inline bool is_sparc_AddSP(ir_node const *const n)
137 {
138  return get_irn_op(n) == op_sparc_AddSP;
139 }
140 
144 ir_node *new_bd_sparc_AddSP(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *size);
145 
146 extern ir_op *op_sparc_AddX;
147 
148 static inline bool is_sparc_AddX(ir_node const *const n)
149 {
150  return get_irn_op(n) == op_sparc_AddX;
151 }
152 
156 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);
160 ir_node *new_bd_sparc_AddX_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *carry);
161 
162 extern ir_op *op_sparc_AddX_t;
163 
164 static inline bool is_sparc_AddX_t(ir_node const *const n)
165 {
166  return get_irn_op(n) == op_sparc_AddX_t;
167 }
168 
172 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);
173 
174 extern ir_op *op_sparc_And;
175 
176 static inline bool is_sparc_And(ir_node const *const n)
177 {
178  return get_irn_op(n) == op_sparc_And;
179 }
180 
184 ir_node *new_bd_sparc_And_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
188 ir_node *new_bd_sparc_And_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
189 
190 extern ir_op *op_sparc_AndCCZero;
191 
192 static inline bool is_sparc_AndCCZero(ir_node const *const n)
193 {
194  return get_irn_op(n) == op_sparc_AndCCZero;
195 }
196 
200 ir_node *new_bd_sparc_AndCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
204 ir_node *new_bd_sparc_AndCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
205 
206 extern ir_op *op_sparc_AndN;
207 
208 static inline bool is_sparc_AndN(ir_node const *const n)
209 {
210  return get_irn_op(n) == op_sparc_AndN;
211 }
212 
216 ir_node *new_bd_sparc_AndN_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
220 ir_node *new_bd_sparc_AndN_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
221 
222 extern ir_op *op_sparc_AndNCCZero;
223 
224 static inline bool is_sparc_AndNCCZero(ir_node const *const n)
225 {
226  return get_irn_op(n) == op_sparc_AndNCCZero;
227 }
228 
232 ir_node *new_bd_sparc_AndNCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
236 ir_node *new_bd_sparc_AndNCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
237 
238 extern ir_op *op_sparc_Ba;
239 
240 static inline bool is_sparc_Ba(ir_node const *const n)
241 {
242  return get_irn_op(n) == op_sparc_Ba;
243 }
244 
248 ir_node *new_bd_sparc_Ba(dbg_info *dbgi, ir_node *block);
249 
250 extern ir_op *op_sparc_Bicc;
251 
252 static inline bool is_sparc_Bicc(ir_node const *const n)
253 {
254  return get_irn_op(n) == op_sparc_Bicc;
255 }
256 
260 ir_node *new_bd_sparc_Bicc(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation, bool is_unsigned);
261 
262 extern ir_op *op_sparc_Call;
263 
264 static inline bool is_sparc_Call(ir_node const *const n)
265 {
266  return get_irn_op(n) == op_sparc_Call;
267 }
268 
272 ir_node *new_bd_sparc_Call_imm(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs, int n_res, ir_type *call_type, ir_entity *entity, int32_t offset, bool aggregate_return);
276 ir_node *new_bd_sparc_Call_reg(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs, int n_res, ir_type *call_type, bool aggregate_return);
277 
278 extern ir_op *op_sparc_Cas;
279 
280 static inline bool is_sparc_Cas(ir_node const *const n)
281 {
282  return get_irn_op(n) == op_sparc_Cas;
283 }
284 
288 ir_node *new_bd_sparc_Cas(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *old, ir_node *new, ir_node *mem);
289 
290 extern ir_op *op_sparc_Cmp;
291 
292 static inline bool is_sparc_Cmp(ir_node const *const n)
293 {
294  return get_irn_op(n) == op_sparc_Cmp;
295 }
296 
300 ir_node *new_bd_sparc_Cmp_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
304 ir_node *new_bd_sparc_Cmp_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
305 
306 extern ir_op *op_sparc_FrameAddr;
307 
308 static inline bool is_sparc_FrameAddr(ir_node const *const n)
309 {
310  return get_irn_op(n) == op_sparc_FrameAddr;
311 }
312 
316 ir_node *new_bd_sparc_FrameAddr(dbg_info *dbgi, ir_node *block, ir_node *base, ir_entity *entity, int32_t offset);
317 
318 extern ir_op *op_sparc_IJmp;
319 
320 static inline bool is_sparc_IJmp(ir_node const *const n)
321 {
322  return get_irn_op(n) == op_sparc_IJmp;
323 }
324 
328 ir_node *new_bd_sparc_IJmp_imm(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_entity *entity, int32_t offset, bool is_frame_entity);
332 ir_node *new_bd_sparc_IJmp_reg(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *ptr2);
333 
334 extern ir_op *op_sparc_Ld;
335 
336 static inline bool is_sparc_Ld(ir_node const *const n)
337 {
338  return get_irn_op(n) == op_sparc_Ld;
339 }
340 
344 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);
348 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);
349 
350 extern ir_op *op_sparc_Ldf;
351 
352 static inline bool is_sparc_Ldf(ir_node const *const n)
353 {
354  return get_irn_op(n) == op_sparc_Ldf;
355 }
356 
360 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);
364 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);
368 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);
369 
370 extern ir_op *op_sparc_Or;
371 
372 static inline bool is_sparc_Or(ir_node const *const n)
373 {
374  return get_irn_op(n) == op_sparc_Or;
375 }
376 
380 ir_node *new_bd_sparc_Or_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
384 ir_node *new_bd_sparc_Or_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
385 
386 extern ir_op *op_sparc_OrCCZero;
387 
388 static inline bool is_sparc_OrCCZero(ir_node const *const n)
389 {
390  return get_irn_op(n) == op_sparc_OrCCZero;
391 }
392 
396 ir_node *new_bd_sparc_OrCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
400 ir_node *new_bd_sparc_OrCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
401 
402 extern ir_op *op_sparc_OrN;
403 
404 static inline bool is_sparc_OrN(ir_node const *const n)
405 {
406  return get_irn_op(n) == op_sparc_OrN;
407 }
408 
412 ir_node *new_bd_sparc_OrN_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
416 ir_node *new_bd_sparc_OrN_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
417 
418 extern ir_op *op_sparc_OrNCCZero;
419 
420 static inline bool is_sparc_OrNCCZero(ir_node const *const n)
421 {
422  return get_irn_op(n) == op_sparc_OrNCCZero;
423 }
424 
428 ir_node *new_bd_sparc_OrNCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
432 ir_node *new_bd_sparc_OrNCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
433 
434 extern ir_op *op_sparc_Restore;
435 
436 static inline bool is_sparc_Restore(ir_node const *const n)
437 {
438  return get_irn_op(n) == op_sparc_Restore;
439 }
440 
444 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);
448 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);
449 
450 extern ir_op *op_sparc_RestoreZero;
451 
452 static inline bool is_sparc_RestoreZero(ir_node const *const n)
453 {
454  return get_irn_op(n) == op_sparc_RestoreZero;
455 }
456 
460 ir_node *new_bd_sparc_RestoreZero(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *frame_pointer);
461 
462 extern ir_op *op_sparc_Return;
463 
464 static inline bool is_sparc_Return(ir_node const *const n)
465 {
466  return get_irn_op(n) == op_sparc_Return;
467 }
468 
472 ir_node *new_bd_sparc_Return_imm(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs, ir_entity *entity, int32_t offset);
476 ir_node *new_bd_sparc_Return_reg(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs);
477 
478 extern ir_op *op_sparc_SDiv;
479 
480 static inline bool is_sparc_SDiv(ir_node const *const n)
481 {
482  return get_irn_op(n) == op_sparc_SDiv;
483 }
484 
488 ir_node *new_bd_sparc_SDiv_imm(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *dividend_high, ir_node *dividend_low, ir_entity *immediate_entity, int32_t immediate_value);
492 ir_node *new_bd_sparc_SDiv_reg(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *dividend_high, ir_node *dividend_low, ir_node *divisor);
493 
494 extern ir_op *op_sparc_SMul;
495 
496 static inline bool is_sparc_SMul(ir_node const *const n)
497 {
498  return get_irn_op(n) == op_sparc_SMul;
499 }
500 
504 ir_node *new_bd_sparc_SMul_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
508 ir_node *new_bd_sparc_SMul_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
509 
510 extern ir_op *op_sparc_SMulCCZero;
511 
512 static inline bool is_sparc_SMulCCZero(ir_node const *const n)
513 {
514  return get_irn_op(n) == op_sparc_SMulCCZero;
515 }
516 
520 ir_node *new_bd_sparc_SMulCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
524 ir_node *new_bd_sparc_SMulCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
525 
526 extern ir_op *op_sparc_SMulh;
527 
528 static inline bool is_sparc_SMulh(ir_node const *const n)
529 {
530  return get_irn_op(n) == op_sparc_SMulh;
531 }
532 
536 ir_node *new_bd_sparc_SMulh_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
540 ir_node *new_bd_sparc_SMulh_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
541 
542 extern ir_op *op_sparc_Save;
543 
544 static inline bool is_sparc_Save(ir_node const *const n)
545 {
546  return get_irn_op(n) == op_sparc_Save;
547 }
548 
552 ir_node *new_bd_sparc_Save_imm(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_entity *immediate_entity, int32_t immediate_value);
556 ir_node *new_bd_sparc_Save_reg(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *increment);
557 
558 extern ir_op *op_sparc_SetHi;
559 
560 static inline bool is_sparc_SetHi(ir_node const *const n)
561 {
562  return get_irn_op(n) == op_sparc_SetHi;
563 }
564 
568 ir_node *new_bd_sparc_SetHi(dbg_info *dbgi, ir_node *block, ir_entity *entity, int32_t immediate_value);
569 
570 extern ir_op *op_sparc_Sll;
571 
572 static inline bool is_sparc_Sll(ir_node const *const n)
573 {
574  return get_irn_op(n) == op_sparc_Sll;
575 }
576 
580 ir_node *new_bd_sparc_Sll_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
584 ir_node *new_bd_sparc_Sll_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
585 
586 extern ir_op *op_sparc_Sra;
587 
588 static inline bool is_sparc_Sra(ir_node const *const n)
589 {
590  return get_irn_op(n) == op_sparc_Sra;
591 }
592 
596 ir_node *new_bd_sparc_Sra_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
600 ir_node *new_bd_sparc_Sra_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
601 
602 extern ir_op *op_sparc_Srl;
603 
604 static inline bool is_sparc_Srl(ir_node const *const n)
605 {
606  return get_irn_op(n) == op_sparc_Srl;
607 }
608 
612 ir_node *new_bd_sparc_Srl_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
616 ir_node *new_bd_sparc_Srl_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
617 
618 extern ir_op *op_sparc_St;
619 
620 static inline bool is_sparc_St(ir_node const *const n)
621 {
622  return get_irn_op(n) == op_sparc_St;
623 }
624 
628 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);
632 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);
633 
634 extern ir_op *op_sparc_Stbar;
635 
636 static inline bool is_sparc_Stbar(ir_node const *const n)
637 {
638  return get_irn_op(n) == op_sparc_Stbar;
639 }
640 
644 ir_node *new_bd_sparc_Stbar(dbg_info *dbgi, ir_node *block, ir_node *mem);
645 
646 extern ir_op *op_sparc_Stf;
647 
648 static inline bool is_sparc_Stf(ir_node const *const n)
649 {
650  return get_irn_op(n) == op_sparc_Stf;
651 }
652 
656 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);
660 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);
664 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);
665 
666 extern ir_op *op_sparc_Sub;
667 
668 static inline bool is_sparc_Sub(ir_node const *const n)
669 {
670  return get_irn_op(n) == op_sparc_Sub;
671 }
672 
676 ir_node *new_bd_sparc_Sub_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
680 ir_node *new_bd_sparc_Sub_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
681 
682 extern ir_op *op_sparc_SubCC;
683 
684 static inline bool is_sparc_SubCC(ir_node const *const n)
685 {
686  return get_irn_op(n) == op_sparc_SubCC;
687 }
688 
692 ir_node *new_bd_sparc_SubCC_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
696 ir_node *new_bd_sparc_SubCC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
697 
698 extern ir_op *op_sparc_SubCC_t;
699 
700 static inline bool is_sparc_SubCC_t(ir_node const *const n)
701 {
702  return get_irn_op(n) == op_sparc_SubCC_t;
703 }
704 
708 ir_node *new_bd_sparc_SubCC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
709 
710 extern ir_op *op_sparc_SubSP;
711 
712 static inline bool is_sparc_SubSP(ir_node const *const n)
713 {
714  return get_irn_op(n) == op_sparc_SubSP;
715 }
716 
720 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);
724 ir_node *new_bd_sparc_SubSP_reg(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *size, ir_node *mem);
725 
726 extern ir_op *op_sparc_SubX;
727 
728 static inline bool is_sparc_SubX(ir_node const *const n)
729 {
730  return get_irn_op(n) == op_sparc_SubX;
731 }
732 
736 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);
740 ir_node *new_bd_sparc_SubX_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *carry);
741 
742 extern ir_op *op_sparc_SubX_t;
743 
744 static inline bool is_sparc_SubX_t(ir_node const *const n)
745 {
746  return get_irn_op(n) == op_sparc_SubX_t;
747 }
748 
752 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);
753 
754 extern ir_op *op_sparc_SwitchJmp;
755 
756 static inline bool is_sparc_SwitchJmp(ir_node const *const n)
757 {
758  return get_irn_op(n) == op_sparc_SwitchJmp;
759 }
760 
764 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);
765 
766 extern ir_op *op_sparc_UDiv;
767 
768 static inline bool is_sparc_UDiv(ir_node const *const n)
769 {
770  return get_irn_op(n) == op_sparc_UDiv;
771 }
772 
776 ir_node *new_bd_sparc_UDiv_imm(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *dividend_high, ir_node *dividend_low, ir_entity *immediate_entity, int32_t immediate_value);
780 ir_node *new_bd_sparc_UDiv_reg(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *dividend_high, ir_node *dividend_low, ir_node *divisor);
781 
782 extern ir_op *op_sparc_UMulh;
783 
784 static inline bool is_sparc_UMulh(ir_node const *const n)
785 {
786  return get_irn_op(n) == op_sparc_UMulh;
787 }
788 
792 ir_node *new_bd_sparc_UMulh_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
796 ir_node *new_bd_sparc_UMulh_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
797 
798 extern ir_op *op_sparc_XNor;
799 
800 static inline bool is_sparc_XNor(ir_node const *const n)
801 {
802  return get_irn_op(n) == op_sparc_XNor;
803 }
804 
808 ir_node *new_bd_sparc_XNor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
812 ir_node *new_bd_sparc_XNor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
813 
814 extern ir_op *op_sparc_XNorCCZero;
815 
816 static inline bool is_sparc_XNorCCZero(ir_node const *const n)
817 {
818  return get_irn_op(n) == op_sparc_XNorCCZero;
819 }
820 
824 ir_node *new_bd_sparc_XNorCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
828 ir_node *new_bd_sparc_XNorCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
829 
830 extern ir_op *op_sparc_Xor;
831 
832 static inline bool is_sparc_Xor(ir_node const *const n)
833 {
834  return get_irn_op(n) == op_sparc_Xor;
835 }
836 
840 ir_node *new_bd_sparc_Xor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
844 ir_node *new_bd_sparc_Xor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
845 
846 extern ir_op *op_sparc_XorCCZero;
847 
848 static inline bool is_sparc_XorCCZero(ir_node const *const n)
849 {
850  return get_irn_op(n) == op_sparc_XorCCZero;
851 }
852 
856 ir_node *new_bd_sparc_XorCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
860 ir_node *new_bd_sparc_XorCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
861 
862 extern ir_op *op_sparc_fabs;
863 
864 static inline bool is_sparc_fabs(ir_node const *const n)
865 {
866  return get_irn_op(n) == op_sparc_fabs;
867 }
868 
872 ir_node *new_bd_sparc_fabs_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
876 ir_node *new_bd_sparc_fabs_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
880 ir_node *new_bd_sparc_fabs_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
881 
882 extern ir_op *op_sparc_fadd;
883 
884 static inline bool is_sparc_fadd(ir_node const *const n)
885 {
886  return get_irn_op(n) == op_sparc_fadd;
887 }
888 
892 ir_node *new_bd_sparc_fadd_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
896 ir_node *new_bd_sparc_fadd_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
900 ir_node *new_bd_sparc_fadd_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
901 
902 extern ir_op *op_sparc_fbfcc;
903 
904 static inline bool is_sparc_fbfcc(ir_node const *const n)
905 {
906  return get_irn_op(n) == op_sparc_fbfcc;
907 }
908 
912 ir_node *new_bd_sparc_fbfcc(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation);
913 
914 extern ir_op *op_sparc_fcmp;
915 
916 static inline bool is_sparc_fcmp(ir_node const *const n)
917 {
918  return get_irn_op(n) == op_sparc_fcmp;
919 }
920 
924 ir_node *new_bd_sparc_fcmp_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
928 ir_node *new_bd_sparc_fcmp_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
932 ir_node *new_bd_sparc_fcmp_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
933 
934 extern ir_op *op_sparc_fdiv;
935 
936 static inline bool is_sparc_fdiv(ir_node const *const n)
937 {
938  return get_irn_op(n) == op_sparc_fdiv;
939 }
940 
944 ir_node *new_bd_sparc_fdiv_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
948 ir_node *new_bd_sparc_fdiv_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
952 ir_node *new_bd_sparc_fdiv_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
953 
954 extern ir_op *op_sparc_fftof;
955 
956 static inline bool is_sparc_fftof(ir_node const *const n)
957 {
958  return get_irn_op(n) == op_sparc_fftof;
959 }
960 
964 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);
968 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);
972 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);
976 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);
980 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);
984 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);
985 
986 extern ir_op *op_sparc_fftoi;
987 
988 static inline bool is_sparc_fftoi(ir_node const *const n)
989 {
990  return get_irn_op(n) == op_sparc_fftoi;
991 }
992 
996 ir_node *new_bd_sparc_fftoi_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1000 ir_node *new_bd_sparc_fftoi_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1004 ir_node *new_bd_sparc_fftoi_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1005 
1006 extern ir_op *op_sparc_fitof;
1007 
1008 static inline bool is_sparc_fitof(ir_node const *const n)
1009 {
1010  return get_irn_op(n) == op_sparc_fitof;
1011 }
1012 
1016 ir_node *new_bd_sparc_fitof_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1020 ir_node *new_bd_sparc_fitof_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1024 ir_node *new_bd_sparc_fitof_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1025 
1026 extern ir_op *op_sparc_fmul;
1027 
1028 static inline bool is_sparc_fmul(ir_node const *const n)
1029 {
1030  return get_irn_op(n) == op_sparc_fmul;
1031 }
1032 
1036 ir_node *new_bd_sparc_fmul_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1040 ir_node *new_bd_sparc_fmul_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1044 ir_node *new_bd_sparc_fmul_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1045 
1046 extern ir_op *op_sparc_fneg;
1047 
1048 static inline bool is_sparc_fneg(ir_node const *const n)
1049 {
1050  return get_irn_op(n) == op_sparc_fneg;
1051 }
1052 
1056 ir_node *new_bd_sparc_fneg_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
1060 ir_node *new_bd_sparc_fneg_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
1064 ir_node *new_bd_sparc_fneg_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
1065 
1066 extern ir_op *op_sparc_fsub;
1067 
1068 static inline bool is_sparc_fsub(ir_node const *const n)
1069 {
1070  return get_irn_op(n) == op_sparc_fsub;
1071 }
1072 
1076 ir_node *new_bd_sparc_fsub_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1080 ir_node *new_bd_sparc_fsub_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1084 ir_node *new_bd_sparc_fsub_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1085 
1086 
1087 typedef enum pn_sparc_AddCC {
1088  pn_sparc_AddCC_res = 0,
1089  pn_sparc_AddCC_flags = 1,
1090 } pn_sparc_AddCC;
1091 
1092 typedef enum pn_sparc_AddCC_t {
1093  pn_sparc_AddCC_t_res = 0,
1094  pn_sparc_AddCC_t_flags = 1,
1095 } pn_sparc_AddCC_t;
1096 
1097 typedef enum n_sparc_AddCC_t {
1098  n_sparc_AddCC_t_left = 0,
1099  n_sparc_AddCC_t_right = 1,
1100 } n_sparc_AddCC_t;
1101 
1102 typedef enum pn_sparc_AddSP {
1103  pn_sparc_AddSP_stack = 0,
1104 } pn_sparc_AddSP;
1105 
1106 typedef enum n_sparc_AddSP {
1107  n_sparc_AddSP_stack = 0,
1108  n_sparc_AddSP_size = 1,
1109 } n_sparc_AddSP;
1110 
1111 typedef enum n_sparc_AddX_t {
1112  n_sparc_AddX_t_left = 0,
1113  n_sparc_AddX_t_right = 1,
1114  n_sparc_AddX_t_flags_input = 2,
1115 } n_sparc_AddX_t;
1116 
1117 typedef enum pn_sparc_Bicc {
1118  pn_sparc_Bicc_false = 0,
1119  pn_sparc_Bicc_true = 1,
1120 } pn_sparc_Bicc;
1121 
1122 typedef enum n_sparc_Bicc {
1123  n_sparc_Bicc_flags = 0,
1124 } n_sparc_Bicc;
1125 
1126 typedef enum pn_sparc_Call {
1127  pn_sparc_Call_M = 0,
1128  pn_sparc_Call_stack = 1,
1129  pn_sparc_Call_first_result = 2,
1130 } pn_sparc_Call;
1131 
1132 typedef enum pn_sparc_Cas {
1133  pn_sparc_Cas_res = 0,
1134  pn_sparc_Cas_M = 1,
1135 } pn_sparc_Cas;
1136 
1137 typedef enum n_sparc_Cas {
1138  n_sparc_Cas_ptr = 0,
1139  n_sparc_Cas_old = 1,
1140  n_sparc_Cas_new = 2,
1141  n_sparc_Cas_mem = 3,
1142 } n_sparc_Cas;
1143 
1144 typedef enum n_sparc_FrameAddr {
1145  n_sparc_FrameAddr_base = 0,
1146 } n_sparc_FrameAddr;
1147 
1148 typedef enum pn_sparc_IJmp {
1149  pn_sparc_IJmp_jmp = 0,
1150 } pn_sparc_IJmp;
1151 
1152 typedef enum pn_sparc_Ld {
1153  pn_sparc_Ld_res = 0,
1154  pn_sparc_Ld_M = 1,
1155 } pn_sparc_Ld;
1156 
1157 typedef enum n_sparc_Ld {
1158  n_sparc_Ld_ptr = 0,
1159  n_sparc_Ld_mem = 1,
1160 } n_sparc_Ld;
1161 
1162 typedef enum pn_sparc_Ldf {
1163  pn_sparc_Ldf_res = 0,
1164  pn_sparc_Ldf_M = 1,
1165 } pn_sparc_Ldf;
1166 
1167 typedef enum n_sparc_Ldf {
1168  n_sparc_Ldf_ptr = 0,
1169  n_sparc_Ldf_mem = 1,
1170 } n_sparc_Ldf;
1171 
1172 typedef enum pn_sparc_Restore {
1173  pn_sparc_Restore_stack = 0,
1174  pn_sparc_Restore_res = 1,
1175 } pn_sparc_Restore;
1176 
1177 typedef enum pn_sparc_RestoreZero {
1178  pn_sparc_RestoreZero_stack = 0,
1179 } pn_sparc_RestoreZero;
1180 
1181 typedef enum n_sparc_RestoreZero {
1182  n_sparc_RestoreZero_stack = 0,
1183  n_sparc_RestoreZero_frame_pointer = 1,
1184 } n_sparc_RestoreZero;
1185 
1186 typedef enum n_sparc_Return {
1187  n_sparc_Return_mem = 0,
1188  n_sparc_Return_sp = 1,
1189  n_sparc_Return_first_result = 2,
1190 } n_sparc_Return;
1191 
1192 typedef enum pn_sparc_SDiv {
1193  pn_sparc_SDiv_res = 0,
1194  pn_sparc_SDiv_M = 1,
1195 } pn_sparc_SDiv;
1196 
1197 typedef enum n_sparc_SDiv {
1198  n_sparc_SDiv_mem = 0,
1199  n_sparc_SDiv_dividend_high = 1,
1200  n_sparc_SDiv_dividend_low = 2,
1201  n_sparc_SDiv_divisor = 3,
1202 } n_sparc_SDiv;
1203 
1204 typedef enum pn_sparc_Save {
1205  pn_sparc_Save_stack = 0,
1206 } pn_sparc_Save;
1207 
1208 typedef enum n_sparc_Save {
1209  n_sparc_Save_stack = 0,
1210 } n_sparc_Save;
1211 
1212 typedef enum pn_sparc_SetHi {
1213  pn_sparc_SetHi_res = 0,
1214 } pn_sparc_SetHi;
1215 
1216 typedef enum pn_sparc_St {
1217  pn_sparc_St_M = 0,
1218 } pn_sparc_St;
1219 
1220 typedef enum n_sparc_St {
1221  n_sparc_St_val = 0,
1222  n_sparc_St_ptr = 1,
1223  n_sparc_St_mem = 2,
1224 } n_sparc_St;
1225 
1226 typedef enum pn_sparc_Stbar {
1227  pn_sparc_Stbar_M = 0,
1228 } pn_sparc_Stbar;
1229 
1230 typedef enum n_sparc_Stbar {
1231  n_sparc_Stbar_mem = 0,
1232 } n_sparc_Stbar;
1233 
1234 typedef enum pn_sparc_Stf {
1235  pn_sparc_Stf_M = 0,
1236 } pn_sparc_Stf;
1237 
1238 typedef enum n_sparc_Stf {
1239  n_sparc_Stf_val = 0,
1240  n_sparc_Stf_ptr = 1,
1241  n_sparc_Stf_mem = 2,
1242 } n_sparc_Stf;
1243 
1244 typedef enum pn_sparc_SubCC {
1245  pn_sparc_SubCC_res = 0,
1246  pn_sparc_SubCC_flags = 1,
1247 } pn_sparc_SubCC;
1248 
1249 typedef enum pn_sparc_SubCC_t {
1250  pn_sparc_SubCC_t_res = 0,
1251  pn_sparc_SubCC_t_flags = 1,
1252 } pn_sparc_SubCC_t;
1253 
1254 typedef enum n_sparc_SubCC_t {
1255  n_sparc_SubCC_t_left = 0,
1256  n_sparc_SubCC_t_right = 1,
1257 } n_sparc_SubCC_t;
1258 
1259 typedef enum pn_sparc_SubSP {
1260  pn_sparc_SubSP_stack = 0,
1261  pn_sparc_SubSP_addr = 1,
1262  pn_sparc_SubSP_M = 2,
1263 } pn_sparc_SubSP;
1264 
1265 typedef enum n_sparc_SubSP {
1266  n_sparc_SubSP_stack = 0,
1267 } n_sparc_SubSP;
1268 
1269 typedef enum n_sparc_SubX_t {
1270  n_sparc_SubX_t_left = 0,
1271  n_sparc_SubX_t_right = 1,
1272  n_sparc_SubX_t_flags_input = 2,
1273 } n_sparc_SubX_t;
1274 
1275 typedef enum pn_sparc_UDiv {
1276  pn_sparc_UDiv_res = 0,
1277  pn_sparc_UDiv_M = 1,
1278 } pn_sparc_UDiv;
1279 
1280 typedef enum n_sparc_UDiv {
1281  n_sparc_UDiv_mem = 0,
1282  n_sparc_UDiv_dividend_high = 1,
1283  n_sparc_UDiv_dividend_low = 2,
1284  n_sparc_UDiv_divisor = 3,
1285 } n_sparc_UDiv;
1286 
1287 typedef enum n_sparc_fabs {
1288  n_sparc_fabs_val = 0,
1289 } n_sparc_fabs;
1290 
1291 typedef enum n_sparc_fadd {
1292  n_sparc_fadd_left = 0,
1293  n_sparc_fadd_right = 1,
1294 } n_sparc_fadd;
1295 
1296 typedef enum pn_sparc_fbfcc {
1297  pn_sparc_fbfcc_false = 0,
1298  pn_sparc_fbfcc_true = 1,
1299 } pn_sparc_fbfcc;
1300 
1301 typedef enum n_sparc_fbfcc {
1302  n_sparc_fbfcc_flags = 0,
1303 } n_sparc_fbfcc;
1304 
1305 typedef enum pn_sparc_fdiv {
1306  pn_sparc_fdiv_res = 0,
1307  pn_sparc_fdiv_M = 1,
1308 } pn_sparc_fdiv;
1309 
1310 typedef enum n_sparc_fdiv {
1311  n_sparc_fdiv_left = 0,
1312  n_sparc_fdiv_right = 1,
1313 } n_sparc_fdiv;
1314 
1315 typedef enum n_sparc_fmul {
1316  n_sparc_fmul_left = 0,
1317  n_sparc_fmul_right = 1,
1318 } n_sparc_fmul;
1319 
1320 typedef enum n_sparc_fneg {
1321  n_sparc_fneg_val = 0,
1322 } n_sparc_fneg;
1323 
1324 typedef enum n_sparc_fsub {
1325  n_sparc_fsub_left = 0,
1326  n_sparc_fsub_right = 1,
1327 } n_sparc_fsub;
1328 
1329 
1330 #endif
struct ir_op ir_op
Node Opcode.
Definition: firm_types.h:56
struct ir_type ir_type
Type.
Definition: firm_types.h:71
struct dbg_info dbg_info
Source Reference.
Definition: firm_types.h:40
ir_op * get_irn_op(const ir_node *node)
Returns the opcode struct of the node.
struct ir_switch_table ir_switch_table
A switch table mapping integer numbers to proj-numbers of a Switch-node.
Definition: firm_types.h:102
ir_relation
Relations for comparing numbers.
Definition: firm_types.h:159
struct ir_mode ir_mode
SSA Value mode.
Definition: firm_types.h:59
struct ir_entity ir_entity
Entity.
Definition: firm_types.h:83
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53