libFirm
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
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 
15 typedef enum arm_opcodes {
16  iro_arm_AdC,
17  iro_arm_AdC_t,
18  iro_arm_Add,
19  iro_arm_AddS,
20  iro_arm_AddS_t,
21  iro_arm_Address,
22  iro_arm_Adf,
23  iro_arm_And,
24  iro_arm_B,
25  iro_arm_Bic,
26  iro_arm_Bl,
27  iro_arm_Clz,
28  iro_arm_Cmfe,
29  iro_arm_Cmn,
30  iro_arm_Cmp,
31  iro_arm_Dvf,
32  iro_arm_Eor,
33  iro_arm_FltX,
34  iro_arm_FrameAddr,
35  iro_arm_Jmp,
36  iro_arm_Ldf,
37  iro_arm_Ldr,
38  iro_arm_LinkLdrPC,
39  iro_arm_LinkMovPC,
40  iro_arm_Mla,
41  iro_arm_Mls,
42  iro_arm_Mov,
43  iro_arm_Muf,
44  iro_arm_Mul,
45  iro_arm_Mvf,
46  iro_arm_Mvn,
47  iro_arm_Or,
48  iro_arm_OrPl,
49  iro_arm_OrPl_t,
50  iro_arm_Pkhbt,
51  iro_arm_Pkhtb,
52  iro_arm_Return,
53  iro_arm_RsC,
54  iro_arm_Rsb,
55  iro_arm_RsbS,
56  iro_arm_SMulL,
57  iro_arm_SMulL_t,
58  iro_arm_SbC,
59  iro_arm_SbC_t,
60  iro_arm_Stf,
61  iro_arm_Str,
62  iro_arm_Sub,
63  iro_arm_SubS,
64  iro_arm_SubS_t,
65  iro_arm_Suf,
66  iro_arm_SwitchJmp,
67  iro_arm_Tst,
68  iro_arm_UMulL,
69  iro_arm_UMulL_t,
70  iro_arm_fConst,
71  iro_arm_last
72 } arm_opcodes;
73 
74 
75 int is_arm_irn(const ir_node *node);
76 int is_arm_op(const ir_op *op);
77 
78 int get_arm_irn_opcode(const ir_node *node);
79 void arm_create_opcodes(void);
80 void arm_free_opcodes(void);
81 
82 extern ir_op *op_arm_AdC;
83 
84 static inline bool is_arm_AdC(ir_node const *const n)
85 {
86  return get_irn_op(n) == op_arm_AdC;
87 }
88 
92 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);
96 ir_node *new_bd_arm_AdC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags);
100 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);
104 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);
105 
106 extern ir_op *op_arm_AdC_t;
107 
108 static inline bool is_arm_AdC_t(ir_node const *const n)
109 {
110  return get_irn_op(n) == op_arm_AdC_t;
111 }
112 
116 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);
117 
118 extern ir_op *op_arm_Add;
119 
120 static inline bool is_arm_Add(ir_node const *const n)
121 {
122  return get_irn_op(n) == op_arm_Add;
123 }
124 
128 ir_node *new_bd_arm_Add_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
132 ir_node *new_bd_arm_Add_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
136 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);
140 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);
141 
142 extern ir_op *op_arm_AddS;
143 
144 static inline bool is_arm_AddS(ir_node const *const n)
145 {
146  return get_irn_op(n) == op_arm_AddS;
147 }
148 
152 ir_node *new_bd_arm_AddS_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
156 ir_node *new_bd_arm_AddS_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
160 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);
164 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);
165 
166 extern ir_op *op_arm_AddS_t;
167 
168 static inline bool is_arm_AddS_t(ir_node const *const n)
169 {
170  return get_irn_op(n) == op_arm_AddS_t;
171 }
172 
176 ir_node *new_bd_arm_AddS_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
177 
178 extern ir_op *op_arm_Address;
179 
180 static inline bool is_arm_Address(ir_node const *const n)
181 {
182  return get_irn_op(n) == op_arm_Address;
183 }
184 
188 ir_node *new_bd_arm_Address(dbg_info *dbgi, ir_node *block, ir_entity *entity, int offset);
189 
190 extern ir_op *op_arm_Adf;
191 
192 static inline bool is_arm_Adf(ir_node const *const n)
193 {
194  return get_irn_op(n) == op_arm_Adf;
195 }
196 
200 ir_node *new_bd_arm_Adf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *op_mode);
201 
202 extern ir_op *op_arm_And;
203 
204 static inline bool is_arm_And(ir_node const *const n)
205 {
206  return get_irn_op(n) == op_arm_And;
207 }
208 
212 ir_node *new_bd_arm_And_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
216 ir_node *new_bd_arm_And_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
220 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);
224 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);
225 
226 extern ir_op *op_arm_B;
227 
228 static inline bool is_arm_B(ir_node const *const n)
229 {
230  return get_irn_op(n) == op_arm_B;
231 }
232 
236 ir_node *new_bd_arm_B(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation);
237 
238 extern ir_op *op_arm_Bic;
239 
240 static inline bool is_arm_Bic(ir_node const *const n)
241 {
242  return get_irn_op(n) == op_arm_Bic;
243 }
244 
248 ir_node *new_bd_arm_Bic_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
252 ir_node *new_bd_arm_Bic_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
256 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);
260 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);
261 
262 extern ir_op *op_arm_Bl;
263 
264 static inline bool is_arm_Bl(ir_node const *const n)
265 {
266  return get_irn_op(n) == op_arm_Bl;
267 }
268 
272 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);
273 
274 extern ir_op *op_arm_Clz;
275 
276 static inline bool is_arm_Clz(ir_node const *const n)
277 {
278  return get_irn_op(n) == op_arm_Clz;
279 }
280 
284 ir_node *new_bd_arm_Clz(dbg_info *dbgi, ir_node *block, ir_node *op0);
285 
286 extern ir_op *op_arm_Cmfe;
287 
288 static inline bool is_arm_Cmfe(ir_node const *const n)
289 {
290  return get_irn_op(n) == op_arm_Cmfe;
291 }
292 
296 ir_node *new_bd_arm_Cmfe(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, bool ins_permuted);
297 
298 extern ir_op *op_arm_Cmn;
299 
300 static inline bool is_arm_Cmn(ir_node const *const n)
301 {
302  return get_irn_op(n) == op_arm_Cmn;
303 }
304 
308 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);
312 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);
316 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);
320 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);
321 
322 extern ir_op *op_arm_Cmp;
323 
324 static inline bool is_arm_Cmp(ir_node const *const n)
325 {
326  return get_irn_op(n) == op_arm_Cmp;
327 }
328 
332 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);
336 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);
340 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);
344 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);
345 
346 extern ir_op *op_arm_Dvf;
347 
348 static inline bool is_arm_Dvf(ir_node const *const n)
349 {
350  return get_irn_op(n) == op_arm_Dvf;
351 }
352 
356 ir_node *new_bd_arm_Dvf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *op_mode);
357 
358 extern ir_op *op_arm_Eor;
359 
360 static inline bool is_arm_Eor(ir_node const *const n)
361 {
362  return get_irn_op(n) == op_arm_Eor;
363 }
364 
368 ir_node *new_bd_arm_Eor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
372 ir_node *new_bd_arm_Eor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
376 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);
380 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);
381 
382 extern ir_op *op_arm_FltX;
383 
384 static inline bool is_arm_FltX(ir_node const *const n)
385 {
386  return get_irn_op(n) == op_arm_FltX;
387 }
388 
392 ir_node *new_bd_arm_FltX(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *op_mode);
393 
394 extern ir_op *op_arm_FrameAddr;
395 
396 static inline bool is_arm_FrameAddr(ir_node const *const n)
397 {
398  return get_irn_op(n) == op_arm_FrameAddr;
399 }
400 
404 ir_node *new_bd_arm_FrameAddr(dbg_info *dbgi, ir_node *block, ir_node *base, ir_entity *entity, int offset);
405 
406 extern ir_op *op_arm_Jmp;
407 
408 static inline bool is_arm_Jmp(ir_node const *const n)
409 {
410  return get_irn_op(n) == op_arm_Jmp;
411 }
412 
416 ir_node *new_bd_arm_Jmp(dbg_info *dbgi, ir_node *block);
417 
418 extern ir_op *op_arm_Ldf;
419 
420 static inline bool is_arm_Ldf(ir_node const *const n)
421 {
422  return get_irn_op(n) == op_arm_Ldf;
423 }
424 
428 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);
429 
430 extern ir_op *op_arm_Ldr;
431 
432 static inline bool is_arm_Ldr(ir_node const *const n)
433 {
434  return get_irn_op(n) == op_arm_Ldr;
435 }
436 
440 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);
441 
442 extern ir_op *op_arm_LinkLdrPC;
443 
444 static inline bool is_arm_LinkLdrPC(ir_node const *const n)
445 {
446  return get_irn_op(n) == op_arm_LinkLdrPC;
447 }
448 
452 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);
453 
454 extern ir_op *op_arm_LinkMovPC;
455 
456 static inline bool is_arm_LinkMovPC(ir_node const *const n)
457 {
458  return get_irn_op(n) == op_arm_LinkMovPC;
459 }
460 
464 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);
465 
466 extern ir_op *op_arm_Mla;
467 
468 static inline bool is_arm_Mla(ir_node const *const n)
469 {
470  return get_irn_op(n) == op_arm_Mla;
471 }
472 
476 ir_node *new_bd_arm_Mla(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *add);
480 ir_node *new_bd_arm_Mla_v5(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *add);
481 
482 extern ir_op *op_arm_Mls;
483 
484 static inline bool is_arm_Mls(ir_node const *const n)
485 {
486  return get_irn_op(n) == op_arm_Mls;
487 }
488 
492 ir_node *new_bd_arm_Mls(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *sub);
493 
494 extern ir_op *op_arm_Mov;
495 
496 static inline bool is_arm_Mov(ir_node const *const n)
497 {
498  return get_irn_op(n) == op_arm_Mov;
499 }
500 
504 ir_node *new_bd_arm_Mov_imm(dbg_info *dbgi, ir_node *block, unsigned char immediate_value, unsigned char immediate_rot);
508 ir_node *new_bd_arm_Mov_reg(dbg_info *dbgi, ir_node *block, ir_node *Rm);
512 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);
516 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);
517 
518 extern ir_op *op_arm_Muf;
519 
520 static inline bool is_arm_Muf(ir_node const *const n)
521 {
522  return get_irn_op(n) == op_arm_Muf;
523 }
524 
528 ir_node *new_bd_arm_Muf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *op_mode);
529 
530 extern ir_op *op_arm_Mul;
531 
532 static inline bool is_arm_Mul(ir_node const *const n)
533 {
534  return get_irn_op(n) == op_arm_Mul;
535 }
536 
540 ir_node *new_bd_arm_Mul(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1);
544 ir_node *new_bd_arm_Mul_v5(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1);
545 
546 extern ir_op *op_arm_Mvf;
547 
548 static inline bool is_arm_Mvf(ir_node const *const n)
549 {
550  return get_irn_op(n) == op_arm_Mvf;
551 }
552 
556 ir_node *new_bd_arm_Mvf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *op_mode);
557 
558 extern ir_op *op_arm_Mvn;
559 
560 static inline bool is_arm_Mvn(ir_node const *const n)
561 {
562  return get_irn_op(n) == op_arm_Mvn;
563 }
564 
568 ir_node *new_bd_arm_Mvn_imm(dbg_info *dbgi, ir_node *block, unsigned char immediate_value, unsigned char immediate_rot);
572 ir_node *new_bd_arm_Mvn_reg(dbg_info *dbgi, ir_node *block, ir_node *Rm);
576 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);
580 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);
581 
582 extern ir_op *op_arm_Or;
583 
584 static inline bool is_arm_Or(ir_node const *const n)
585 {
586  return get_irn_op(n) == op_arm_Or;
587 }
588 
592 ir_node *new_bd_arm_Or_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
596 ir_node *new_bd_arm_Or_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
600 ir_node *new_bd_arm_Or_reg_shift_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, arm_shift_modifier_t shift_modifier, unsigned shift_immediate);
604 ir_node *new_bd_arm_Or_reg_shift_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *shift, arm_shift_modifier_t shift_modifier);
605 
606 extern ir_op *op_arm_OrPl;
607 
608 static inline bool is_arm_OrPl(ir_node const *const n)
609 {
610  return get_irn_op(n) == op_arm_OrPl;
611 }
612 
616 ir_node *new_bd_arm_OrPl(dbg_info *dbgi, ir_node *block, ir_node *falseval, ir_node *flags, ir_node *left, ir_node *right);
617 
618 extern ir_op *op_arm_OrPl_t;
619 
620 static inline bool is_arm_OrPl_t(ir_node const *const n)
621 {
622  return get_irn_op(n) == op_arm_OrPl_t;
623 }
624 
628 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);
629 
630 extern ir_op *op_arm_Pkhbt;
631 
632 static inline bool is_arm_Pkhbt(ir_node const *const n)
633 {
634  return get_irn_op(n) == op_arm_Pkhbt;
635 }
636 
640 ir_node *new_bd_arm_Pkhbt_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
644 ir_node *new_bd_arm_Pkhbt_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
648 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);
652 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);
653 
654 extern ir_op *op_arm_Pkhtb;
655 
656 static inline bool is_arm_Pkhtb(ir_node const *const n)
657 {
658  return get_irn_op(n) == op_arm_Pkhtb;
659 }
660 
664 ir_node *new_bd_arm_Pkhtb_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
668 ir_node *new_bd_arm_Pkhtb_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
672 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);
676 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);
677 
678 extern ir_op *op_arm_Return;
679 
680 static inline bool is_arm_Return(ir_node const *const n)
681 {
682  return get_irn_op(n) == op_arm_Return;
683 }
684 
688 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);
689 
690 extern ir_op *op_arm_RsC;
691 
692 static inline bool is_arm_RsC(ir_node const *const n)
693 {
694  return get_irn_op(n) == op_arm_RsC;
695 }
696 
700 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);
704 ir_node *new_bd_arm_RsC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags);
708 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);
712 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);
713 
714 extern ir_op *op_arm_Rsb;
715 
716 static inline bool is_arm_Rsb(ir_node const *const n)
717 {
718  return get_irn_op(n) == op_arm_Rsb;
719 }
720 
724 ir_node *new_bd_arm_Rsb_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
728 ir_node *new_bd_arm_Rsb_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
732 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);
736 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);
737 
738 extern ir_op *op_arm_RsbS;
739 
740 static inline bool is_arm_RsbS(ir_node const *const n)
741 {
742  return get_irn_op(n) == op_arm_RsbS;
743 }
744 
748 ir_node *new_bd_arm_RsbS_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
752 ir_node *new_bd_arm_RsbS_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
756 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);
760 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);
761 
762 extern ir_op *op_arm_SMulL;
763 
764 static inline bool is_arm_SMulL(ir_node const *const n)
765 {
766  return get_irn_op(n) == op_arm_SMulL;
767 }
768 
772 ir_node *new_bd_arm_SMulL(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1);
773 
774 extern ir_op *op_arm_SMulL_t;
775 
776 static inline bool is_arm_SMulL_t(ir_node const *const n)
777 {
778  return get_irn_op(n) == op_arm_SMulL_t;
779 }
780 
784 ir_node *new_bd_arm_SMulL_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
785 
786 extern ir_op *op_arm_SbC;
787 
788 static inline bool is_arm_SbC(ir_node const *const n)
789 {
790  return get_irn_op(n) == op_arm_SbC;
791 }
792 
796 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);
800 ir_node *new_bd_arm_SbC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags);
804 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);
808 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);
809 
810 extern ir_op *op_arm_SbC_t;
811 
812 static inline bool is_arm_SbC_t(ir_node const *const n)
813 {
814  return get_irn_op(n) == op_arm_SbC_t;
815 }
816 
820 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);
821 
822 extern ir_op *op_arm_Stf;
823 
824 static inline bool is_arm_Stf(ir_node const *const n)
825 {
826  return get_irn_op(n) == op_arm_Stf;
827 }
828 
832 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);
833 
834 extern ir_op *op_arm_Str;
835 
836 static inline bool is_arm_Str(ir_node const *const n)
837 {
838  return get_irn_op(n) == op_arm_Str;
839 }
840 
844 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);
845 
846 extern ir_op *op_arm_Sub;
847 
848 static inline bool is_arm_Sub(ir_node const *const n)
849 {
850  return get_irn_op(n) == op_arm_Sub;
851 }
852 
856 ir_node *new_bd_arm_Sub_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
860 ir_node *new_bd_arm_Sub_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
864 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);
868 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);
869 
870 extern ir_op *op_arm_SubS;
871 
872 static inline bool is_arm_SubS(ir_node const *const n)
873 {
874  return get_irn_op(n) == op_arm_SubS;
875 }
876 
880 ir_node *new_bd_arm_SubS_imm(dbg_info *dbgi, ir_node *block, ir_node *left, unsigned char immediate_value, unsigned char immediate_rot);
884 ir_node *new_bd_arm_SubS_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
888 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);
892 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);
893 
894 extern ir_op *op_arm_SubS_t;
895 
896 static inline bool is_arm_SubS_t(ir_node const *const n)
897 {
898  return get_irn_op(n) == op_arm_SubS_t;
899 }
900 
904 ir_node *new_bd_arm_SubS_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
905 
906 extern ir_op *op_arm_Suf;
907 
908 static inline bool is_arm_Suf(ir_node const *const n)
909 {
910  return get_irn_op(n) == op_arm_Suf;
911 }
912 
916 ir_node *new_bd_arm_Suf(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *op_mode);
917 
918 extern ir_op *op_arm_SwitchJmp;
919 
920 static inline bool is_arm_SwitchJmp(ir_node const *const n)
921 {
922  return get_irn_op(n) == op_arm_SwitchJmp;
923 }
924 
928 ir_node *new_bd_arm_SwitchJmp(dbg_info *dbgi, ir_node *block, ir_node *op0, int n_res, const ir_switch_table *table);
929 
930 extern ir_op *op_arm_Tst;
931 
932 static inline bool is_arm_Tst(ir_node const *const n)
933 {
934  return get_irn_op(n) == op_arm_Tst;
935 }
936 
940 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);
944 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);
948 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);
952 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);
953 
954 extern ir_op *op_arm_UMulL;
955 
956 static inline bool is_arm_UMulL(ir_node const *const n)
957 {
958  return get_irn_op(n) == op_arm_UMulL;
959 }
960 
964 ir_node *new_bd_arm_UMulL(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1);
965 
966 extern ir_op *op_arm_UMulL_t;
967 
968 static inline bool is_arm_UMulL_t(ir_node const *const n)
969 {
970  return get_irn_op(n) == op_arm_UMulL_t;
971 }
972 
976 ir_node *new_bd_arm_UMulL_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
977 
978 extern ir_op *op_arm_fConst;
979 
980 static inline bool is_arm_fConst(ir_node const *const n)
981 {
982  return get_irn_op(n) == op_arm_fConst;
983 }
984 
988 ir_node *new_bd_arm_fConst(dbg_info *dbgi, ir_node *block, ir_tarval *tv);
989 
990 
991 typedef enum n_arm_AdC_t {
992  n_arm_AdC_t_left = 0,
993  n_arm_AdC_t_right = 1,
994  n_arm_AdC_t_flags = 2,
995 } n_arm_AdC_t;
996 
997 typedef enum pn_arm_AddS {
998  pn_arm_AddS_res = 0,
999  pn_arm_AddS_flags = 1,
1000 } pn_arm_AddS;
1001 
1002 typedef enum pn_arm_AddS_t {
1003  pn_arm_AddS_t_res = 0,
1004  pn_arm_AddS_t_flags = 1,
1005 } pn_arm_AddS_t;
1006 
1007 typedef enum n_arm_AddS_t {
1008  n_arm_AddS_t_left = 0,
1009  n_arm_AddS_t_right = 1,
1010 } n_arm_AddS_t;
1011 
1012 typedef enum n_arm_B {
1013  n_arm_B_flags = 0,
1014 } n_arm_B;
1015 
1016 typedef enum pn_arm_Bl {
1017  pn_arm_Bl_M = 0,
1018  pn_arm_Bl_stack = 1,
1019  pn_arm_Bl_first_result = 2,
1020 } pn_arm_Bl;
1021 
1022 typedef enum pn_arm_Dvf {
1023  pn_arm_Dvf_res = 0,
1024  pn_arm_Dvf_M = 1,
1025 } pn_arm_Dvf;
1026 
1027 typedef enum n_arm_FrameAddr {
1028  n_arm_FrameAddr_base = 0,
1029 } n_arm_FrameAddr;
1030 
1031 typedef enum pn_arm_Ldf {
1032  pn_arm_Ldf_res = 0,
1033  pn_arm_Ldf_M = 1,
1034 } pn_arm_Ldf;
1035 
1036 typedef enum n_arm_Ldf {
1037  n_arm_Ldf_ptr = 0,
1038  n_arm_Ldf_mem = 1,
1039 } n_arm_Ldf;
1040 
1041 typedef enum pn_arm_Ldr {
1042  pn_arm_Ldr_res = 0,
1043  pn_arm_Ldr_M = 1,
1044 } pn_arm_Ldr;
1045 
1046 typedef enum n_arm_Ldr {
1047  n_arm_Ldr_ptr = 0,
1048  n_arm_Ldr_mem = 1,
1049 } n_arm_Ldr;
1050 
1051 typedef enum n_arm_Mla {
1052  n_arm_Mla_left = 0,
1053  n_arm_Mla_right = 1,
1054  n_arm_Mla_add = 2,
1055 } n_arm_Mla;
1056 
1057 typedef enum n_arm_Mls {
1058  n_arm_Mls_left = 0,
1059  n_arm_Mls_right = 1,
1060  n_arm_Mls_sub = 2,
1061 } n_arm_Mls;
1062 
1063 typedef enum n_arm_Mov {
1064  n_arm_Mov_Rm = 0,
1065  n_arm_Mov_Rs = 1,
1066 } n_arm_Mov;
1067 
1068 typedef enum n_arm_OrPl {
1069  n_arm_OrPl_falseval = 0,
1070  n_arm_OrPl_flags = 1,
1071  n_arm_OrPl_left = 2,
1072  n_arm_OrPl_right = 3,
1073 } n_arm_OrPl;
1074 
1075 typedef enum n_arm_OrPl_t {
1076  n_arm_OrPl_t_falseval = 0,
1077  n_arm_OrPl_t_flags = 1,
1078  n_arm_OrPl_t_left = 2,
1079  n_arm_OrPl_t_right = 3,
1080 } n_arm_OrPl_t;
1081 
1082 typedef enum n_arm_Return {
1083  n_arm_Return_mem = 0,
1084  n_arm_Return_sp = 1,
1085  n_arm_Return_first_result = 2,
1086 } n_arm_Return;
1087 
1088 typedef enum pn_arm_RsbS {
1089  pn_arm_RsbS_res = 0,
1090  pn_arm_RsbS_flags = 1,
1091 } pn_arm_RsbS;
1092 
1093 typedef enum pn_arm_SMulL {
1094  pn_arm_SMulL_low = 0,
1095  pn_arm_SMulL_high = 1,
1096 } pn_arm_SMulL;
1097 
1098 typedef enum pn_arm_SMulL_t {
1099  pn_arm_SMulL_t_low = 0,
1100  pn_arm_SMulL_t_high = 1,
1101 } pn_arm_SMulL_t;
1102 
1103 typedef enum n_arm_SMulL_t {
1104  n_arm_SMulL_t_left = 0,
1105  n_arm_SMulL_t_right = 1,
1106 } n_arm_SMulL_t;
1107 
1108 typedef enum n_arm_SbC_t {
1109  n_arm_SbC_t_left = 0,
1110  n_arm_SbC_t_right = 1,
1111  n_arm_SbC_t_flags = 2,
1112 } n_arm_SbC_t;
1113 
1114 typedef enum pn_arm_Stf {
1115  pn_arm_Stf_M = 0,
1116 } pn_arm_Stf;
1117 
1118 typedef enum n_arm_Stf {
1119  n_arm_Stf_ptr = 0,
1120  n_arm_Stf_val = 1,
1121  n_arm_Stf_mem = 2,
1122 } n_arm_Stf;
1123 
1124 typedef enum pn_arm_Str {
1125  pn_arm_Str_M = 0,
1126 } pn_arm_Str;
1127 
1128 typedef enum n_arm_Str {
1129  n_arm_Str_ptr = 0,
1130  n_arm_Str_val = 1,
1131  n_arm_Str_mem = 2,
1132 } n_arm_Str;
1133 
1134 typedef enum pn_arm_SubS {
1135  pn_arm_SubS_res = 0,
1136  pn_arm_SubS_flags = 1,
1137 } pn_arm_SubS;
1138 
1139 typedef enum pn_arm_SubS_t {
1140  pn_arm_SubS_t_res = 0,
1141  pn_arm_SubS_t_flags = 1,
1142 } pn_arm_SubS_t;
1143 
1144 typedef enum n_arm_SubS_t {
1145  n_arm_SubS_t_left = 0,
1146  n_arm_SubS_t_right = 1,
1147 } n_arm_SubS_t;
1148 
1149 typedef enum pn_arm_UMulL {
1150  pn_arm_UMulL_low = 0,
1151  pn_arm_UMulL_high = 1,
1152 } pn_arm_UMulL;
1153 
1154 typedef enum pn_arm_UMulL_t {
1155  pn_arm_UMulL_t_low = 0,
1156  pn_arm_UMulL_t_high = 1,
1157 } pn_arm_UMulL_t;
1158 
1159 typedef enum n_arm_UMulL_t {
1160  n_arm_UMulL_t_left = 0,
1161  n_arm_UMulL_t_right = 1,
1162 } n_arm_UMulL_t;
1163 
1164 
1165 #endif
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
struct ir_tarval ir_tarval
Target Machine Value.
Definition: firm_types.h:68
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