9 #ifndef FIRM_BE_AMD64_GEN_AMD64_NEW_NODES_H
10 #define FIRM_BE_AMD64_GEN_AMD64_NEW_NODES_H
15 typedef enum amd64_opcodes {
55 iro_amd64_l_punpckldq,
62 iro_amd64_movd_gp_xmm,
63 iro_amd64_movd_xmm_gp,
66 iro_amd64_movdqu_store,
69 iro_amd64_movs_store_xmm,
99 int is_amd64_irn(
const ir_node *node);
100 int is_amd64_op(
const ir_op *op);
102 int get_amd64_irn_opcode(
const ir_node *node);
103 void amd64_create_opcodes(
void);
104 void amd64_free_opcodes(
void);
106 extern ir_op *op_amd64_add;
108 static inline bool is_amd64_add(
ir_node const *
const n)
116 ir_node *new_bd_amd64_add(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
118 extern ir_op *op_amd64_adds;
120 static inline bool is_amd64_adds(
ir_node const *
const n)
128 ir_node *new_bd_amd64_adds(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
130 extern ir_op *op_amd64_and;
132 static inline bool is_amd64_and(
ir_node const *
const n)
140 ir_node *new_bd_amd64_and(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
142 extern ir_op *op_amd64_bsf;
144 static inline bool is_amd64_bsf(
ir_node const *
const n)
152 ir_node *new_bd_amd64_bsf(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
154 extern ir_op *op_amd64_bsr;
156 static inline bool is_amd64_bsr(
ir_node const *
const n)
164 ir_node *new_bd_amd64_bsr(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
166 extern ir_op *op_amd64_call;
168 static inline bool is_amd64_call(
ir_node const *
const n)
176 ir_node *new_bd_amd64_call(
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,
const amd64_call_addr_attr_t *attr_init);
178 extern ir_op *op_amd64_cmp;
180 static inline bool is_amd64_cmp(
ir_node const *
const n)
188 ir_node *new_bd_amd64_cmp(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
190 extern ir_op *op_amd64_cmpxchg;
192 static inline bool is_amd64_cmpxchg(
ir_node const *
const n)
200 ir_node *new_bd_amd64_cmpxchg(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
202 extern ir_op *op_amd64_cvtsd2ss;
204 static inline bool is_amd64_cvtsd2ss(
ir_node const *
const n)
212 ir_node *new_bd_amd64_cvtsd2ss(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_op_mode_t op_mode, amd64_addr_t addr);
214 extern ir_op *op_amd64_cvtsi2sd;
216 static inline bool is_amd64_cvtsi2sd(
ir_node const *
const n)
224 ir_node *new_bd_amd64_cvtsi2sd(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
226 extern ir_op *op_amd64_cvtsi2ss;
228 static inline bool is_amd64_cvtsi2ss(
ir_node const *
const n)
236 ir_node *new_bd_amd64_cvtsi2ss(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
238 extern ir_op *op_amd64_cvtss2sd;
240 static inline bool is_amd64_cvtss2sd(
ir_node const *
const n)
248 ir_node *new_bd_amd64_cvtss2sd(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
250 extern ir_op *op_amd64_cvttsd2si;
252 static inline bool is_amd64_cvttsd2si(
ir_node const *
const n)
260 ir_node *new_bd_amd64_cvttsd2si(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
262 extern ir_op *op_amd64_cvttss2si;
264 static inline bool is_amd64_cvttss2si(
ir_node const *
const n)
272 ir_node *new_bd_amd64_cvttss2si(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
274 extern ir_op *op_amd64_div;
276 static inline bool is_amd64_div(
ir_node const *
const n)
284 ir_node *new_bd_amd64_div(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode);
286 extern ir_op *op_amd64_divs;
288 static inline bool is_amd64_divs(
ir_node const *
const n)
296 ir_node *new_bd_amd64_divs(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
298 extern ir_op *op_amd64_fadd;
300 static inline bool is_amd64_fadd(
ir_node const *
const n)
310 extern ir_op *op_amd64_fchs;
312 static inline bool is_amd64_fchs(
ir_node const *
const n)
322 extern ir_op *op_amd64_fdiv;
324 static inline bool is_amd64_fdiv(
ir_node const *
const n)
334 extern ir_op *op_amd64_fdup;
336 static inline bool is_amd64_fdup(
ir_node const *
const n)
346 extern ir_op *op_amd64_fld;
348 static inline bool is_amd64_fld(
ir_node const *
const n)
356 ir_node *new_bd_amd64_fld(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
358 extern ir_op *op_amd64_fld1;
360 static inline bool is_amd64_fld1(
ir_node const *
const n)
370 extern ir_op *op_amd64_fldz;
372 static inline bool is_amd64_fldz(
ir_node const *
const n)
382 extern ir_op *op_amd64_fmul;
384 static inline bool is_amd64_fmul(
ir_node const *
const n)
394 extern ir_op *op_amd64_fpop;
396 static inline bool is_amd64_fpop(
ir_node const *
const n)
406 extern ir_op *op_amd64_fst;
408 static inline bool is_amd64_fst(
ir_node const *
const n)
416 ir_node *new_bd_amd64_fst(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
418 extern ir_op *op_amd64_fstp;
420 static inline bool is_amd64_fstp(
ir_node const *
const n)
428 ir_node *new_bd_amd64_fstp(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
430 extern ir_op *op_amd64_fsub;
432 static inline bool is_amd64_fsub(
ir_node const *
const n)
442 extern ir_op *op_amd64_fucomi;
444 static inline bool is_amd64_fucomi(
ir_node const *
const n)
454 extern ir_op *op_amd64_fxch;
456 static inline bool is_amd64_fxch(
ir_node const *
const n)
466 extern ir_op *op_amd64_haddpd;
468 static inline bool is_amd64_haddpd(
ir_node const *
const n)
476 ir_node *new_bd_amd64_haddpd(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
478 extern ir_op *op_amd64_idiv;
480 static inline bool is_amd64_idiv(
ir_node const *
const n)
488 ir_node *new_bd_amd64_idiv(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode);
490 extern ir_op *op_amd64_ijmp;
492 static inline bool is_amd64_ijmp(
ir_node const *
const n)
500 ir_node *new_bd_amd64_ijmp(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
502 extern ir_op *op_amd64_imul;
504 static inline bool is_amd64_imul(
ir_node const *
const n)
512 ir_node *new_bd_amd64_imul(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
514 extern ir_op *op_amd64_imul_1op;
516 static inline bool is_amd64_imul_1op(
ir_node const *
const n)
524 ir_node *new_bd_amd64_imul_1op(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
526 extern ir_op *op_amd64_jcc;
528 static inline bool is_amd64_jcc(
ir_node const *
const n)
538 extern ir_op *op_amd64_jmp;
540 static inline bool is_amd64_jmp(
ir_node const *
const n)
550 extern ir_op *op_amd64_jmp_switch;
552 static inline bool is_amd64_jmp_switch(
ir_node const *
const n)
560 ir_node *new_bd_amd64_jmp_switch(
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, amd64_op_mode_t op_mode,
const amd64_addr_t *addr,
const ir_switch_table *table,
ir_entity *table_entity);
562 extern ir_op *op_amd64_l_haddpd;
564 static inline bool is_amd64_l_haddpd(
ir_node const *
const n)
574 extern ir_op *op_amd64_l_punpckldq;
576 static inline bool is_amd64_l_punpckldq(
ir_node const *
const n)
586 extern ir_op *op_amd64_l_subpd;
588 static inline bool is_amd64_l_subpd(
ir_node const *
const n)
598 extern ir_op *op_amd64_lea;
600 static inline bool is_amd64_lea(
ir_node const *
const n)
608 ir_node *new_bd_amd64_lea(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_addr_t addr);
610 extern ir_op *op_amd64_leave;
612 static inline bool is_amd64_leave(
ir_node const *
const n)
622 extern ir_op *op_amd64_mov_gp;
624 static inline bool is_amd64_mov_gp(
ir_node const *
const n)
632 ir_node *new_bd_amd64_mov_gp(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
634 extern ir_op *op_amd64_mov_imm;
636 static inline bool is_amd64_mov_imm(
ir_node const *
const n)
644 ir_node *new_bd_amd64_mov_imm(
dbg_info *dbgi,
ir_node *block, amd64_insn_mode_t insn_mode,
const amd64_imm64_t *imm);
646 extern ir_op *op_amd64_mov_store;
648 static inline bool is_amd64_mov_store(
ir_node const *
const n)
656 ir_node *new_bd_amd64_mov_store(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
658 extern ir_op *op_amd64_movd_gp_xmm;
660 static inline bool is_amd64_movd_gp_xmm(
ir_node const *
const n)
668 ir_node *new_bd_amd64_movd_gp_xmm(
dbg_info *dbgi,
ir_node *block,
ir_node *operand, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
670 extern ir_op *op_amd64_movd_xmm_gp;
672 static inline bool is_amd64_movd_xmm_gp(
ir_node const *
const n)
680 ir_node *new_bd_amd64_movd_xmm_gp(
dbg_info *dbgi,
ir_node *block,
ir_node *operand, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
682 extern ir_op *op_amd64_movdqa;
684 static inline bool is_amd64_movdqa(
ir_node const *
const n)
692 ir_node *new_bd_amd64_movdqa(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_op_mode_t op_mode, amd64_addr_t addr);
694 extern ir_op *op_amd64_movdqu;
696 static inline bool is_amd64_movdqu(
ir_node const *
const n)
704 ir_node *new_bd_amd64_movdqu(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_op_mode_t op_mode, amd64_addr_t addr);
706 extern ir_op *op_amd64_movdqu_store;
708 static inline bool is_amd64_movdqu_store(
ir_node const *
const n)
710 return get_irn_op(n) == op_amd64_movdqu_store;
716 ir_node *new_bd_amd64_movdqu_store(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
718 extern ir_op *op_amd64_movq;
720 static inline bool is_amd64_movq(
ir_node const *
const n)
728 ir_node *new_bd_amd64_movq(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_op_mode_t op_mode, amd64_addr_t addr);
730 extern ir_op *op_amd64_movs;
732 static inline bool is_amd64_movs(
ir_node const *
const n)
740 ir_node *new_bd_amd64_movs(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
742 extern ir_op *op_amd64_movs_store_xmm;
744 static inline bool is_amd64_movs_store_xmm(
ir_node const *
const n)
746 return get_irn_op(n) == op_amd64_movs_store_xmm;
752 ir_node *new_bd_amd64_movs_store_xmm(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
754 extern ir_op *op_amd64_movs_xmm;
756 static inline bool is_amd64_movs_xmm(
ir_node const *
const n)
764 ir_node *new_bd_amd64_movs_xmm(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
766 extern ir_op *op_amd64_mul;
768 static inline bool is_amd64_mul(
ir_node const *
const n)
776 ir_node *new_bd_amd64_mul(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_op_mode_t op_mode, amd64_addr_t addr);
778 extern ir_op *op_amd64_muls;
780 static inline bool is_amd64_muls(
ir_node const *
const n)
788 ir_node *new_bd_amd64_muls(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
790 extern ir_op *op_amd64_neg;
792 static inline bool is_amd64_neg(
ir_node const *
const n)
802 extern ir_op *op_amd64_not;
804 static inline bool is_amd64_not(
ir_node const *
const n)
814 extern ir_op *op_amd64_or;
816 static inline bool is_amd64_or(
ir_node const *
const n)
824 ir_node *new_bd_amd64_or(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
826 extern ir_op *op_amd64_pop_am;
828 static inline bool is_amd64_pop_am(
ir_node const *
const n)
836 ir_node *new_bd_amd64_pop_am(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_addr_t addr);
838 extern ir_op *op_amd64_punpckldq;
840 static inline bool is_amd64_punpckldq(
ir_node const *
const n)
848 ir_node *new_bd_amd64_punpckldq(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
850 extern ir_op *op_amd64_push_am;
852 static inline bool is_amd64_push_am(
ir_node const *
const n)
860 ir_node *new_bd_amd64_push_am(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs, amd64_insn_mode_t insn_mode, amd64_addr_t addr);
862 extern ir_op *op_amd64_push_reg;
864 static inline bool is_amd64_push_reg(
ir_node const *
const n)
874 extern ir_op *op_amd64_ret;
876 static inline bool is_amd64_ret(
ir_node const *
const n)
884 ir_node *new_bd_amd64_ret(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs);
886 extern ir_op *op_amd64_sar;
888 static inline bool is_amd64_sar(
ir_node const *
const n)
896 ir_node *new_bd_amd64_sar(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_shift_attr_t *attr_init);
898 extern ir_op *op_amd64_sbb;
900 static inline bool is_amd64_sbb(
ir_node const *
const n)
908 ir_node *new_bd_amd64_sbb(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
910 extern ir_op *op_amd64_setcc;
912 static inline bool is_amd64_setcc(
ir_node const *
const n)
922 extern ir_op *op_amd64_shl;
924 static inline bool is_amd64_shl(
ir_node const *
const n)
932 ir_node *new_bd_amd64_shl(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_shift_attr_t *attr_init);
934 extern ir_op *op_amd64_shr;
936 static inline bool is_amd64_shr(
ir_node const *
const n)
944 ir_node *new_bd_amd64_shr(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_shift_attr_t *attr_init);
946 extern ir_op *op_amd64_sub;
948 static inline bool is_amd64_sub(
ir_node const *
const n)
956 ir_node *new_bd_amd64_sub(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
958 extern ir_op *op_amd64_sub_sp;
960 static inline bool is_amd64_sub_sp(
ir_node const *
const n)
968 ir_node *new_bd_amd64_sub_sp(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
970 extern ir_op *op_amd64_subpd;
972 static inline bool is_amd64_subpd(
ir_node const *
const n)
980 ir_node *new_bd_amd64_subpd(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
982 extern ir_op *op_amd64_subs;
984 static inline bool is_amd64_subs(
ir_node const *
const n)
992 ir_node *new_bd_amd64_subs(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
994 extern ir_op *op_amd64_ucomis;
996 static inline bool is_amd64_ucomis(
ir_node const *
const n)
1004 ir_node *new_bd_amd64_ucomis(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
1006 extern ir_op *op_amd64_xor;
1008 static inline bool is_amd64_xor(
ir_node const *
const n)
1016 ir_node *new_bd_amd64_xor(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
1018 extern ir_op *op_amd64_xor_0;
1020 static inline bool is_amd64_xor_0(
ir_node const *
const n)
1030 extern ir_op *op_amd64_xorp;
1032 static inline bool is_amd64_xorp(
ir_node const *
const n)
1040 ir_node *new_bd_amd64_xorp(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
const amd64_binop_addr_attr_t *attr_init);
1042 extern ir_op *op_amd64_xorpd_0;
1044 static inline bool is_amd64_xorpd_0(
ir_node const *
const n)
1055 typedef enum pn_amd64_add {
1056 pn_amd64_add_res = 0,
1057 pn_amd64_add_flags = 1,
1061 typedef enum pn_amd64_adds {
1062 pn_amd64_adds_res = 0,
1063 pn_amd64_adds_none = 1,
1064 pn_amd64_adds_M = 2,
1067 typedef enum pn_amd64_and {
1068 pn_amd64_and_res = 0,
1069 pn_amd64_and_flags = 1,
1073 typedef enum pn_amd64_bsf {
1074 pn_amd64_bsf_res = 0,
1075 pn_amd64_bsf_flags = 1,
1079 typedef enum pn_amd64_bsr {
1080 pn_amd64_bsr_res = 0,
1081 pn_amd64_bsr_flags = 1,
1085 typedef enum pn_amd64_call {
1086 pn_amd64_call_M = 0,
1087 pn_amd64_call_stack = 1,
1088 pn_amd64_call_flags = 2,
1089 pn_amd64_call_first_result = 3,
1092 typedef enum pn_amd64_cmp {
1093 pn_amd64_cmp_dummy = 0,
1094 pn_amd64_cmp_flags = 1,
1098 typedef enum pn_amd64_cmpxchg {
1099 pn_amd64_cmpxchg_res = 0,
1100 pn_amd64_cmpxchg_flags = 1,
1101 pn_amd64_cmpxchg_M = 2,
1104 typedef enum pn_amd64_cvtsd2ss {
1105 pn_amd64_cvtsd2ss_res = 0,
1106 pn_amd64_cvtsd2ss_none = 1,
1107 pn_amd64_cvtsd2ss_M = 2,
1108 } pn_amd64_cvtsd2ss;
1110 typedef enum pn_amd64_cvtsi2sd {
1111 pn_amd64_cvtsi2sd_res = 0,
1112 pn_amd64_cvtsi2sd_none = 1,
1113 pn_amd64_cvtsi2sd_M = 2,
1114 } pn_amd64_cvtsi2sd;
1116 typedef enum pn_amd64_cvtsi2ss {
1117 pn_amd64_cvtsi2ss_res = 0,
1118 pn_amd64_cvtsi2ss_none = 1,
1119 pn_amd64_cvtsi2ss_M = 2,
1120 } pn_amd64_cvtsi2ss;
1122 typedef enum pn_amd64_cvtss2sd {
1123 pn_amd64_cvtss2sd_res = 0,
1124 pn_amd64_cvtss2sd_none = 1,
1125 pn_amd64_cvtss2sd_M = 2,
1126 } pn_amd64_cvtss2sd;
1128 typedef enum pn_amd64_cvttsd2si {
1129 pn_amd64_cvttsd2si_res = 0,
1130 pn_amd64_cvttsd2si_none = 1,
1131 pn_amd64_cvttsd2si_M = 2,
1132 } pn_amd64_cvttsd2si;
1134 typedef enum pn_amd64_cvttss2si {
1135 pn_amd64_cvttss2si_res = 0,
1136 pn_amd64_cvttss2si_none = 1,
1137 pn_amd64_cvttss2si_M = 2,
1138 } pn_amd64_cvttss2si;
1140 typedef enum pn_amd64_div {
1141 pn_amd64_div_res_div = 0,
1142 pn_amd64_div_flags = 1,
1144 pn_amd64_div_res_mod = 3,
1147 typedef enum pn_amd64_divs {
1148 pn_amd64_divs_res = 0,
1149 pn_amd64_divs_none = 1,
1150 pn_amd64_divs_M = 2,
1153 typedef enum n_amd64_fadd {
1154 n_amd64_fadd_left = 0,
1155 n_amd64_fadd_right = 1,
1158 typedef enum n_amd64_fchs {
1159 n_amd64_fchs_value = 0,
1162 typedef enum pn_amd64_fdiv {
1163 pn_amd64_fdiv_res = 0,
1164 pn_amd64_fdiv_flags = 1,
1165 pn_amd64_fdiv_M = 2,
1168 typedef enum n_amd64_fdiv {
1169 n_amd64_fdiv_left = 0,
1170 n_amd64_fdiv_right = 1,
1173 typedef enum n_amd64_fdup {
1174 n_amd64_fdup_val = 0,
1177 typedef enum pn_amd64_fld {
1178 pn_amd64_fld_res = 0,
1179 pn_amd64_fld_unused = 1,
1183 typedef enum pn_amd64_fld1 {
1184 pn_amd64_fld1_res = 0,
1187 typedef enum pn_amd64_fldz {
1188 pn_amd64_fldz_res = 0,
1191 typedef enum n_amd64_fmul {
1192 n_amd64_fmul_left = 0,
1193 n_amd64_fmul_right = 1,
1196 typedef enum pn_amd64_fst {
1200 typedef enum pn_amd64_fstp {
1201 pn_amd64_fstp_M = 0,
1204 typedef enum n_amd64_fsub {
1205 n_amd64_fsub_left = 0,
1206 n_amd64_fsub_right = 1,
1209 typedef enum pn_amd64_fucomi {
1210 pn_amd64_fucomi_flags = 0,
1213 typedef enum n_amd64_fucomi {
1214 n_amd64_fucomi_left = 0,
1215 n_amd64_fucomi_right = 1,
1218 typedef enum pn_amd64_haddpd {
1219 pn_amd64_haddpd_res = 0,
1220 pn_amd64_haddpd_none = 1,
1221 pn_amd64_haddpd_M = 2,
1224 typedef enum pn_amd64_idiv {
1225 pn_amd64_idiv_res_div = 0,
1226 pn_amd64_idiv_flags = 1,
1227 pn_amd64_idiv_M = 2,
1228 pn_amd64_idiv_res_mod = 3,
1231 typedef enum pn_amd64_ijmp {
1232 pn_amd64_ijmp_X = 0,
1233 pn_amd64_ijmp_unused = 1,
1234 pn_amd64_ijmp_M = 2,
1237 typedef enum pn_amd64_imul {
1238 pn_amd64_imul_res = 0,
1239 pn_amd64_imul_flags = 1,
1240 pn_amd64_imul_M = 2,
1243 typedef enum pn_amd64_imul_1op {
1244 pn_amd64_imul_1op_res_low = 0,
1245 pn_amd64_imul_1op_flags = 1,
1246 pn_amd64_imul_1op_M = 2,
1247 pn_amd64_imul_1op_res_high = 3,
1248 } pn_amd64_imul_1op;
1250 typedef enum pn_amd64_jcc {
1251 pn_amd64_jcc_false = 0,
1252 pn_amd64_jcc_true = 1,
1255 typedef enum n_amd64_jcc {
1256 n_amd64_jcc_eflags = 0,
1259 typedef enum pn_amd64_l_haddpd {
1260 pn_amd64_l_haddpd_res = 0,
1261 } pn_amd64_l_haddpd;
1263 typedef enum n_amd64_l_haddpd {
1264 n_amd64_l_haddpd_arg0 = 0,
1265 n_amd64_l_haddpd_arg1 = 1,
1268 typedef enum pn_amd64_l_punpckldq {
1269 pn_amd64_l_punpckldq_res = 0,
1270 } pn_amd64_l_punpckldq;
1272 typedef enum n_amd64_l_punpckldq {
1273 n_amd64_l_punpckldq_arg0 = 0,
1274 n_amd64_l_punpckldq_arg1 = 1,
1275 } n_amd64_l_punpckldq;
1277 typedef enum pn_amd64_l_subpd {
1278 pn_amd64_l_subpd_res = 0,
1281 typedef enum n_amd64_l_subpd {
1282 n_amd64_l_subpd_arg0 = 0,
1283 n_amd64_l_subpd_arg1 = 1,
1286 typedef enum pn_amd64_lea {
1287 pn_amd64_lea_res = 0,
1290 typedef enum pn_amd64_leave {
1291 pn_amd64_leave_frame = 0,
1292 pn_amd64_leave_M = 1,
1293 pn_amd64_leave_stack = 2,
1296 typedef enum pn_amd64_mov_gp {
1297 pn_amd64_mov_gp_res = 0,
1298 pn_amd64_mov_gp_unused = 1,
1299 pn_amd64_mov_gp_M = 2,
1302 typedef enum pn_amd64_mov_store {
1303 pn_amd64_mov_store_M = 0,
1304 } pn_amd64_mov_store;
1306 typedef enum pn_amd64_movd_gp_xmm {
1307 pn_amd64_movd_gp_xmm_res = 0,
1308 } pn_amd64_movd_gp_xmm;
1310 typedef enum n_amd64_movd_gp_xmm {
1311 n_amd64_movd_gp_xmm_operand = 0,
1312 } n_amd64_movd_gp_xmm;
1314 typedef enum pn_amd64_movd_xmm_gp {
1315 pn_amd64_movd_xmm_gp_res = 0,
1316 } pn_amd64_movd_xmm_gp;
1318 typedef enum n_amd64_movd_xmm_gp {
1319 n_amd64_movd_xmm_gp_operand = 0,
1320 } n_amd64_movd_xmm_gp;
1322 typedef enum pn_amd64_movdqa {
1323 pn_amd64_movdqa_res = 0,
1324 pn_amd64_movdqa_none = 1,
1325 pn_amd64_movdqa_M = 2,
1328 typedef enum pn_amd64_movdqu {
1329 pn_amd64_movdqu_res = 0,
1330 pn_amd64_movdqu_none = 1,
1331 pn_amd64_movdqu_M = 2,
1334 typedef enum pn_amd64_movdqu_store {
1335 pn_amd64_movdqu_store_M = 0,
1336 } pn_amd64_movdqu_store;
1338 typedef enum pn_amd64_movq {
1339 pn_amd64_movq_res = 0,
1340 pn_amd64_movq_none = 1,
1341 pn_amd64_movq_M = 2,
1344 typedef enum pn_amd64_movs {
1345 pn_amd64_movs_res = 0,
1346 pn_amd64_movs_unused = 1,
1347 pn_amd64_movs_M = 2,
1350 typedef enum pn_amd64_movs_store_xmm {
1351 pn_amd64_movs_store_xmm_M = 0,
1352 } pn_amd64_movs_store_xmm;
1354 typedef enum pn_amd64_movs_xmm {
1355 pn_amd64_movs_xmm_res = 0,
1356 pn_amd64_movs_xmm_none = 1,
1357 pn_amd64_movs_xmm_M = 2,
1358 } pn_amd64_movs_xmm;
1360 typedef enum pn_amd64_mul {
1361 pn_amd64_mul_res_low = 0,
1362 pn_amd64_mul_flags = 1,
1364 pn_amd64_mul_res_high = 3,
1367 typedef enum pn_amd64_muls {
1368 pn_amd64_muls_res = 0,
1369 pn_amd64_muls_none = 1,
1370 pn_amd64_muls_M = 2,
1373 typedef enum pn_amd64_neg {
1374 pn_amd64_neg_res = 0,
1375 pn_amd64_neg_flags = 1,
1378 typedef enum n_amd64_neg {
1379 n_amd64_neg_val = 0,
1382 typedef enum pn_amd64_not {
1383 pn_amd64_not_res = 0,
1384 pn_amd64_not_flags = 1,
1387 typedef enum n_amd64_not {
1388 n_amd64_not_val = 0,
1391 typedef enum pn_amd64_or {
1392 pn_amd64_or_res = 0,
1393 pn_amd64_or_flags = 1,
1397 typedef enum pn_amd64_pop_am {
1398 pn_amd64_pop_am_stack = 0,
1399 pn_amd64_pop_am_M = 1,
1402 typedef enum pn_amd64_punpckldq {
1403 pn_amd64_punpckldq_res = 0,
1404 pn_amd64_punpckldq_none = 1,
1405 pn_amd64_punpckldq_M = 2,
1406 } pn_amd64_punpckldq;
1408 typedef enum pn_amd64_push_am {
1409 pn_amd64_push_am_stack = 0,
1410 pn_amd64_push_am_M = 1,
1413 typedef enum pn_amd64_push_reg {
1414 pn_amd64_push_reg_stack = 0,
1415 pn_amd64_push_reg_M = 1,
1416 } pn_amd64_push_reg;
1418 typedef enum n_amd64_push_reg {
1419 n_amd64_push_reg_stack = 0,
1420 n_amd64_push_reg_mem = 1,
1421 n_amd64_push_reg_val = 2,
1424 typedef enum n_amd64_ret {
1425 n_amd64_ret_mem = 0,
1426 n_amd64_ret_stack = 1,
1427 n_amd64_ret_first_result = 2,
1430 typedef enum pn_amd64_sar {
1431 pn_amd64_sar_res = 0,
1432 pn_amd64_sar_flags = 1,
1435 typedef enum pn_amd64_sbb {
1436 pn_amd64_sbb_res = 0,
1437 pn_amd64_sbb_flags = 1,
1441 typedef enum pn_amd64_setcc {
1442 pn_amd64_setcc_res = 0,
1445 typedef enum n_amd64_setcc {
1446 n_amd64_setcc_eflags = 0,
1449 typedef enum pn_amd64_shl {
1450 pn_amd64_shl_res = 0,
1451 pn_amd64_shl_flags = 1,
1454 typedef enum pn_amd64_shr {
1455 pn_amd64_shr_res = 0,
1456 pn_amd64_shr_flags = 1,
1459 typedef enum pn_amd64_sub {
1460 pn_amd64_sub_res = 0,
1461 pn_amd64_sub_flags = 1,
1465 typedef enum pn_amd64_sub_sp {
1466 pn_amd64_sub_sp_stack = 0,
1467 pn_amd64_sub_sp_addr = 1,
1468 pn_amd64_sub_sp_M = 2,
1471 typedef enum n_amd64_sub_sp {
1472 n_amd64_sub_sp_stack = 0,
1475 typedef enum pn_amd64_subpd {
1476 pn_amd64_subpd_res = 0,
1477 pn_amd64_subpd_none = 1,
1478 pn_amd64_subpd_M = 2,
1481 typedef enum pn_amd64_subs {
1482 pn_amd64_subs_res = 0,
1483 pn_amd64_subs_none = 1,
1484 pn_amd64_subs_M = 2,
1487 typedef enum pn_amd64_ucomis {
1488 pn_amd64_ucomis_dummy = 0,
1489 pn_amd64_ucomis_flags = 1,
1490 pn_amd64_ucomis_M = 2,
1493 typedef enum pn_amd64_xor {
1494 pn_amd64_xor_res = 0,
1495 pn_amd64_xor_flags = 1,
1499 typedef enum pn_amd64_xor_0 {
1500 pn_amd64_xor_0_res = 0,
1501 pn_amd64_xor_0_flags = 1,
1504 typedef enum pn_amd64_xorp {
1505 pn_amd64_xorp_res = 0,
1506 pn_amd64_xorp_none = 1,
1507 pn_amd64_xorp_M = 2,
1510 typedef enum pn_amd64_xorpd_0 {
1511 pn_amd64_xorpd_0_res = 0,
struct dbg_info dbg_info
Source Reference.
struct ir_switch_table ir_switch_table
A switch table mapping integer numbers to proj-numbers of a Switch-node.
ir_op * get_irn_op(const ir_node *node)
Returns the opcode struct of the node.
struct ir_op ir_op
Node Opcode.
struct ir_entity ir_entity
Entity.
struct ir_node ir_node
Procedure Graph Node.