libFirm
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
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 
15 typedef enum sparc_opcodes {
16  iro_sparc_Add,
17  iro_sparc_AddCC,
18  iro_sparc_AddCCZero,
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_Ld,
34  iro_sparc_Ldf,
35  iro_sparc_Mul,
36  iro_sparc_MulCCZero,
37  iro_sparc_Or,
38  iro_sparc_OrCCZero,
39  iro_sparc_OrN,
40  iro_sparc_OrNCCZero,
41  iro_sparc_Restore,
42  iro_sparc_RestoreZero,
43  iro_sparc_Return,
44  iro_sparc_SDiv,
45  iro_sparc_SMulh,
46  iro_sparc_Save,
47  iro_sparc_SetHi,
48  iro_sparc_Sll,
49  iro_sparc_Sra,
50  iro_sparc_Srl,
51  iro_sparc_St,
52  iro_sparc_Stbar,
53  iro_sparc_Stf,
54  iro_sparc_Sub,
55  iro_sparc_SubCC,
56  iro_sparc_SubCCZero,
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_AddCCZero;
123 
124 static inline bool is_sparc_AddCCZero(ir_node const *const n)
125 {
126  return get_irn_op(n) == op_sparc_AddCCZero;
127 }
128 
132 ir_node *new_bd_sparc_AddCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
136 ir_node *new_bd_sparc_AddCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
137 
138 extern ir_op *op_sparc_AddCC_t;
139 
140 static inline bool is_sparc_AddCC_t(ir_node const *const n)
141 {
142  return get_irn_op(n) == op_sparc_AddCC_t;
143 }
144 
148 ir_node *new_bd_sparc_AddCC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
149 
150 extern ir_op *op_sparc_AddSP;
151 
152 static inline bool is_sparc_AddSP(ir_node const *const n)
153 {
154  return get_irn_op(n) == op_sparc_AddSP;
155 }
156 
160 ir_node *new_bd_sparc_AddSP(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *size);
161 
162 extern ir_op *op_sparc_AddX;
163 
164 static inline bool is_sparc_AddX(ir_node const *const n)
165 {
166  return get_irn_op(n) == op_sparc_AddX;
167 }
168 
172 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);
176 ir_node *new_bd_sparc_AddX_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *carry);
177 
178 extern ir_op *op_sparc_AddX_t;
179 
180 static inline bool is_sparc_AddX_t(ir_node const *const n)
181 {
182  return get_irn_op(n) == op_sparc_AddX_t;
183 }
184 
188 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);
189 
190 extern ir_op *op_sparc_And;
191 
192 static inline bool is_sparc_And(ir_node const *const n)
193 {
194  return get_irn_op(n) == op_sparc_And;
195 }
196 
200 ir_node *new_bd_sparc_And_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
204 ir_node *new_bd_sparc_And_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
205 
206 extern ir_op *op_sparc_AndCCZero;
207 
208 static inline bool is_sparc_AndCCZero(ir_node const *const n)
209 {
210  return get_irn_op(n) == op_sparc_AndCCZero;
211 }
212 
216 ir_node *new_bd_sparc_AndCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
220 ir_node *new_bd_sparc_AndCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
221 
222 extern ir_op *op_sparc_AndN;
223 
224 static inline bool is_sparc_AndN(ir_node const *const n)
225 {
226  return get_irn_op(n) == op_sparc_AndN;
227 }
228 
232 ir_node *new_bd_sparc_AndN_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
236 ir_node *new_bd_sparc_AndN_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
237 
238 extern ir_op *op_sparc_AndNCCZero;
239 
240 static inline bool is_sparc_AndNCCZero(ir_node const *const n)
241 {
242  return get_irn_op(n) == op_sparc_AndNCCZero;
243 }
244 
248 ir_node *new_bd_sparc_AndNCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
252 ir_node *new_bd_sparc_AndNCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
253 
254 extern ir_op *op_sparc_Ba;
255 
256 static inline bool is_sparc_Ba(ir_node const *const n)
257 {
258  return get_irn_op(n) == op_sparc_Ba;
259 }
260 
264 ir_node *new_bd_sparc_Ba(dbg_info *dbgi, ir_node *block);
265 
266 extern ir_op *op_sparc_Bicc;
267 
268 static inline bool is_sparc_Bicc(ir_node const *const n)
269 {
270  return get_irn_op(n) == op_sparc_Bicc;
271 }
272 
276 ir_node *new_bd_sparc_Bicc(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation, bool is_unsigned);
277 
278 extern ir_op *op_sparc_Call;
279 
280 static inline bool is_sparc_Call(ir_node const *const n)
281 {
282  return get_irn_op(n) == op_sparc_Call;
283 }
284 
288 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);
292 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);
293 
294 extern ir_op *op_sparc_Cas;
295 
296 static inline bool is_sparc_Cas(ir_node const *const n)
297 {
298  return get_irn_op(n) == op_sparc_Cas;
299 }
300 
304 ir_node *new_bd_sparc_Cas(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *old, ir_node *new, ir_node *mem);
305 
306 extern ir_op *op_sparc_Cmp;
307 
308 static inline bool is_sparc_Cmp(ir_node const *const n)
309 {
310  return get_irn_op(n) == op_sparc_Cmp;
311 }
312 
316 ir_node *new_bd_sparc_Cmp_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
320 ir_node *new_bd_sparc_Cmp_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
321 
322 extern ir_op *op_sparc_FrameAddr;
323 
324 static inline bool is_sparc_FrameAddr(ir_node const *const n)
325 {
326  return get_irn_op(n) == op_sparc_FrameAddr;
327 }
328 
332 ir_node *new_bd_sparc_FrameAddr(dbg_info *dbgi, ir_node *block, ir_node *base, ir_entity *entity, int32_t offset);
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_Mul;
371 
372 static inline bool is_sparc_Mul(ir_node const *const n)
373 {
374  return get_irn_op(n) == op_sparc_Mul;
375 }
376 
380 ir_node *new_bd_sparc_Mul_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
384 ir_node *new_bd_sparc_Mul_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
385 
386 extern ir_op *op_sparc_MulCCZero;
387 
388 static inline bool is_sparc_MulCCZero(ir_node const *const n)
389 {
390  return get_irn_op(n) == op_sparc_MulCCZero;
391 }
392 
396 ir_node *new_bd_sparc_MulCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
400 ir_node *new_bd_sparc_MulCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
401 
402 extern ir_op *op_sparc_Or;
403 
404 static inline bool is_sparc_Or(ir_node const *const n)
405 {
406  return get_irn_op(n) == op_sparc_Or;
407 }
408 
412 ir_node *new_bd_sparc_Or_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
416 ir_node *new_bd_sparc_Or_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
417 
418 extern ir_op *op_sparc_OrCCZero;
419 
420 static inline bool is_sparc_OrCCZero(ir_node const *const n)
421 {
422  return get_irn_op(n) == op_sparc_OrCCZero;
423 }
424 
428 ir_node *new_bd_sparc_OrCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
432 ir_node *new_bd_sparc_OrCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
433 
434 extern ir_op *op_sparc_OrN;
435 
436 static inline bool is_sparc_OrN(ir_node const *const n)
437 {
438  return get_irn_op(n) == op_sparc_OrN;
439 }
440 
444 ir_node *new_bd_sparc_OrN_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
448 ir_node *new_bd_sparc_OrN_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
449 
450 extern ir_op *op_sparc_OrNCCZero;
451 
452 static inline bool is_sparc_OrNCCZero(ir_node const *const n)
453 {
454  return get_irn_op(n) == op_sparc_OrNCCZero;
455 }
456 
460 ir_node *new_bd_sparc_OrNCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
464 ir_node *new_bd_sparc_OrNCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
465 
466 extern ir_op *op_sparc_Restore;
467 
468 static inline bool is_sparc_Restore(ir_node const *const n)
469 {
470  return get_irn_op(n) == op_sparc_Restore;
471 }
472 
476 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);
480 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);
481 
482 extern ir_op *op_sparc_RestoreZero;
483 
484 static inline bool is_sparc_RestoreZero(ir_node const *const n)
485 {
486  return get_irn_op(n) == op_sparc_RestoreZero;
487 }
488 
492 ir_node *new_bd_sparc_RestoreZero(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *frame_pointer);
493 
494 extern ir_op *op_sparc_Return;
495 
496 static inline bool is_sparc_Return(ir_node const *const n)
497 {
498  return get_irn_op(n) == op_sparc_Return;
499 }
500 
504 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);
508 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);
509 
510 extern ir_op *op_sparc_SDiv;
511 
512 static inline bool is_sparc_SDiv(ir_node const *const n)
513 {
514  return get_irn_op(n) == op_sparc_SDiv;
515 }
516 
520 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);
524 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);
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_SubCCZero;
699 
700 static inline bool is_sparc_SubCCZero(ir_node const *const n)
701 {
702  return get_irn_op(n) == op_sparc_SubCCZero;
703 }
704 
708 ir_node *new_bd_sparc_SubCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
712 ir_node *new_bd_sparc_SubCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
713 
714 extern ir_op *op_sparc_SubCC_t;
715 
716 static inline bool is_sparc_SubCC_t(ir_node const *const n)
717 {
718  return get_irn_op(n) == op_sparc_SubCC_t;
719 }
720 
724 ir_node *new_bd_sparc_SubCC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
725 
726 extern ir_op *op_sparc_SubSP;
727 
728 static inline bool is_sparc_SubSP(ir_node const *const n)
729 {
730  return get_irn_op(n) == op_sparc_SubSP;
731 }
732 
736 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);
740 ir_node *new_bd_sparc_SubSP_reg(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *size, ir_node *mem);
741 
742 extern ir_op *op_sparc_SubX;
743 
744 static inline bool is_sparc_SubX(ir_node const *const n)
745 {
746  return get_irn_op(n) == op_sparc_SubX;
747 }
748 
752 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);
756 ir_node *new_bd_sparc_SubX_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *carry);
757 
758 extern ir_op *op_sparc_SubX_t;
759 
760 static inline bool is_sparc_SubX_t(ir_node const *const n)
761 {
762  return get_irn_op(n) == op_sparc_SubX_t;
763 }
764 
768 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);
769 
770 extern ir_op *op_sparc_SwitchJmp;
771 
772 static inline bool is_sparc_SwitchJmp(ir_node const *const n)
773 {
774  return get_irn_op(n) == op_sparc_SwitchJmp;
775 }
776 
780 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);
781 
782 extern ir_op *op_sparc_UDiv;
783 
784 static inline bool is_sparc_UDiv(ir_node const *const n)
785 {
786  return get_irn_op(n) == op_sparc_UDiv;
787 }
788 
792 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);
796 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);
797 
798 extern ir_op *op_sparc_UMulh;
799 
800 static inline bool is_sparc_UMulh(ir_node const *const n)
801 {
802  return get_irn_op(n) == op_sparc_UMulh;
803 }
804 
808 ir_node *new_bd_sparc_UMulh_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
812 ir_node *new_bd_sparc_UMulh_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
813 
814 extern ir_op *op_sparc_XNor;
815 
816 static inline bool is_sparc_XNor(ir_node const *const n)
817 {
818  return get_irn_op(n) == op_sparc_XNor;
819 }
820 
824 ir_node *new_bd_sparc_XNor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
828 ir_node *new_bd_sparc_XNor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
829 
830 extern ir_op *op_sparc_XNorCCZero;
831 
832 static inline bool is_sparc_XNorCCZero(ir_node const *const n)
833 {
834  return get_irn_op(n) == op_sparc_XNorCCZero;
835 }
836 
840 ir_node *new_bd_sparc_XNorCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
844 ir_node *new_bd_sparc_XNorCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
845 
846 extern ir_op *op_sparc_Xor;
847 
848 static inline bool is_sparc_Xor(ir_node const *const n)
849 {
850  return get_irn_op(n) == op_sparc_Xor;
851 }
852 
856 ir_node *new_bd_sparc_Xor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
860 ir_node *new_bd_sparc_Xor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
861 
862 extern ir_op *op_sparc_XorCCZero;
863 
864 static inline bool is_sparc_XorCCZero(ir_node const *const n)
865 {
866  return get_irn_op(n) == op_sparc_XorCCZero;
867 }
868 
872 ir_node *new_bd_sparc_XorCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
876 ir_node *new_bd_sparc_XorCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
877 
878 extern ir_op *op_sparc_fabs;
879 
880 static inline bool is_sparc_fabs(ir_node const *const n)
881 {
882  return get_irn_op(n) == op_sparc_fabs;
883 }
884 
888 ir_node *new_bd_sparc_fabs_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
892 ir_node *new_bd_sparc_fabs_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
896 ir_node *new_bd_sparc_fabs_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
897 
898 extern ir_op *op_sparc_fadd;
899 
900 static inline bool is_sparc_fadd(ir_node const *const n)
901 {
902  return get_irn_op(n) == op_sparc_fadd;
903 }
904 
908 ir_node *new_bd_sparc_fadd_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
912 ir_node *new_bd_sparc_fadd_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
916 ir_node *new_bd_sparc_fadd_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
917 
918 extern ir_op *op_sparc_fbfcc;
919 
920 static inline bool is_sparc_fbfcc(ir_node const *const n)
921 {
922  return get_irn_op(n) == op_sparc_fbfcc;
923 }
924 
928 ir_node *new_bd_sparc_fbfcc(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation);
929 
930 extern ir_op *op_sparc_fcmp;
931 
932 static inline bool is_sparc_fcmp(ir_node const *const n)
933 {
934  return get_irn_op(n) == op_sparc_fcmp;
935 }
936 
940 ir_node *new_bd_sparc_fcmp_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
944 ir_node *new_bd_sparc_fcmp_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
948 ir_node *new_bd_sparc_fcmp_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
949 
950 extern ir_op *op_sparc_fdiv;
951 
952 static inline bool is_sparc_fdiv(ir_node const *const n)
953 {
954  return get_irn_op(n) == op_sparc_fdiv;
955 }
956 
960 ir_node *new_bd_sparc_fdiv_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
964 ir_node *new_bd_sparc_fdiv_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
968 ir_node *new_bd_sparc_fdiv_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
969 
970 extern ir_op *op_sparc_fftof;
971 
972 static inline bool is_sparc_fftof(ir_node const *const n)
973 {
974  return get_irn_op(n) == op_sparc_fftof;
975 }
976 
980 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);
984 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);
988 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);
992 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);
996 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);
1000 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);
1001 
1002 extern ir_op *op_sparc_fftoi;
1003 
1004 static inline bool is_sparc_fftoi(ir_node const *const n)
1005 {
1006  return get_irn_op(n) == op_sparc_fftoi;
1007 }
1008 
1012 ir_node *new_bd_sparc_fftoi_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1016 ir_node *new_bd_sparc_fftoi_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1020 ir_node *new_bd_sparc_fftoi_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1021 
1022 extern ir_op *op_sparc_fitof;
1023 
1024 static inline bool is_sparc_fitof(ir_node const *const n)
1025 {
1026  return get_irn_op(n) == op_sparc_fitof;
1027 }
1028 
1032 ir_node *new_bd_sparc_fitof_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1036 ir_node *new_bd_sparc_fitof_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1040 ir_node *new_bd_sparc_fitof_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
1041 
1042 extern ir_op *op_sparc_fmul;
1043 
1044 static inline bool is_sparc_fmul(ir_node const *const n)
1045 {
1046  return get_irn_op(n) == op_sparc_fmul;
1047 }
1048 
1052 ir_node *new_bd_sparc_fmul_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1056 ir_node *new_bd_sparc_fmul_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1060 ir_node *new_bd_sparc_fmul_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1061 
1062 extern ir_op *op_sparc_fneg;
1063 
1064 static inline bool is_sparc_fneg(ir_node const *const n)
1065 {
1066  return get_irn_op(n) == op_sparc_fneg;
1067 }
1068 
1072 ir_node *new_bd_sparc_fneg_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
1076 ir_node *new_bd_sparc_fneg_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
1080 ir_node *new_bd_sparc_fneg_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
1081 
1082 extern ir_op *op_sparc_fsub;
1083 
1084 static inline bool is_sparc_fsub(ir_node const *const n)
1085 {
1086  return get_irn_op(n) == op_sparc_fsub;
1087 }
1088 
1092 ir_node *new_bd_sparc_fsub_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1096 ir_node *new_bd_sparc_fsub_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1100 ir_node *new_bd_sparc_fsub_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
1101 
1102 
1103 typedef enum pn_sparc_AddCC {
1104  pn_sparc_AddCC_res = 0,
1105  pn_sparc_AddCC_flags = 1,
1106 } pn_sparc_AddCC;
1107 
1108 typedef enum pn_sparc_AddCC_t {
1109  pn_sparc_AddCC_t_res = 0,
1110  pn_sparc_AddCC_t_flags = 1,
1111 } pn_sparc_AddCC_t;
1112 
1113 typedef enum n_sparc_AddCC_t {
1114  n_sparc_AddCC_t_left = 0,
1115  n_sparc_AddCC_t_right = 1,
1116 } n_sparc_AddCC_t;
1117 
1118 typedef enum pn_sparc_AddSP {
1119  pn_sparc_AddSP_stack = 0,
1120 } pn_sparc_AddSP;
1121 
1122 typedef enum n_sparc_AddSP {
1123  n_sparc_AddSP_stack = 0,
1124  n_sparc_AddSP_size = 1,
1125 } n_sparc_AddSP;
1126 
1127 typedef enum n_sparc_AddX_t {
1128  n_sparc_AddX_t_left = 0,
1129  n_sparc_AddX_t_right = 1,
1130  n_sparc_AddX_t_flags_input = 2,
1131 } n_sparc_AddX_t;
1132 
1133 typedef enum pn_sparc_Bicc {
1134  pn_sparc_Bicc_false = 0,
1135  pn_sparc_Bicc_true = 1,
1136 } pn_sparc_Bicc;
1137 
1138 typedef enum n_sparc_Bicc {
1139  n_sparc_Bicc_flags = 0,
1140 } n_sparc_Bicc;
1141 
1142 typedef enum pn_sparc_Call {
1143  pn_sparc_Call_M = 0,
1144  pn_sparc_Call_stack = 1,
1145  pn_sparc_Call_first_result = 2,
1146 } pn_sparc_Call;
1147 
1148 typedef enum pn_sparc_Cas {
1149  pn_sparc_Cas_res = 0,
1150  pn_sparc_Cas_M = 1,
1151 } pn_sparc_Cas;
1152 
1153 typedef enum n_sparc_Cas {
1154  n_sparc_Cas_ptr = 0,
1155  n_sparc_Cas_old = 1,
1156  n_sparc_Cas_new = 2,
1157  n_sparc_Cas_mem = 3,
1158 } n_sparc_Cas;
1159 
1160 typedef enum n_sparc_FrameAddr {
1161  n_sparc_FrameAddr_base = 0,
1162 } n_sparc_FrameAddr;
1163 
1164 typedef enum pn_sparc_Ld {
1165  pn_sparc_Ld_res = 0,
1166  pn_sparc_Ld_M = 1,
1167 } pn_sparc_Ld;
1168 
1169 typedef enum n_sparc_Ld {
1170  n_sparc_Ld_ptr = 0,
1171  n_sparc_Ld_mem = 1,
1172 } n_sparc_Ld;
1173 
1174 typedef enum pn_sparc_Ldf {
1175  pn_sparc_Ldf_res = 0,
1176  pn_sparc_Ldf_M = 1,
1177 } pn_sparc_Ldf;
1178 
1179 typedef enum n_sparc_Ldf {
1180  n_sparc_Ldf_ptr = 0,
1181  n_sparc_Ldf_mem = 1,
1182 } n_sparc_Ldf;
1183 
1184 typedef enum pn_sparc_Restore {
1185  pn_sparc_Restore_stack = 0,
1186  pn_sparc_Restore_res = 1,
1187 } pn_sparc_Restore;
1188 
1189 typedef enum pn_sparc_RestoreZero {
1190  pn_sparc_RestoreZero_stack = 0,
1191 } pn_sparc_RestoreZero;
1192 
1193 typedef enum n_sparc_RestoreZero {
1194  n_sparc_RestoreZero_stack = 0,
1195  n_sparc_RestoreZero_frame_pointer = 1,
1196 } n_sparc_RestoreZero;
1197 
1198 typedef enum n_sparc_Return {
1199  n_sparc_Return_mem = 0,
1200  n_sparc_Return_sp = 1,
1201  n_sparc_Return_first_result = 2,
1202 } n_sparc_Return;
1203 
1204 typedef enum pn_sparc_SDiv {
1205  pn_sparc_SDiv_res = 0,
1206  pn_sparc_SDiv_M = 1,
1207 } pn_sparc_SDiv;
1208 
1209 typedef enum n_sparc_SDiv {
1210  n_sparc_SDiv_mem = 0,
1211  n_sparc_SDiv_dividend_high = 1,
1212  n_sparc_SDiv_dividend_low = 2,
1213  n_sparc_SDiv_divisor = 3,
1214 } n_sparc_SDiv;
1215 
1216 typedef enum pn_sparc_Save {
1217  pn_sparc_Save_stack = 0,
1218 } pn_sparc_Save;
1219 
1220 typedef enum n_sparc_Save {
1221  n_sparc_Save_stack = 0,
1222 } n_sparc_Save;
1223 
1224 typedef enum pn_sparc_SetHi {
1225  pn_sparc_SetHi_res = 0,
1226 } pn_sparc_SetHi;
1227 
1228 typedef enum pn_sparc_St {
1229  pn_sparc_St_M = 0,
1230 } pn_sparc_St;
1231 
1232 typedef enum n_sparc_St {
1233  n_sparc_St_val = 0,
1234  n_sparc_St_ptr = 1,
1235  n_sparc_St_mem = 2,
1236 } n_sparc_St;
1237 
1238 typedef enum pn_sparc_Stbar {
1239  pn_sparc_Stbar_M = 0,
1240 } pn_sparc_Stbar;
1241 
1242 typedef enum n_sparc_Stbar {
1243  n_sparc_Stbar_mem = 0,
1244 } n_sparc_Stbar;
1245 
1246 typedef enum pn_sparc_Stf {
1247  pn_sparc_Stf_M = 0,
1248 } pn_sparc_Stf;
1249 
1250 typedef enum n_sparc_Stf {
1251  n_sparc_Stf_val = 0,
1252  n_sparc_Stf_ptr = 1,
1253  n_sparc_Stf_mem = 2,
1254 } n_sparc_Stf;
1255 
1256 typedef enum pn_sparc_SubCC {
1257  pn_sparc_SubCC_res = 0,
1258  pn_sparc_SubCC_flags = 1,
1259 } pn_sparc_SubCC;
1260 
1261 typedef enum pn_sparc_SubCC_t {
1262  pn_sparc_SubCC_t_res = 0,
1263  pn_sparc_SubCC_t_flags = 1,
1264 } pn_sparc_SubCC_t;
1265 
1266 typedef enum n_sparc_SubCC_t {
1267  n_sparc_SubCC_t_left = 0,
1268  n_sparc_SubCC_t_right = 1,
1269 } n_sparc_SubCC_t;
1270 
1271 typedef enum pn_sparc_SubSP {
1272  pn_sparc_SubSP_stack = 0,
1273  pn_sparc_SubSP_addr = 1,
1274  pn_sparc_SubSP_M = 2,
1275 } pn_sparc_SubSP;
1276 
1277 typedef enum n_sparc_SubSP {
1278  n_sparc_SubSP_stack = 0,
1279 } n_sparc_SubSP;
1280 
1281 typedef enum n_sparc_SubX_t {
1282  n_sparc_SubX_t_left = 0,
1283  n_sparc_SubX_t_right = 1,
1284  n_sparc_SubX_t_flags_input = 2,
1285 } n_sparc_SubX_t;
1286 
1287 typedef enum pn_sparc_UDiv {
1288  pn_sparc_UDiv_res = 0,
1289  pn_sparc_UDiv_M = 1,
1290 } pn_sparc_UDiv;
1291 
1292 typedef enum n_sparc_UDiv {
1293  n_sparc_UDiv_mem = 0,
1294  n_sparc_UDiv_dividend_high = 1,
1295  n_sparc_UDiv_dividend_low = 2,
1296  n_sparc_UDiv_divisor = 3,
1297 } n_sparc_UDiv;
1298 
1299 typedef enum n_sparc_fabs {
1300  n_sparc_fabs_val = 0,
1301 } n_sparc_fabs;
1302 
1303 typedef enum n_sparc_fadd {
1304  n_sparc_fadd_left = 0,
1305  n_sparc_fadd_right = 1,
1306 } n_sparc_fadd;
1307 
1308 typedef enum pn_sparc_fbfcc {
1309  pn_sparc_fbfcc_false = 0,
1310  pn_sparc_fbfcc_true = 1,
1311 } pn_sparc_fbfcc;
1312 
1313 typedef enum n_sparc_fbfcc {
1314  n_sparc_fbfcc_flags = 0,
1315 } n_sparc_fbfcc;
1316 
1317 typedef enum pn_sparc_fdiv {
1318  pn_sparc_fdiv_res = 0,
1319  pn_sparc_fdiv_M = 1,
1320 } pn_sparc_fdiv;
1321 
1322 typedef enum n_sparc_fdiv {
1323  n_sparc_fdiv_left = 0,
1324  n_sparc_fdiv_right = 1,
1325 } n_sparc_fdiv;
1326 
1327 typedef enum n_sparc_fmul {
1328  n_sparc_fmul_left = 0,
1329  n_sparc_fmul_right = 1,
1330 } n_sparc_fmul;
1331 
1332 typedef enum n_sparc_fneg {
1333  n_sparc_fneg_val = 0,
1334 } n_sparc_fneg;
1335 
1336 typedef enum n_sparc_fsub {
1337  n_sparc_fsub_left = 0,
1338  n_sparc_fsub_right = 1,
1339 } n_sparc_fsub;
1340 
1341 
1342 #endif
struct ir_type ir_type
Type.
Definition: firm_types.h:71
struct dbg_info dbg_info
Source Reference.
Definition: firm_types.h:40
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_op * get_irn_op(const ir_node *node)
Returns the opcode struct of the node.
struct ir_op ir_op
Node Opcode.
Definition: firm_types.h:56
struct ir_entity ir_entity
Entity.
Definition: firm_types.h:83
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_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53