libFirm
gen_arm_new_nodes.h
1 
9 #ifndef FIRM_BE_ARM_GEN_ARM_NEW_NODES_H
10 #define FIRM_BE_ARM_GEN_ARM_NEW_NODES_H
11 
12 #include "be_types.h"
13 #include "irnode_t.h"
14 #include "arm_nodes_attr.h"
15 
16 typedef enum arm_opcodes {
17  iro_arm_AdC,
18  iro_arm_AdC_t,
19  iro_arm_Add,
20  iro_arm_AddS,
21  iro_arm_AddS_t,
22  iro_arm_Address,
23  iro_arm_Adf,
24  iro_arm_And,
25  iro_arm_B,
26  iro_arm_Bcc,
27  iro_arm_Bic,
28  iro_arm_Bl,
29  iro_arm_Clz,
30  iro_arm_Cmfe,
31  iro_arm_Cmn,
32  iro_arm_Cmp,
33  iro_arm_Dvf,
34  iro_arm_Eor,
35  iro_arm_Flt,
36  iro_arm_FrameAddr,
37  iro_arm_IJmp,
38  iro_arm_Ldf,
39  iro_arm_Ldr,
40  iro_arm_LinkLdrPC,
41  iro_arm_LinkMovPC,
42  iro_arm_Mla,
43  iro_arm_Mls,
44  iro_arm_Mov,
45  iro_arm_Muf,
46  iro_arm_Mul,
47  iro_arm_Mvf,
48  iro_arm_Mvn,
49  iro_arm_OrPl_t,
50  iro_arm_Orr,
51  iro_arm_OrrPl,
52  iro_arm_Pkhbt,
53  iro_arm_Pkhtb,
54  iro_arm_Return,
55  iro_arm_RsC,
56  iro_arm_Rsb,
57  iro_arm_RsbS,
58  iro_arm_SMulL,
59  iro_arm_SMulL_t,
60  iro_arm_SbC,
61  iro_arm_SbC_t,
62  iro_arm_Stf,
63  iro_arm_Str,
64  iro_arm_Sub,
65  iro_arm_SubS,
66  iro_arm_SubS_t,
67  iro_arm_Suf,
68  iro_arm_SwitchJmp,
69  iro_arm_Tst,
70  iro_arm_UMulL,
71  iro_arm_UMulL_t,
72  iro_arm_fConst,
73  iro_arm_last
74 } arm_opcodes;
75 
76 
77 int is_arm_irn(const ir_node *node);
78 int is_arm_op(const ir_op *op);
79 
80 int get_arm_irn_opcode(const ir_node *node);
81 void arm_create_opcodes(void);
82 void arm_free_opcodes(void);
83 
84 extern ir_op *op_arm_AdC;
85 
86 static inline bool is_arm_AdC(ir_node const *const n)
87 {
88  return get_irn_op(n) == op_arm_AdC;
89 }
90 
94 ir_node *new_bd_arm_AdC_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *flags, unsigned char immediate_value, unsigned char immediate_rot);
98 ir_node *new_bd_arm_AdC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags);
102 ir_node *new_bd_arm_AdC_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
106 ir_node *new_bd_arm_AdC_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, ir_node *flags, arm_shift_modifier_t shift_modifier);
107 
108 extern ir_op *op_arm_AdC_t;
109 
110 static inline bool is_arm_AdC_t(ir_node const *const n)
111 {
112  return get_irn_op(n) == op_arm_AdC_t;
113 }
114 
118 ir_node *new_bd_arm_AdC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags, ir_mode *mode);
119 
120 extern ir_op *op_arm_Add;
121 
122 static inline bool is_arm_Add(ir_node const *const n)
123 {
124  return get_irn_op(n) == op_arm_Add;
125 }
126 
130 ir_node *new_bd_arm_Add_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
134 ir_node *new_bd_arm_Add_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
138 ir_node *new_bd_arm_Add_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
142 ir_node *new_bd_arm_Add_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
143 
144 extern ir_op *op_arm_AddS;
145 
146 static inline bool is_arm_AddS(ir_node const *const n)
147 {
148  return get_irn_op(n) == op_arm_AddS;
149 }
150 
154 ir_node *new_bd_arm_AddS_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
158 ir_node *new_bd_arm_AddS_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
162 ir_node *new_bd_arm_AddS_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
166 ir_node *new_bd_arm_AddS_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
167 
168 extern ir_op *op_arm_AddS_t;
169 
170 static inline bool is_arm_AddS_t(ir_node const *const n)
171 {
172  return get_irn_op(n) == op_arm_AddS_t;
173 }
174 
178 ir_node *new_bd_arm_AddS_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
179 
180 extern ir_op *op_arm_Address;
181 
182 static inline bool is_arm_Address(ir_node const *const n)
183 {
184  return get_irn_op(n) == op_arm_Address;
185 }
186 
190 ir_node *new_bd_arm_Address(dbg_info *dbgi, ir_node *block, ir_entity *entity, int offset);
191 
192 extern ir_op *op_arm_Adf;
193 
194 static inline bool is_arm_Adf(ir_node const *const n)
195 {
196  return get_irn_op(n) == op_arm_Adf;
197 }
198 
202 ir_node *new_bd_arm_Adf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *op_mode);
203 
204 extern ir_op *op_arm_And;
205 
206 static inline bool is_arm_And(ir_node const *const n)
207 {
208  return get_irn_op(n) == op_arm_And;
209 }
210 
214 ir_node *new_bd_arm_And_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
218 ir_node *new_bd_arm_And_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
222 ir_node *new_bd_arm_And_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
226 ir_node *new_bd_arm_And_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
227 
228 extern ir_op *op_arm_B;
229 
230 static inline bool is_arm_B(ir_node const *const n)
231 {
232  return get_irn_op(n) == op_arm_B;
233 }
234 
238 ir_node *new_bd_arm_B(dbg_info *dbgi, ir_node *block);
239 
240 extern ir_op *op_arm_Bcc;
241 
242 static inline bool is_arm_Bcc(ir_node const *const n)
243 {
244  return get_irn_op(n) == op_arm_Bcc;
245 }
246 
250 ir_node *new_bd_arm_Bcc(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation);
251 
252 extern ir_op *op_arm_Bic;
253 
254 static inline bool is_arm_Bic(ir_node const *const n)
255 {
256  return get_irn_op(n) == op_arm_Bic;
257 }
258 
262 ir_node *new_bd_arm_Bic_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
266 ir_node *new_bd_arm_Bic_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
270 ir_node *new_bd_arm_Bic_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
274 ir_node *new_bd_arm_Bic_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
275 
276 extern ir_op *op_arm_Bl;
277 
278 static inline bool is_arm_Bl(ir_node const *const n)
279 {
280  return get_irn_op(n) == op_arm_Bl;
281 }
282 
286 ir_node *new_bd_arm_Bl(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_entity *entity, int offset);
287 
288 extern ir_op *op_arm_Clz;
289 
290 static inline bool is_arm_Clz(ir_node const *const n)
291 {
292  return get_irn_op(n) == op_arm_Clz;
293 }
294 
298 ir_node *new_bd_arm_Clz(dbg_info *dbgi, ir_node *block, ir_node *op0);
299 
300 extern ir_op *op_arm_Cmfe;
301 
302 static inline bool is_arm_Cmfe(ir_node const *const n)
303 {
304  return get_irn_op(n) == op_arm_Cmfe;
305 }
306 
310 ir_node *new_bd_arm_Cmfe(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, bool ins_permuted);
311 
312 extern ir_op *op_arm_Cmn;
313 
314 static inline bool is_arm_Cmn(ir_node const *const n)
315 {
316  return get_irn_op(n) == op_arm_Cmn;
317 }
318 
322 ir_node *new_bd_arm_Cmn_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot, bool ins_permuted, bool is_unsigned);
326 ir_node *new_bd_arm_Cmn_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, bool ins_permuted, bool is_unsigned);
330 ir_node *new_bd_arm_Cmn_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate, bool ins_permuted, bool is_unsigned);
334 ir_node *new_bd_arm_Cmn_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier, bool ins_permuted, bool is_unsigned);
335 
336 extern ir_op *op_arm_Cmp;
337 
338 static inline bool is_arm_Cmp(ir_node const *const n)
339 {
340  return get_irn_op(n) == op_arm_Cmp;
341 }
342 
346 ir_node *new_bd_arm_Cmp_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot, bool ins_permuted, bool is_unsigned);
350 ir_node *new_bd_arm_Cmp_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, bool ins_permuted, bool is_unsigned);
354 ir_node *new_bd_arm_Cmp_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate, bool ins_permuted, bool is_unsigned);
358 ir_node *new_bd_arm_Cmp_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier, bool ins_permuted, bool is_unsigned);
359 
360 extern ir_op *op_arm_Dvf;
361 
362 static inline bool is_arm_Dvf(ir_node const *const n)
363 {
364  return get_irn_op(n) == op_arm_Dvf;
365 }
366 
370 ir_node *new_bd_arm_Dvf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *op_mode);
371 
372 extern ir_op *op_arm_Eor;
373 
374 static inline bool is_arm_Eor(ir_node const *const n)
375 {
376  return get_irn_op(n) == op_arm_Eor;
377 }
378 
382 ir_node *new_bd_arm_Eor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
386 ir_node *new_bd_arm_Eor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
390 ir_node *new_bd_arm_Eor_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
394 ir_node *new_bd_arm_Eor_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
395 
396 extern ir_op *op_arm_Flt;
397 
398 static inline bool is_arm_Flt(ir_node const *const n)
399 {
400  return get_irn_op(n) == op_arm_Flt;
401 }
402 
406 ir_node *new_bd_arm_Flt(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *op_mode);
407 
408 extern ir_op *op_arm_FrameAddr;
409 
410 static inline bool is_arm_FrameAddr(ir_node const *const n)
411 {
412  return get_irn_op(n) == op_arm_FrameAddr;
413 }
414 
418 ir_node *new_bd_arm_FrameAddr(dbg_info *dbgi, ir_node *block, ir_node *base, ir_entity *entity, int offset);
419 
420 extern ir_op *op_arm_IJmp;
421 
422 static inline bool is_arm_IJmp(ir_node const *const n)
423 {
424  return get_irn_op(n) == op_arm_IJmp;
425 }
426 
430 ir_node *new_bd_arm_IJmp(dbg_info *dbgi, ir_node *block, ir_node *target);
431 
432 extern ir_op *op_arm_Ldf;
433 
434 static inline bool is_arm_Ldf(ir_node const *const n)
435 {
436  return get_irn_op(n) == op_arm_Ldf;
437 }
438 
442 ir_node *new_bd_arm_Ldf(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity);
443 
444 extern ir_op *op_arm_Ldr;
445 
446 static inline bool is_arm_Ldr(ir_node const *const n)
447 {
448  return get_irn_op(n) == op_arm_Ldr;
449 }
450 
454 ir_node *new_bd_arm_Ldr(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity);
455 
456 extern ir_op *op_arm_LinkLdrPC;
457 
458 static inline bool is_arm_LinkLdrPC(ir_node const *const n)
459 {
460  return get_irn_op(n) == op_arm_LinkLdrPC;
461 }
462 
466 ir_node *new_bd_arm_LinkLdrPC(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_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity);
467 
468 extern ir_op *op_arm_LinkMovPC;
469 
470 static inline bool is_arm_LinkMovPC(ir_node const *const n)
471 {
472  return get_irn_op(n) == op_arm_LinkMovPC;
473 }
474 
478 ir_node *new_bd_arm_LinkMovPC(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, unsigned shiftop_input, arm_shift_modifier_t shift_modifier, unsigned char immediate_value, unsigned char immediate_rot);
479 
480 extern ir_op *op_arm_Mla;
481 
482 static inline bool is_arm_Mla(ir_node const *const n)
483 {
484  return get_irn_op(n) == op_arm_Mla;
485 }
486 
490 ir_node *new_bd_arm_Mla(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *add);
494 ir_node *new_bd_arm_Mla_v5(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *add);
495 
496 extern ir_op *op_arm_Mls;
497 
498 static inline bool is_arm_Mls(ir_node const *const n)
499 {
500  return get_irn_op(n) == op_arm_Mls;
501 }
502 
506 ir_node *new_bd_arm_Mls(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *sub);
507 
508 extern ir_op *op_arm_Mov;
509 
510 static inline bool is_arm_Mov(ir_node const *const n)
511 {
512  return get_irn_op(n) == op_arm_Mov;
513 }
514 
518 ir_node *new_bd_arm_Mov_imm(dbg_info *dbgi, ir_node *block, unsigned char immediate_value, unsigned char immediate_rot);
522 ir_node *new_bd_arm_Mov_reg(dbg_info *dbgi, ir_node *block, ir_node *Rm);
526 ir_node *new_bd_arm_Mov_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *Rm, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
530 ir_node *new_bd_arm_Mov_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *Rm, ir_node *Rs, arm_shift_modifier_t shift_modifier);
531 
532 extern ir_op *op_arm_Muf;
533 
534 static inline bool is_arm_Muf(ir_node const *const n)
535 {
536  return get_irn_op(n) == op_arm_Muf;
537 }
538 
542 ir_node *new_bd_arm_Muf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *op_mode);
543 
544 extern ir_op *op_arm_Mul;
545 
546 static inline bool is_arm_Mul(ir_node const *const n)
547 {
548  return get_irn_op(n) == op_arm_Mul;
549 }
550 
554 ir_node *new_bd_arm_Mul(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1);
558 ir_node *new_bd_arm_Mul_v5(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1);
559 
560 extern ir_op *op_arm_Mvf;
561 
562 static inline bool is_arm_Mvf(ir_node const *const n)
563 {
564  return get_irn_op(n) == op_arm_Mvf;
565 }
566 
570 ir_node *new_bd_arm_Mvf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *op_mode);
571 
572 extern ir_op *op_arm_Mvn;
573 
574 static inline bool is_arm_Mvn(ir_node const *const n)
575 {
576  return get_irn_op(n) == op_arm_Mvn;
577 }
578 
582 ir_node *new_bd_arm_Mvn_imm(dbg_info *dbgi, ir_node *block, unsigned char immediate_value, unsigned char immediate_rot);
586 ir_node *new_bd_arm_Mvn_reg(dbg_info *dbgi, ir_node *block, ir_node *Rm);
590 ir_node *new_bd_arm_Mvn_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *Rm, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
594 ir_node *new_bd_arm_Mvn_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *Rm, ir_node *Rs, arm_shift_modifier_t shift_modifier);
595 
596 extern ir_op *op_arm_OrPl_t;
597 
598 static inline bool is_arm_OrPl_t(ir_node const *const n)
599 {
600  return get_irn_op(n) == op_arm_OrPl_t;
601 }
602 
606 ir_node *new_bd_arm_OrPl_t(dbg_info *dbgi, ir_node *block, ir_node *falseval, ir_node *flags, ir_node *left, ir_node *right, ir_mode *mode);
607 
608 extern ir_op *op_arm_Orr;
609 
610 static inline bool is_arm_Orr(ir_node const *const n)
611 {
612  return get_irn_op(n) == op_arm_Orr;
613 }
614 
618 ir_node *new_bd_arm_Orr_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
622 ir_node *new_bd_arm_Orr_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
626 ir_node *new_bd_arm_Orr_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
630 ir_node *new_bd_arm_Orr_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
631 
632 extern ir_op *op_arm_OrrPl;
633 
634 static inline bool is_arm_OrrPl(ir_node const *const n)
635 {
636  return get_irn_op(n) == op_arm_OrrPl;
637 }
638 
642 ir_node *new_bd_arm_OrrPl(dbg_info *dbgi, ir_node *block, ir_node *falseval, ir_node *flags, ir_node *left, ir_node *right);
643 
644 extern ir_op *op_arm_Pkhbt;
645 
646 static inline bool is_arm_Pkhbt(ir_node const *const n)
647 {
648  return get_irn_op(n) == op_arm_Pkhbt;
649 }
650 
654 ir_node *new_bd_arm_Pkhbt_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
658 ir_node *new_bd_arm_Pkhbt_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
662 ir_node *new_bd_arm_Pkhbt_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
666 ir_node *new_bd_arm_Pkhbt_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
667 
668 extern ir_op *op_arm_Pkhtb;
669 
670 static inline bool is_arm_Pkhtb(ir_node const *const n)
671 {
672  return get_irn_op(n) == op_arm_Pkhtb;
673 }
674 
678 ir_node *new_bd_arm_Pkhtb_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
682 ir_node *new_bd_arm_Pkhtb_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
686 ir_node *new_bd_arm_Pkhtb_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
690 ir_node *new_bd_arm_Pkhtb_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
691 
692 extern ir_op *op_arm_Return;
693 
694 static inline bool is_arm_Return(ir_node const *const n)
695 {
696  return get_irn_op(n) == op_arm_Return;
697 }
698 
702 ir_node *new_bd_arm_Return(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs);
703 
704 extern ir_op *op_arm_RsC;
705 
706 static inline bool is_arm_RsC(ir_node const *const n)
707 {
708  return get_irn_op(n) == op_arm_RsC;
709 }
710 
714 ir_node *new_bd_arm_RsC_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *flags, unsigned char immediate_value, unsigned char immediate_rot);
718 ir_node *new_bd_arm_RsC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags);
722 ir_node *new_bd_arm_RsC_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
726 ir_node *new_bd_arm_RsC_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, ir_node *flags, arm_shift_modifier_t shift_modifier);
727 
728 extern ir_op *op_arm_Rsb;
729 
730 static inline bool is_arm_Rsb(ir_node const *const n)
731 {
732  return get_irn_op(n) == op_arm_Rsb;
733 }
734 
738 ir_node *new_bd_arm_Rsb_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
742 ir_node *new_bd_arm_Rsb_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
746 ir_node *new_bd_arm_Rsb_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
750 ir_node *new_bd_arm_Rsb_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
751 
752 extern ir_op *op_arm_RsbS;
753 
754 static inline bool is_arm_RsbS(ir_node const *const n)
755 {
756  return get_irn_op(n) == op_arm_RsbS;
757 }
758 
762 ir_node *new_bd_arm_RsbS_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
766 ir_node *new_bd_arm_RsbS_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
770 ir_node *new_bd_arm_RsbS_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
774 ir_node *new_bd_arm_RsbS_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
775 
776 extern ir_op *op_arm_SMulL;
777 
778 static inline bool is_arm_SMulL(ir_node const *const n)
779 {
780  return get_irn_op(n) == op_arm_SMulL;
781 }
782 
786 ir_node *new_bd_arm_SMulL(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1);
787 
788 extern ir_op *op_arm_SMulL_t;
789 
790 static inline bool is_arm_SMulL_t(ir_node const *const n)
791 {
792  return get_irn_op(n) == op_arm_SMulL_t;
793 }
794 
798 ir_node *new_bd_arm_SMulL_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
799 
800 extern ir_op *op_arm_SbC;
801 
802 static inline bool is_arm_SbC(ir_node const *const n)
803 {
804  return get_irn_op(n) == op_arm_SbC;
805 }
806 
810 ir_node *new_bd_arm_SbC_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *flags, unsigned char immediate_value, unsigned char immediate_rot);
814 ir_node *new_bd_arm_SbC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags);
818 ir_node *new_bd_arm_SbC_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
822 ir_node *new_bd_arm_SbC_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, ir_node *flags, arm_shift_modifier_t shift_modifier);
823 
824 extern ir_op *op_arm_SbC_t;
825 
826 static inline bool is_arm_SbC_t(ir_node const *const n)
827 {
828  return get_irn_op(n) == op_arm_SbC_t;
829 }
830 
834 ir_node *new_bd_arm_SbC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags, ir_mode *mode);
835 
836 extern ir_op *op_arm_Stf;
837 
838 static inline bool is_arm_Stf(ir_node const *const n)
839 {
840  return get_irn_op(n) == op_arm_Stf;
841 }
842 
846 ir_node *new_bd_arm_Stf(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *val, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity);
847 
848 extern ir_op *op_arm_Str;
849 
850 static inline bool is_arm_Str(ir_node const *const n)
851 {
852  return get_irn_op(n) == op_arm_Str;
853 }
854 
858 ir_node *new_bd_arm_Str(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *val, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity);
859 
860 extern ir_op *op_arm_Sub;
861 
862 static inline bool is_arm_Sub(ir_node const *const n)
863 {
864  return get_irn_op(n) == op_arm_Sub;
865 }
866 
870 ir_node *new_bd_arm_Sub_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
874 ir_node *new_bd_arm_Sub_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
878 ir_node *new_bd_arm_Sub_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
882 ir_node *new_bd_arm_Sub_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
883 
884 extern ir_op *op_arm_SubS;
885 
886 static inline bool is_arm_SubS(ir_node const *const n)
887 {
888  return get_irn_op(n) == op_arm_SubS;
889 }
890 
894 ir_node *new_bd_arm_SubS_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
898 ir_node *new_bd_arm_SubS_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
902 ir_node *new_bd_arm_SubS_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
906 ir_node *new_bd_arm_SubS_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
907 
908 extern ir_op *op_arm_SubS_t;
909 
910 static inline bool is_arm_SubS_t(ir_node const *const n)
911 {
912  return get_irn_op(n) == op_arm_SubS_t;
913 }
914 
918 ir_node *new_bd_arm_SubS_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
919 
920 extern ir_op *op_arm_Suf;
921 
922 static inline bool is_arm_Suf(ir_node const *const n)
923 {
924  return get_irn_op(n) == op_arm_Suf;
925 }
926 
930 ir_node *new_bd_arm_Suf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *op_mode);
931 
932 extern ir_op *op_arm_SwitchJmp;
933 
934 static inline bool is_arm_SwitchJmp(ir_node const *const n)
935 {
936  return get_irn_op(n) == op_arm_SwitchJmp;
937 }
938 
942 ir_node *new_bd_arm_SwitchJmp(dbg_info *dbgi, ir_node *block, ir_node *op0, int n_res, const ir_switch_table *table);
943 
944 extern ir_op *op_arm_Tst;
945 
946 static inline bool is_arm_Tst(ir_node const *const n)
947 {
948  return get_irn_op(n) == op_arm_Tst;
949 }
950 
954 ir_node *new_bd_arm_Tst_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot, bool ins_permuted, bool is_unsigned);
958 ir_node *new_bd_arm_Tst_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, bool ins_permuted, bool is_unsigned);
962 ir_node *new_bd_arm_Tst_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate, bool ins_permuted, bool is_unsigned);
966 ir_node *new_bd_arm_Tst_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier, bool ins_permuted, bool is_unsigned);
967 
968 extern ir_op *op_arm_UMulL;
969 
970 static inline bool is_arm_UMulL(ir_node const *const n)
971 {
972  return get_irn_op(n) == op_arm_UMulL;
973 }
974 
978 ir_node *new_bd_arm_UMulL(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1);
979 
980 extern ir_op *op_arm_UMulL_t;
981 
982 static inline bool is_arm_UMulL_t(ir_node const *const n)
983 {
984  return get_irn_op(n) == op_arm_UMulL_t;
985 }
986 
990 ir_node *new_bd_arm_UMulL_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
991 
992 extern ir_op *op_arm_fConst;
993 
994 static inline bool is_arm_fConst(ir_node const *const n)
995 {
996  return get_irn_op(n) == op_arm_fConst;
997 }
998 
1002 ir_node *new_bd_arm_fConst(dbg_info *dbgi, ir_node *block, ir_tarval *tv);
1003 
1004 
1005 typedef enum n_arm_AdC_t {
1006  n_arm_AdC_t_left = 0,
1007  n_arm_AdC_t_right = 1,
1008  n_arm_AdC_t_flags = 2,
1009 } n_arm_AdC_t;
1010 
1011 typedef enum pn_arm_AddS {
1012  pn_arm_AddS_res = 0,
1013  pn_arm_AddS_flags = 1,
1014 } pn_arm_AddS;
1015 
1016 typedef enum pn_arm_AddS_t {
1017  pn_arm_AddS_t_res = 0,
1018  pn_arm_AddS_t_flags = 1,
1019 } pn_arm_AddS_t;
1020 
1021 typedef enum n_arm_AddS_t {
1022  n_arm_AddS_t_left = 0,
1023  n_arm_AddS_t_right = 1,
1024 } n_arm_AddS_t;
1025 
1026 typedef enum n_arm_Bcc {
1027  n_arm_Bcc_flags = 0,
1028 } n_arm_Bcc;
1029 
1030 typedef enum pn_arm_Bl {
1031  pn_arm_Bl_M = 0,
1032  pn_arm_Bl_stack = 1,
1033  pn_arm_Bl_first_result = 2,
1034 } pn_arm_Bl;
1035 
1036 typedef enum pn_arm_Dvf {
1037  pn_arm_Dvf_res = 0,
1038  pn_arm_Dvf_M = 1,
1039 } pn_arm_Dvf;
1040 
1041 typedef enum n_arm_FrameAddr {
1042  n_arm_FrameAddr_base = 0,
1043 } n_arm_FrameAddr;
1044 
1045 typedef enum pn_arm_IJmp {
1046  pn_arm_IJmp_jmp = 0,
1047 } pn_arm_IJmp;
1048 
1049 typedef enum n_arm_IJmp {
1050  n_arm_IJmp_target = 0,
1051 } n_arm_IJmp;
1052 
1053 typedef enum pn_arm_Ldf {
1054  pn_arm_Ldf_res = 0,
1055  pn_arm_Ldf_M = 1,
1056 } pn_arm_Ldf;
1057 
1058 typedef enum n_arm_Ldf {
1059  n_arm_Ldf_ptr = 0,
1060  n_arm_Ldf_mem = 1,
1061 } n_arm_Ldf;
1062 
1063 typedef enum pn_arm_Ldr {
1064  pn_arm_Ldr_res = 0,
1065  pn_arm_Ldr_M = 1,
1066 } pn_arm_Ldr;
1067 
1068 typedef enum n_arm_Ldr {
1069  n_arm_Ldr_ptr = 0,
1070  n_arm_Ldr_mem = 1,
1071 } n_arm_Ldr;
1072 
1073 typedef enum n_arm_Mla {
1074  n_arm_Mla_left = 0,
1075  n_arm_Mla_right = 1,
1076  n_arm_Mla_add = 2,
1077 } n_arm_Mla;
1078 
1079 typedef enum n_arm_Mls {
1080  n_arm_Mls_left = 0,
1081  n_arm_Mls_right = 1,
1082  n_arm_Mls_sub = 2,
1083 } n_arm_Mls;
1084 
1085 typedef enum n_arm_Mov {
1086  n_arm_Mov_Rm = 0,
1087  n_arm_Mov_Rs = 1,
1088 } n_arm_Mov;
1089 
1090 typedef enum n_arm_OrPl_t {
1091  n_arm_OrPl_t_falseval = 0,
1092  n_arm_OrPl_t_flags = 1,
1093  n_arm_OrPl_t_left = 2,
1094  n_arm_OrPl_t_right = 3,
1095 } n_arm_OrPl_t;
1096 
1097 typedef enum n_arm_OrrPl {
1098  n_arm_OrrPl_falseval = 0,
1099  n_arm_OrrPl_flags = 1,
1100  n_arm_OrrPl_left = 2,
1101  n_arm_OrrPl_right = 3,
1102 } n_arm_OrrPl;
1103 
1104 typedef enum n_arm_Return {
1105  n_arm_Return_mem = 0,
1106  n_arm_Return_sp = 1,
1107  n_arm_Return_first_result = 2,
1108 } n_arm_Return;
1109 
1110 typedef enum pn_arm_RsbS {
1111  pn_arm_RsbS_res = 0,
1112  pn_arm_RsbS_flags = 1,
1113 } pn_arm_RsbS;
1114 
1115 typedef enum pn_arm_SMulL {
1116  pn_arm_SMulL_low = 0,
1117  pn_arm_SMulL_high = 1,
1118 } pn_arm_SMulL;
1119 
1120 typedef enum pn_arm_SMulL_t {
1121  pn_arm_SMulL_t_low = 0,
1122  pn_arm_SMulL_t_high = 1,
1123 } pn_arm_SMulL_t;
1124 
1125 typedef enum n_arm_SMulL_t {
1126  n_arm_SMulL_t_left = 0,
1127  n_arm_SMulL_t_right = 1,
1128 } n_arm_SMulL_t;
1129 
1130 typedef enum n_arm_SbC_t {
1131  n_arm_SbC_t_left = 0,
1132  n_arm_SbC_t_right = 1,
1133  n_arm_SbC_t_flags = 2,
1134 } n_arm_SbC_t;
1135 
1136 typedef enum pn_arm_Stf {
1137  pn_arm_Stf_M = 0,
1138 } pn_arm_Stf;
1139 
1140 typedef enum n_arm_Stf {
1141  n_arm_Stf_ptr = 0,
1142  n_arm_Stf_val = 1,
1143  n_arm_Stf_mem = 2,
1144 } n_arm_Stf;
1145 
1146 typedef enum pn_arm_Str {
1147  pn_arm_Str_M = 0,
1148 } pn_arm_Str;
1149 
1150 typedef enum n_arm_Str {
1151  n_arm_Str_ptr = 0,
1152  n_arm_Str_val = 1,
1153  n_arm_Str_mem = 2,
1154 } n_arm_Str;
1155 
1156 typedef enum pn_arm_SubS {
1157  pn_arm_SubS_res = 0,
1158  pn_arm_SubS_flags = 1,
1159 } pn_arm_SubS;
1160 
1161 typedef enum pn_arm_SubS_t {
1162  pn_arm_SubS_t_res = 0,
1163  pn_arm_SubS_t_flags = 1,
1164 } pn_arm_SubS_t;
1165 
1166 typedef enum n_arm_SubS_t {
1167  n_arm_SubS_t_left = 0,
1168  n_arm_SubS_t_right = 1,
1169 } n_arm_SubS_t;
1170 
1171 typedef enum pn_arm_UMulL {
1172  pn_arm_UMulL_low = 0,
1173  pn_arm_UMulL_high = 1,
1174 } pn_arm_UMulL;
1175 
1176 typedef enum pn_arm_UMulL_t {
1177  pn_arm_UMulL_t_low = 0,
1178  pn_arm_UMulL_t_high = 1,
1179 } pn_arm_UMulL_t;
1180 
1181 typedef enum n_arm_UMulL_t {
1182  n_arm_UMulL_t_left = 0,
1183  n_arm_UMulL_t_right = 1,
1184 } n_arm_UMulL_t;
1185 
1186 
1187 #endif
struct ir_op ir_op
Node Opcode.
Definition: firm_types.h:56
struct dbg_info dbg_info
Source Reference.
Definition: firm_types.h:40
struct ir_tarval ir_tarval
Target Machine Value.
Definition: firm_types.h:68
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