libFirm
gen_amd64_new_nodes.h
1 
9 #ifndef FIRM_BE_AMD64_GEN_AMD64_NEW_NODES_H
10 #define FIRM_BE_AMD64_GEN_AMD64_NEW_NODES_H
11 
12 #include "be_types.h"
13 #include "irnode_t.h"
14 #include "amd64_nodes_attr.h"
15 
16 typedef enum amd64_opcodes {
17  iro_amd64_add,
18  iro_amd64_adds,
19  iro_amd64_and,
20  iro_amd64_bsf,
21  iro_amd64_bsr,
22  iro_amd64_call,
23  iro_amd64_cltd,
24  iro_amd64_cmp,
25  iro_amd64_cmpxchg,
26  iro_amd64_cqto,
27  iro_amd64_cvtsd2ss,
28  iro_amd64_cvtsi2sd,
29  iro_amd64_cvtsi2ss,
30  iro_amd64_cvtss2sd,
31  iro_amd64_cvttsd2si,
32  iro_amd64_cvttss2si,
33  iro_amd64_div,
34  iro_amd64_divs,
35  iro_amd64_fadd,
36  iro_amd64_fchs,
37  iro_amd64_fdiv,
38  iro_amd64_fdup,
39  iro_amd64_fild,
40  iro_amd64_fisttp,
41  iro_amd64_fld,
42  iro_amd64_fld1,
43  iro_amd64_fldz,
44  iro_amd64_fmul,
45  iro_amd64_fpop,
46  iro_amd64_fst,
47  iro_amd64_fstp,
48  iro_amd64_fsub,
49  iro_amd64_fucomi,
50  iro_amd64_fxch,
51  iro_amd64_haddpd,
52  iro_amd64_idiv,
53  iro_amd64_ijmp,
54  iro_amd64_imul,
55  iro_amd64_imul_1op,
56  iro_amd64_jcc,
57  iro_amd64_jmp,
58  iro_amd64_jmp_switch,
59  iro_amd64_l_haddpd,
60  iro_amd64_l_punpckldq,
61  iro_amd64_l_subpd,
62  iro_amd64_lea,
63  iro_amd64_leave,
64  iro_amd64_mov_gp,
65  iro_amd64_mov_imm,
66  iro_amd64_mov_store,
67  iro_amd64_movd,
68  iro_amd64_movd_gp_xmm,
69  iro_amd64_movd_xmm_gp,
70  iro_amd64_movdqa,
71  iro_amd64_movdqu,
72  iro_amd64_movdqu_store,
73  iro_amd64_movs,
74  iro_amd64_movs_store_xmm,
75  iro_amd64_movs_xmm,
76  iro_amd64_mul,
77  iro_amd64_muls,
78  iro_amd64_neg,
79  iro_amd64_not,
80  iro_amd64_or,
81  iro_amd64_pop_am,
82  iro_amd64_punpckldq,
83  iro_amd64_push_am,
84  iro_amd64_push_reg,
85  iro_amd64_ret,
86  iro_amd64_sar,
87  iro_amd64_sbb,
88  iro_amd64_setcc,
89  iro_amd64_shl,
90  iro_amd64_shr,
91  iro_amd64_sub,
92  iro_amd64_sub_sp,
93  iro_amd64_subpd,
94  iro_amd64_subs,
95  iro_amd64_ucomis,
96  iro_amd64_xor,
97  iro_amd64_xor_0,
98  iro_amd64_xorp,
99  iro_amd64_xorp_0,
100  iro_amd64_last
101 } amd64_opcodes;
102 
103 
104 int is_amd64_irn(const ir_node *node);
105 int is_amd64_op(const ir_op *op);
106 
107 int get_amd64_irn_opcode(const ir_node *node);
108 void amd64_create_opcodes(void);
109 void amd64_free_opcodes(void);
110 
111 extern ir_op *op_amd64_add;
112 
113 static inline bool is_amd64_add(ir_node const *const n)
114 {
115  return get_irn_op(n) == op_amd64_add;
116 }
117 
121 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);
122 
123 extern ir_op *op_amd64_adds;
124 
125 static inline bool is_amd64_adds(ir_node const *const n)
126 {
127  return get_irn_op(n) == op_amd64_adds;
128 }
129 
133 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);
134 
135 extern ir_op *op_amd64_and;
136 
137 static inline bool is_amd64_and(ir_node const *const n)
138 {
139  return get_irn_op(n) == op_amd64_and;
140 }
141 
145 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);
146 
147 extern ir_op *op_amd64_bsf;
148 
149 static inline bool is_amd64_bsf(ir_node const *const n)
150 {
151  return get_irn_op(n) == op_amd64_bsf;
152 }
153 
157 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
158 
159 extern ir_op *op_amd64_bsr;
160 
161 static inline bool is_amd64_bsr(ir_node const *const n)
162 {
163  return get_irn_op(n) == op_amd64_bsr;
164 }
165 
169 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
170 
171 extern ir_op *op_amd64_call;
172 
173 static inline bool is_amd64_call(ir_node const *const n)
174 {
175  return get_irn_op(n) == op_amd64_call;
176 }
177 
181 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);
182 
183 extern ir_op *op_amd64_cltd;
184 
185 static inline bool is_amd64_cltd(ir_node const *const n)
186 {
187  return get_irn_op(n) == op_amd64_cltd;
188 }
189 
193 ir_node *new_bd_amd64_cltd(dbg_info *dbgi, ir_node *block, ir_node *val);
194 
195 extern ir_op *op_amd64_cmp;
196 
197 static inline bool is_amd64_cmp(ir_node const *const n)
198 {
199  return get_irn_op(n) == op_amd64_cmp;
200 }
201 
205 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);
206 
207 extern ir_op *op_amd64_cmpxchg;
208 
209 static inline bool is_amd64_cmpxchg(ir_node const *const n)
210 {
211  return get_irn_op(n) == op_amd64_cmpxchg;
212 }
213 
217 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);
218 
219 extern ir_op *op_amd64_cqto;
220 
221 static inline bool is_amd64_cqto(ir_node const *const n)
222 {
223  return get_irn_op(n) == op_amd64_cqto;
224 }
225 
229 ir_node *new_bd_amd64_cqto(dbg_info *dbgi, ir_node *block, ir_node *val);
230 
231 extern ir_op *op_amd64_cvtsd2ss;
232 
233 static inline bool is_amd64_cvtsd2ss(ir_node const *const n)
234 {
235  return get_irn_op(n) == op_amd64_cvtsd2ss;
236 }
237 
241 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, x86_addr_t addr);
242 
243 extern ir_op *op_amd64_cvtsi2sd;
244 
245 static inline bool is_amd64_cvtsi2sd(ir_node const *const n)
246 {
247  return get_irn_op(n) == op_amd64_cvtsi2sd;
248 }
249 
253 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
254 
255 extern ir_op *op_amd64_cvtsi2ss;
256 
257 static inline bool is_amd64_cvtsi2ss(ir_node const *const n)
258 {
259  return get_irn_op(n) == op_amd64_cvtsi2ss;
260 }
261 
265 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
266 
267 extern ir_op *op_amd64_cvtss2sd;
268 
269 static inline bool is_amd64_cvtss2sd(ir_node const *const n)
270 {
271  return get_irn_op(n) == op_amd64_cvtss2sd;
272 }
273 
277 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
278 
279 extern ir_op *op_amd64_cvttsd2si;
280 
281 static inline bool is_amd64_cvttsd2si(ir_node const *const n)
282 {
283  return get_irn_op(n) == op_amd64_cvttsd2si;
284 }
285 
289 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
290 
291 extern ir_op *op_amd64_cvttss2si;
292 
293 static inline bool is_amd64_cvttss2si(ir_node const *const n)
294 {
295  return get_irn_op(n) == op_amd64_cvttss2si;
296 }
297 
301 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
302 
303 extern ir_op *op_amd64_div;
304 
305 static inline bool is_amd64_div(ir_node const *const n)
306 {
307  return get_irn_op(n) == op_amd64_div;
308 }
309 
313 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, x86_insn_size_t size);
314 
315 extern ir_op *op_amd64_divs;
316 
317 static inline bool is_amd64_divs(ir_node const *const n)
318 {
319  return get_irn_op(n) == op_amd64_divs;
320 }
321 
325 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);
326 
327 extern ir_op *op_amd64_fadd;
328 
329 static inline bool is_amd64_fadd(ir_node const *const n)
330 {
331  return get_irn_op(n) == op_amd64_fadd;
332 }
333 
337 ir_node *new_bd_amd64_fadd(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
338 
339 extern ir_op *op_amd64_fchs;
340 
341 static inline bool is_amd64_fchs(ir_node const *const n)
342 {
343  return get_irn_op(n) == op_amd64_fchs;
344 }
345 
349 ir_node *new_bd_amd64_fchs(dbg_info *dbgi, ir_node *block, ir_node *value);
350 
351 extern ir_op *op_amd64_fdiv;
352 
353 static inline bool is_amd64_fdiv(ir_node const *const n)
354 {
355  return get_irn_op(n) == op_amd64_fdiv;
356 }
357 
361 ir_node *new_bd_amd64_fdiv(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
362 
363 extern ir_op *op_amd64_fdup;
364 
365 static inline bool is_amd64_fdup(ir_node const *const n)
366 {
367  return get_irn_op(n) == op_amd64_fdup;
368 }
369 
373 ir_node *new_bd_amd64_fdup(dbg_info *dbgi, ir_node *block, ir_node *val, const arch_register_t *reg);
374 
375 extern ir_op *op_amd64_fild;
376 
377 static inline bool is_amd64_fild(ir_node const *const n)
378 {
379  return get_irn_op(n) == op_amd64_fild;
380 }
381 
385 ir_node *new_bd_amd64_fild(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
386 
387 extern ir_op *op_amd64_fisttp;
388 
389 static inline bool is_amd64_fisttp(ir_node const *const n)
390 {
391  return get_irn_op(n) == op_amd64_fisttp;
392 }
393 
397 ir_node *new_bd_amd64_fisttp(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);
398 
399 extern ir_op *op_amd64_fld;
400 
401 static inline bool is_amd64_fld(ir_node const *const n)
402 {
403  return get_irn_op(n) == op_amd64_fld;
404 }
405 
409 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
410 
411 extern ir_op *op_amd64_fld1;
412 
413 static inline bool is_amd64_fld1(ir_node const *const n)
414 {
415  return get_irn_op(n) == op_amd64_fld1;
416 }
417 
421 ir_node *new_bd_amd64_fld1(dbg_info *dbgi, ir_node *block);
422 
423 extern ir_op *op_amd64_fldz;
424 
425 static inline bool is_amd64_fldz(ir_node const *const n)
426 {
427  return get_irn_op(n) == op_amd64_fldz;
428 }
429 
433 ir_node *new_bd_amd64_fldz(dbg_info *dbgi, ir_node *block);
434 
435 extern ir_op *op_amd64_fmul;
436 
437 static inline bool is_amd64_fmul(ir_node const *const n)
438 {
439  return get_irn_op(n) == op_amd64_fmul;
440 }
441 
445 ir_node *new_bd_amd64_fmul(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
446 
447 extern ir_op *op_amd64_fpop;
448 
449 static inline bool is_amd64_fpop(ir_node const *const n)
450 {
451  return get_irn_op(n) == op_amd64_fpop;
452 }
453 
457 ir_node *new_bd_amd64_fpop(dbg_info *dbgi, ir_node *block, const arch_register_t *reg);
458 
459 extern ir_op *op_amd64_fst;
460 
461 static inline bool is_amd64_fst(ir_node const *const n)
462 {
463  return get_irn_op(n) == op_amd64_fst;
464 }
465 
469 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);
470 
471 extern ir_op *op_amd64_fstp;
472 
473 static inline bool is_amd64_fstp(ir_node const *const n)
474 {
475  return get_irn_op(n) == op_amd64_fstp;
476 }
477 
481 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);
482 
483 extern ir_op *op_amd64_fsub;
484 
485 static inline bool is_amd64_fsub(ir_node const *const n)
486 {
487  return get_irn_op(n) == op_amd64_fsub;
488 }
489 
493 ir_node *new_bd_amd64_fsub(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
494 
495 extern ir_op *op_amd64_fucomi;
496 
497 static inline bool is_amd64_fucomi(ir_node const *const n)
498 {
499  return get_irn_op(n) == op_amd64_fucomi;
500 }
501 
505 ir_node *new_bd_amd64_fucomi(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);
506 
507 extern ir_op *op_amd64_fxch;
508 
509 static inline bool is_amd64_fxch(ir_node const *const n)
510 {
511  return get_irn_op(n) == op_amd64_fxch;
512 }
513 
517 ir_node *new_bd_amd64_fxch(dbg_info *dbgi, ir_node *block, const arch_register_t *reg);
518 
519 extern ir_op *op_amd64_haddpd;
520 
521 static inline bool is_amd64_haddpd(ir_node const *const n)
522 {
523  return get_irn_op(n) == op_amd64_haddpd;
524 }
525 
529 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);
530 
531 extern ir_op *op_amd64_idiv;
532 
533 static inline bool is_amd64_idiv(ir_node const *const n)
534 {
535  return get_irn_op(n) == op_amd64_idiv;
536 }
537 
541 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, x86_insn_size_t size);
542 
543 extern ir_op *op_amd64_ijmp;
544 
545 static inline bool is_amd64_ijmp(ir_node const *const n)
546 {
547  return get_irn_op(n) == op_amd64_ijmp;
548 }
549 
553 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
554 
555 extern ir_op *op_amd64_imul;
556 
557 static inline bool is_amd64_imul(ir_node const *const n)
558 {
559  return get_irn_op(n) == op_amd64_imul;
560 }
561 
565 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);
566 
567 extern ir_op *op_amd64_imul_1op;
568 
569 static inline bool is_amd64_imul_1op(ir_node const *const n)
570 {
571  return get_irn_op(n) == op_amd64_imul_1op;
572 }
573 
577 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
578 
579 extern ir_op *op_amd64_jcc;
580 
581 static inline bool is_amd64_jcc(ir_node const *const n)
582 {
583  return get_irn_op(n) == op_amd64_jcc;
584 }
585 
589 ir_node *new_bd_amd64_jcc(dbg_info *dbgi, ir_node *block, ir_node *eflags, x86_condition_code_t cc);
590 
591 extern ir_op *op_amd64_jmp;
592 
593 static inline bool is_amd64_jmp(ir_node const *const n)
594 {
595  return get_irn_op(n) == op_amd64_jmp;
596 }
597 
601 ir_node *new_bd_amd64_jmp(dbg_info *dbgi, ir_node *block);
602 
603 extern ir_op *op_amd64_jmp_switch;
604 
605 static inline bool is_amd64_jmp_switch(ir_node const *const n)
606 {
607  return get_irn_op(n) == op_amd64_jmp_switch;
608 }
609 
613 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, x86_insn_size_t size, const x86_addr_t *addr, const ir_switch_table *table, ir_entity *table_entity);
614 
615 extern ir_op *op_amd64_l_haddpd;
616 
617 static inline bool is_amd64_l_haddpd(ir_node const *const n)
618 {
619  return get_irn_op(n) == op_amd64_l_haddpd;
620 }
621 
625 ir_node *new_bd_amd64_l_haddpd(dbg_info *dbgi, ir_node *block, ir_node *arg0, ir_node *arg1);
626 
627 extern ir_op *op_amd64_l_punpckldq;
628 
629 static inline bool is_amd64_l_punpckldq(ir_node const *const n)
630 {
631  return get_irn_op(n) == op_amd64_l_punpckldq;
632 }
633 
637 ir_node *new_bd_amd64_l_punpckldq(dbg_info *dbgi, ir_node *block, ir_node *arg0, ir_node *arg1);
638 
639 extern ir_op *op_amd64_l_subpd;
640 
641 static inline bool is_amd64_l_subpd(ir_node const *const n)
642 {
643  return get_irn_op(n) == op_amd64_l_subpd;
644 }
645 
649 ir_node *new_bd_amd64_l_subpd(dbg_info *dbgi, ir_node *block, ir_node *arg0, ir_node *arg1);
650 
651 extern ir_op *op_amd64_lea;
652 
653 static inline bool is_amd64_lea(ir_node const *const n)
654 {
655  return get_irn_op(n) == op_amd64_lea;
656 }
657 
661 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, x86_insn_size_t size, x86_addr_t addr);
662 
663 extern ir_op *op_amd64_leave;
664 
665 static inline bool is_amd64_leave(ir_node const *const n)
666 {
667  return get_irn_op(n) == op_amd64_leave;
668 }
669 
673 ir_node *new_bd_amd64_leave(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1);
674 
675 extern ir_op *op_amd64_mov_gp;
676 
677 static inline bool is_amd64_mov_gp(ir_node const *const n)
678 {
679  return get_irn_op(n) == op_amd64_mov_gp;
680 }
681 
685 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
686 
687 extern ir_op *op_amd64_mov_imm;
688 
689 static inline bool is_amd64_mov_imm(ir_node const *const n)
690 {
691  return get_irn_op(n) == op_amd64_mov_imm;
692 }
693 
697 ir_node *new_bd_amd64_mov_imm(dbg_info *dbgi, ir_node *block, x86_insn_size_t size, const amd64_imm64_t *imm);
698 
699 extern ir_op *op_amd64_mov_store;
700 
701 static inline bool is_amd64_mov_store(ir_node const *const n)
702 {
703  return get_irn_op(n) == op_amd64_mov_store;
704 }
705 
709 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);
710 
711 extern ir_op *op_amd64_movd;
712 
713 static inline bool is_amd64_movd(ir_node const *const n)
714 {
715  return get_irn_op(n) == op_amd64_movd;
716 }
717 
721 ir_node *new_bd_amd64_movd(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, x86_addr_t addr);
722 
723 extern ir_op *op_amd64_movd_gp_xmm;
724 
725 static inline bool is_amd64_movd_gp_xmm(ir_node const *const n)
726 {
727  return get_irn_op(n) == op_amd64_movd_gp_xmm;
728 }
729 
733 ir_node *new_bd_amd64_movd_gp_xmm(dbg_info *dbgi, ir_node *block, ir_node *operand, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
734 
735 extern ir_op *op_amd64_movd_xmm_gp;
736 
737 static inline bool is_amd64_movd_xmm_gp(ir_node const *const n)
738 {
739  return get_irn_op(n) == op_amd64_movd_xmm_gp;
740 }
741 
745 ir_node *new_bd_amd64_movd_xmm_gp(dbg_info *dbgi, ir_node *block, ir_node *operand, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
746 
747 extern ir_op *op_amd64_movdqa;
748 
749 static inline bool is_amd64_movdqa(ir_node const *const n)
750 {
751  return get_irn_op(n) == op_amd64_movdqa;
752 }
753 
757 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, x86_addr_t addr);
758 
759 extern ir_op *op_amd64_movdqu;
760 
761 static inline bool is_amd64_movdqu(ir_node const *const n)
762 {
763  return get_irn_op(n) == op_amd64_movdqu;
764 }
765 
769 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, x86_addr_t addr);
770 
771 extern ir_op *op_amd64_movdqu_store;
772 
773 static inline bool is_amd64_movdqu_store(ir_node const *const n)
774 {
775  return get_irn_op(n) == op_amd64_movdqu_store;
776 }
777 
781 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);
782 
783 extern ir_op *op_amd64_movs;
784 
785 static inline bool is_amd64_movs(ir_node const *const n)
786 {
787  return get_irn_op(n) == op_amd64_movs;
788 }
789 
793 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
794 
795 extern ir_op *op_amd64_movs_store_xmm;
796 
797 static inline bool is_amd64_movs_store_xmm(ir_node const *const n)
798 {
799  return get_irn_op(n) == op_amd64_movs_store_xmm;
800 }
801 
805 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);
806 
807 extern ir_op *op_amd64_movs_xmm;
808 
809 static inline bool is_amd64_movs_xmm(ir_node const *const n)
810 {
811  return get_irn_op(n) == op_amd64_movs_xmm;
812 }
813 
817 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
818 
819 extern ir_op *op_amd64_mul;
820 
821 static inline bool is_amd64_mul(ir_node const *const n)
822 {
823  return get_irn_op(n) == op_amd64_mul;
824 }
825 
829 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, x86_insn_size_t size, amd64_op_mode_t op_mode, x86_addr_t addr);
830 
831 extern ir_op *op_amd64_muls;
832 
833 static inline bool is_amd64_muls(ir_node const *const n)
834 {
835  return get_irn_op(n) == op_amd64_muls;
836 }
837 
841 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);
842 
843 extern ir_op *op_amd64_neg;
844 
845 static inline bool is_amd64_neg(ir_node const *const n)
846 {
847  return get_irn_op(n) == op_amd64_neg;
848 }
849 
853 ir_node *new_bd_amd64_neg(dbg_info *dbgi, ir_node *block, ir_node *val, x86_insn_size_t size);
854 
855 extern ir_op *op_amd64_not;
856 
857 static inline bool is_amd64_not(ir_node const *const n)
858 {
859  return get_irn_op(n) == op_amd64_not;
860 }
861 
865 ir_node *new_bd_amd64_not(dbg_info *dbgi, ir_node *block, ir_node *val, x86_insn_size_t size);
866 
867 extern ir_op *op_amd64_or;
868 
869 static inline bool is_amd64_or(ir_node const *const n)
870 {
871  return get_irn_op(n) == op_amd64_or;
872 }
873 
877 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);
878 
879 extern ir_op *op_amd64_pop_am;
880 
881 static inline bool is_amd64_pop_am(ir_node const *const n)
882 {
883  return get_irn_op(n) == op_amd64_pop_am;
884 }
885 
889 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, x86_insn_size_t size, x86_addr_t addr);
890 
891 extern ir_op *op_amd64_punpckldq;
892 
893 static inline bool is_amd64_punpckldq(ir_node const *const n)
894 {
895  return get_irn_op(n) == op_amd64_punpckldq;
896 }
897 
901 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);
902 
903 extern ir_op *op_amd64_push_am;
904 
905 static inline bool is_amd64_push_am(ir_node const *const n)
906 {
907  return get_irn_op(n) == op_amd64_push_am;
908 }
909 
913 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, x86_insn_size_t size, x86_addr_t addr);
914 
915 extern ir_op *op_amd64_push_reg;
916 
917 static inline bool is_amd64_push_reg(ir_node const *const n)
918 {
919  return get_irn_op(n) == op_amd64_push_reg;
920 }
921 
925 ir_node *new_bd_amd64_push_reg(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *mem, ir_node *val, x86_insn_size_t size);
926 
927 extern ir_op *op_amd64_ret;
928 
929 static inline bool is_amd64_ret(ir_node const *const n)
930 {
931  return get_irn_op(n) == op_amd64_ret;
932 }
933 
937 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);
938 
939 extern ir_op *op_amd64_sar;
940 
941 static inline bool is_amd64_sar(ir_node const *const n)
942 {
943  return get_irn_op(n) == op_amd64_sar;
944 }
945 
949 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);
950 
951 extern ir_op *op_amd64_sbb;
952 
953 static inline bool is_amd64_sbb(ir_node const *const n)
954 {
955  return get_irn_op(n) == op_amd64_sbb;
956 }
957 
961 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);
962 
963 extern ir_op *op_amd64_setcc;
964 
965 static inline bool is_amd64_setcc(ir_node const *const n)
966 {
967  return get_irn_op(n) == op_amd64_setcc;
968 }
969 
973 ir_node *new_bd_amd64_setcc(dbg_info *dbgi, ir_node *block, ir_node *eflags, x86_condition_code_t cc);
974 
975 extern ir_op *op_amd64_shl;
976 
977 static inline bool is_amd64_shl(ir_node const *const n)
978 {
979  return get_irn_op(n) == op_amd64_shl;
980 }
981 
985 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);
986 
987 extern ir_op *op_amd64_shr;
988 
989 static inline bool is_amd64_shr(ir_node const *const n)
990 {
991  return get_irn_op(n) == op_amd64_shr;
992 }
993 
997 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);
998 
999 extern ir_op *op_amd64_sub;
1000 
1001 static inline bool is_amd64_sub(ir_node const *const n)
1002 {
1003  return get_irn_op(n) == op_amd64_sub;
1004 }
1005 
1009 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);
1010 
1011 extern ir_op *op_amd64_sub_sp;
1012 
1013 static inline bool is_amd64_sub_sp(ir_node const *const n)
1014 {
1015  return get_irn_op(n) == op_amd64_sub_sp;
1016 }
1017 
1021 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);
1022 
1023 extern ir_op *op_amd64_subpd;
1024 
1025 static inline bool is_amd64_subpd(ir_node const *const n)
1026 {
1027  return get_irn_op(n) == op_amd64_subpd;
1028 }
1029 
1033 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);
1034 
1035 extern ir_op *op_amd64_subs;
1036 
1037 static inline bool is_amd64_subs(ir_node const *const n)
1038 {
1039  return get_irn_op(n) == op_amd64_subs;
1040 }
1041 
1045 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);
1046 
1047 extern ir_op *op_amd64_ucomis;
1048 
1049 static inline bool is_amd64_ucomis(ir_node const *const n)
1050 {
1051  return get_irn_op(n) == op_amd64_ucomis;
1052 }
1053 
1057 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);
1058 
1059 extern ir_op *op_amd64_xor;
1060 
1061 static inline bool is_amd64_xor(ir_node const *const n)
1062 {
1063  return get_irn_op(n) == op_amd64_xor;
1064 }
1065 
1069 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);
1070 
1071 extern ir_op *op_amd64_xor_0;
1072 
1073 static inline bool is_amd64_xor_0(ir_node const *const n)
1074 {
1075  return get_irn_op(n) == op_amd64_xor_0;
1076 }
1077 
1081 ir_node *new_bd_amd64_xor_0(dbg_info *dbgi, ir_node *block, x86_insn_size_t size);
1082 
1083 extern ir_op *op_amd64_xorp;
1084 
1085 static inline bool is_amd64_xorp(ir_node const *const n)
1086 {
1087  return get_irn_op(n) == op_amd64_xorp;
1088 }
1089 
1093 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);
1094 
1095 extern ir_op *op_amd64_xorp_0;
1096 
1097 static inline bool is_amd64_xorp_0(ir_node const *const n)
1098 {
1099  return get_irn_op(n) == op_amd64_xorp_0;
1100 }
1101 
1105 ir_node *new_bd_amd64_xorp_0(dbg_info *dbgi, ir_node *block, x86_insn_size_t size);
1106 
1107 
1108 typedef enum pn_amd64_add {
1109  pn_amd64_add_res = 0,
1110  pn_amd64_add_flags = 1,
1111  pn_amd64_add_M = 2,
1112 } pn_amd64_add;
1113 
1114 typedef enum pn_amd64_adds {
1115  pn_amd64_adds_res = 0,
1116  pn_amd64_adds_none = 1,
1117  pn_amd64_adds_M = 2,
1118 } pn_amd64_adds;
1119 
1120 typedef enum pn_amd64_and {
1121  pn_amd64_and_res = 0,
1122  pn_amd64_and_flags = 1,
1123  pn_amd64_and_M = 2,
1124 } pn_amd64_and;
1125 
1126 typedef enum pn_amd64_bsf {
1127  pn_amd64_bsf_res = 0,
1128  pn_amd64_bsf_flags = 1,
1129  pn_amd64_bsf_M = 2,
1130 } pn_amd64_bsf;
1131 
1132 typedef enum pn_amd64_bsr {
1133  pn_amd64_bsr_res = 0,
1134  pn_amd64_bsr_flags = 1,
1135  pn_amd64_bsr_M = 2,
1136 } pn_amd64_bsr;
1137 
1138 typedef enum pn_amd64_call {
1139  pn_amd64_call_M = 0,
1140  pn_amd64_call_stack = 1,
1141  pn_amd64_call_flags = 2,
1142  pn_amd64_call_first_result = 3,
1143 } pn_amd64_call;
1144 
1145 typedef enum n_amd64_cltd {
1146  n_amd64_cltd_val = 0,
1147 } n_amd64_cltd;
1148 
1149 typedef enum pn_amd64_cmp {
1150  pn_amd64_cmp_dummy = 0,
1151  pn_amd64_cmp_flags = 1,
1152  pn_amd64_cmp_M = 2,
1153 } pn_amd64_cmp;
1154 
1155 typedef enum pn_amd64_cmpxchg {
1156  pn_amd64_cmpxchg_res = 0,
1157  pn_amd64_cmpxchg_flags = 1,
1158  pn_amd64_cmpxchg_M = 2,
1159 } pn_amd64_cmpxchg;
1160 
1161 typedef enum n_amd64_cqto {
1162  n_amd64_cqto_val = 0,
1163 } n_amd64_cqto;
1164 
1165 typedef enum pn_amd64_cvtsd2ss {
1166  pn_amd64_cvtsd2ss_res = 0,
1167  pn_amd64_cvtsd2ss_none = 1,
1168  pn_amd64_cvtsd2ss_M = 2,
1169 } pn_amd64_cvtsd2ss;
1170 
1171 typedef enum pn_amd64_cvtsi2sd {
1172  pn_amd64_cvtsi2sd_res = 0,
1173  pn_amd64_cvtsi2sd_none = 1,
1174  pn_amd64_cvtsi2sd_M = 2,
1175 } pn_amd64_cvtsi2sd;
1176 
1177 typedef enum pn_amd64_cvtsi2ss {
1178  pn_amd64_cvtsi2ss_res = 0,
1179  pn_amd64_cvtsi2ss_none = 1,
1180  pn_amd64_cvtsi2ss_M = 2,
1181 } pn_amd64_cvtsi2ss;
1182 
1183 typedef enum pn_amd64_cvtss2sd {
1184  pn_amd64_cvtss2sd_res = 0,
1185  pn_amd64_cvtss2sd_none = 1,
1186  pn_amd64_cvtss2sd_M = 2,
1187 } pn_amd64_cvtss2sd;
1188 
1189 typedef enum pn_amd64_cvttsd2si {
1190  pn_amd64_cvttsd2si_res = 0,
1191  pn_amd64_cvttsd2si_none = 1,
1192  pn_amd64_cvttsd2si_M = 2,
1193 } pn_amd64_cvttsd2si;
1194 
1195 typedef enum pn_amd64_cvttss2si {
1196  pn_amd64_cvttss2si_res = 0,
1197  pn_amd64_cvttss2si_none = 1,
1198  pn_amd64_cvttss2si_M = 2,
1199 } pn_amd64_cvttss2si;
1200 
1201 typedef enum pn_amd64_div {
1202  pn_amd64_div_res_div = 0,
1203  pn_amd64_div_flags = 1,
1204  pn_amd64_div_M = 2,
1205  pn_amd64_div_res_mod = 3,
1206 } pn_amd64_div;
1207 
1208 typedef enum pn_amd64_divs {
1209  pn_amd64_divs_res = 0,
1210  pn_amd64_divs_none = 1,
1211  pn_amd64_divs_M = 2,
1212 } pn_amd64_divs;
1213 
1214 typedef enum n_amd64_fadd {
1215  n_amd64_fadd_left = 0,
1216  n_amd64_fadd_right = 1,
1217 } n_amd64_fadd;
1218 
1219 typedef enum n_amd64_fchs {
1220  n_amd64_fchs_value = 0,
1221 } n_amd64_fchs;
1222 
1223 typedef enum n_amd64_fdiv {
1224  n_amd64_fdiv_left = 0,
1225  n_amd64_fdiv_right = 1,
1226 } n_amd64_fdiv;
1227 
1228 typedef enum n_amd64_fdup {
1229  n_amd64_fdup_val = 0,
1230 } n_amd64_fdup;
1231 
1232 typedef enum pn_amd64_fild {
1233  pn_amd64_fild_res = 0,
1234  pn_amd64_fild_unused = 1,
1235  pn_amd64_fild_M = 2,
1236 } pn_amd64_fild;
1237 
1238 typedef enum pn_amd64_fisttp {
1239  pn_amd64_fisttp_M = 0,
1240 } pn_amd64_fisttp;
1241 
1242 typedef enum pn_amd64_fld {
1243  pn_amd64_fld_res = 0,
1244  pn_amd64_fld_unused = 1,
1245  pn_amd64_fld_M = 2,
1246 } pn_amd64_fld;
1247 
1248 typedef enum pn_amd64_fld1 {
1249  pn_amd64_fld1_res = 0,
1250 } pn_amd64_fld1;
1251 
1252 typedef enum pn_amd64_fldz {
1253  pn_amd64_fldz_res = 0,
1254 } pn_amd64_fldz;
1255 
1256 typedef enum n_amd64_fmul {
1257  n_amd64_fmul_left = 0,
1258  n_amd64_fmul_right = 1,
1259 } n_amd64_fmul;
1260 
1261 typedef enum pn_amd64_fst {
1262  pn_amd64_fst_M = 0,
1263 } pn_amd64_fst;
1264 
1265 typedef enum pn_amd64_fstp {
1266  pn_amd64_fstp_M = 0,
1267 } pn_amd64_fstp;
1268 
1269 typedef enum n_amd64_fsub {
1270  n_amd64_fsub_left = 0,
1271  n_amd64_fsub_right = 1,
1272 } n_amd64_fsub;
1273 
1274 typedef enum pn_amd64_fucomi {
1275  pn_amd64_fucomi_flags = 0,
1276 } pn_amd64_fucomi;
1277 
1278 typedef enum n_amd64_fucomi {
1279  n_amd64_fucomi_left = 0,
1280  n_amd64_fucomi_right = 1,
1281 } n_amd64_fucomi;
1282 
1283 typedef enum pn_amd64_haddpd {
1284  pn_amd64_haddpd_res = 0,
1285  pn_amd64_haddpd_none = 1,
1286  pn_amd64_haddpd_M = 2,
1287 } pn_amd64_haddpd;
1288 
1289 typedef enum pn_amd64_idiv {
1290  pn_amd64_idiv_res_div = 0,
1291  pn_amd64_idiv_flags = 1,
1292  pn_amd64_idiv_M = 2,
1293  pn_amd64_idiv_res_mod = 3,
1294 } pn_amd64_idiv;
1295 
1296 typedef enum pn_amd64_ijmp {
1297  pn_amd64_ijmp_X = 0,
1298  pn_amd64_ijmp_unused = 1,
1299  pn_amd64_ijmp_M = 2,
1300 } pn_amd64_ijmp;
1301 
1302 typedef enum pn_amd64_imul {
1303  pn_amd64_imul_res = 0,
1304  pn_amd64_imul_flags = 1,
1305  pn_amd64_imul_M = 2,
1306 } pn_amd64_imul;
1307 
1308 typedef enum pn_amd64_imul_1op {
1309  pn_amd64_imul_1op_res_low = 0,
1310  pn_amd64_imul_1op_flags = 1,
1311  pn_amd64_imul_1op_M = 2,
1312  pn_amd64_imul_1op_res_high = 3,
1313 } pn_amd64_imul_1op;
1314 
1315 typedef enum pn_amd64_jcc {
1316  pn_amd64_jcc_false = 0,
1317  pn_amd64_jcc_true = 1,
1318 } pn_amd64_jcc;
1319 
1320 typedef enum n_amd64_jcc {
1321  n_amd64_jcc_eflags = 0,
1322 } n_amd64_jcc;
1323 
1324 typedef enum pn_amd64_l_haddpd {
1325  pn_amd64_l_haddpd_res = 0,
1326 } pn_amd64_l_haddpd;
1327 
1328 typedef enum n_amd64_l_haddpd {
1329  n_amd64_l_haddpd_arg0 = 0,
1330  n_amd64_l_haddpd_arg1 = 1,
1331 } n_amd64_l_haddpd;
1332 
1333 typedef enum pn_amd64_l_punpckldq {
1334  pn_amd64_l_punpckldq_res = 0,
1335 } pn_amd64_l_punpckldq;
1336 
1337 typedef enum n_amd64_l_punpckldq {
1338  n_amd64_l_punpckldq_arg0 = 0,
1339  n_amd64_l_punpckldq_arg1 = 1,
1340 } n_amd64_l_punpckldq;
1341 
1342 typedef enum pn_amd64_l_subpd {
1343  pn_amd64_l_subpd_res = 0,
1344 } pn_amd64_l_subpd;
1345 
1346 typedef enum n_amd64_l_subpd {
1347  n_amd64_l_subpd_arg0 = 0,
1348  n_amd64_l_subpd_arg1 = 1,
1349 } n_amd64_l_subpd;
1350 
1351 typedef enum pn_amd64_lea {
1352  pn_amd64_lea_res = 0,
1353 } pn_amd64_lea;
1354 
1355 typedef enum pn_amd64_leave {
1356  pn_amd64_leave_frame = 0,
1357  pn_amd64_leave_M = 1,
1358  pn_amd64_leave_stack = 2,
1359 } pn_amd64_leave;
1360 
1361 typedef enum pn_amd64_mov_gp {
1362  pn_amd64_mov_gp_res = 0,
1363  pn_amd64_mov_gp_unused = 1,
1364  pn_amd64_mov_gp_M = 2,
1365 } pn_amd64_mov_gp;
1366 
1367 typedef enum pn_amd64_mov_imm {
1368  pn_amd64_mov_imm_res = 0,
1369 } pn_amd64_mov_imm;
1370 
1371 typedef enum pn_amd64_mov_store {
1372  pn_amd64_mov_store_M = 0,
1373 } pn_amd64_mov_store;
1374 
1375 typedef enum pn_amd64_movd {
1376  pn_amd64_movd_res = 0,
1377  pn_amd64_movd_none = 1,
1378  pn_amd64_movd_M = 2,
1379 } pn_amd64_movd;
1380 
1381 typedef enum pn_amd64_movd_gp_xmm {
1382  pn_amd64_movd_gp_xmm_res = 0,
1383 } pn_amd64_movd_gp_xmm;
1384 
1385 typedef enum n_amd64_movd_gp_xmm {
1386  n_amd64_movd_gp_xmm_operand = 0,
1387 } n_amd64_movd_gp_xmm;
1388 
1389 typedef enum pn_amd64_movd_xmm_gp {
1390  pn_amd64_movd_xmm_gp_res = 0,
1391 } pn_amd64_movd_xmm_gp;
1392 
1393 typedef enum n_amd64_movd_xmm_gp {
1394  n_amd64_movd_xmm_gp_operand = 0,
1395 } n_amd64_movd_xmm_gp;
1396 
1397 typedef enum pn_amd64_movdqa {
1398  pn_amd64_movdqa_res = 0,
1399  pn_amd64_movdqa_none = 1,
1400  pn_amd64_movdqa_M = 2,
1401 } pn_amd64_movdqa;
1402 
1403 typedef enum pn_amd64_movdqu {
1404  pn_amd64_movdqu_res = 0,
1405  pn_amd64_movdqu_none = 1,
1406  pn_amd64_movdqu_M = 2,
1407 } pn_amd64_movdqu;
1408 
1409 typedef enum pn_amd64_movdqu_store {
1410  pn_amd64_movdqu_store_M = 0,
1411 } pn_amd64_movdqu_store;
1412 
1413 typedef enum pn_amd64_movs {
1414  pn_amd64_movs_res = 0,
1415  pn_amd64_movs_unused = 1,
1416  pn_amd64_movs_M = 2,
1417 } pn_amd64_movs;
1418 
1419 typedef enum pn_amd64_movs_store_xmm {
1420  pn_amd64_movs_store_xmm_M = 0,
1421 } pn_amd64_movs_store_xmm;
1422 
1423 typedef enum pn_amd64_movs_xmm {
1424  pn_amd64_movs_xmm_res = 0,
1425  pn_amd64_movs_xmm_none = 1,
1426  pn_amd64_movs_xmm_M = 2,
1427 } pn_amd64_movs_xmm;
1428 
1429 typedef enum pn_amd64_mul {
1430  pn_amd64_mul_res_low = 0,
1431  pn_amd64_mul_flags = 1,
1432  pn_amd64_mul_M = 2,
1433  pn_amd64_mul_res_high = 3,
1434 } pn_amd64_mul;
1435 
1436 typedef enum pn_amd64_muls {
1437  pn_amd64_muls_res = 0,
1438  pn_amd64_muls_none = 1,
1439  pn_amd64_muls_M = 2,
1440 } pn_amd64_muls;
1441 
1442 typedef enum pn_amd64_neg {
1443  pn_amd64_neg_res = 0,
1444  pn_amd64_neg_flags = 1,
1445 } pn_amd64_neg;
1446 
1447 typedef enum n_amd64_neg {
1448  n_amd64_neg_val = 0,
1449 } n_amd64_neg;
1450 
1451 typedef enum pn_amd64_not {
1452  pn_amd64_not_res = 0,
1453  pn_amd64_not_flags = 1,
1454 } pn_amd64_not;
1455 
1456 typedef enum n_amd64_not {
1457  n_amd64_not_val = 0,
1458 } n_amd64_not;
1459 
1460 typedef enum pn_amd64_or {
1461  pn_amd64_or_res = 0,
1462  pn_amd64_or_flags = 1,
1463  pn_amd64_or_M = 2,
1464 } pn_amd64_or;
1465 
1466 typedef enum pn_amd64_pop_am {
1467  pn_amd64_pop_am_stack = 0,
1468  pn_amd64_pop_am_M = 1,
1469 } pn_amd64_pop_am;
1470 
1471 typedef enum pn_amd64_punpckldq {
1472  pn_amd64_punpckldq_res = 0,
1473  pn_amd64_punpckldq_none = 1,
1474  pn_amd64_punpckldq_M = 2,
1475 } pn_amd64_punpckldq;
1476 
1477 typedef enum pn_amd64_push_am {
1478  pn_amd64_push_am_stack = 0,
1479  pn_amd64_push_am_M = 1,
1480 } pn_amd64_push_am;
1481 
1482 typedef enum pn_amd64_push_reg {
1483  pn_amd64_push_reg_stack = 0,
1484  pn_amd64_push_reg_M = 1,
1485 } pn_amd64_push_reg;
1486 
1487 typedef enum n_amd64_push_reg {
1488  n_amd64_push_reg_stack = 0,
1489  n_amd64_push_reg_mem = 1,
1490  n_amd64_push_reg_val = 2,
1491 } n_amd64_push_reg;
1492 
1493 typedef enum n_amd64_ret {
1494  n_amd64_ret_mem = 0,
1495  n_amd64_ret_stack = 1,
1496  n_amd64_ret_first_result = 2,
1497 } n_amd64_ret;
1498 
1499 typedef enum pn_amd64_sar {
1500  pn_amd64_sar_res = 0,
1501  pn_amd64_sar_flags = 1,
1502 } pn_amd64_sar;
1503 
1504 typedef enum pn_amd64_sbb {
1505  pn_amd64_sbb_res = 0,
1506  pn_amd64_sbb_flags = 1,
1507  pn_amd64_sbb_M = 2,
1508 } pn_amd64_sbb;
1509 
1510 typedef enum pn_amd64_setcc {
1511  pn_amd64_setcc_res = 0,
1512 } pn_amd64_setcc;
1513 
1514 typedef enum n_amd64_setcc {
1515  n_amd64_setcc_eflags = 0,
1516 } n_amd64_setcc;
1517 
1518 typedef enum pn_amd64_shl {
1519  pn_amd64_shl_res = 0,
1520  pn_amd64_shl_flags = 1,
1521 } pn_amd64_shl;
1522 
1523 typedef enum pn_amd64_shr {
1524  pn_amd64_shr_res = 0,
1525  pn_amd64_shr_flags = 1,
1526 } pn_amd64_shr;
1527 
1528 typedef enum pn_amd64_sub {
1529  pn_amd64_sub_res = 0,
1530  pn_amd64_sub_flags = 1,
1531  pn_amd64_sub_M = 2,
1532 } pn_amd64_sub;
1533 
1534 typedef enum pn_amd64_sub_sp {
1535  pn_amd64_sub_sp_stack = 0,
1536  pn_amd64_sub_sp_addr = 1,
1537  pn_amd64_sub_sp_M = 2,
1538 } pn_amd64_sub_sp;
1539 
1540 typedef enum n_amd64_sub_sp {
1541  n_amd64_sub_sp_stack = 0,
1542 } n_amd64_sub_sp;
1543 
1544 typedef enum pn_amd64_subpd {
1545  pn_amd64_subpd_res = 0,
1546  pn_amd64_subpd_none = 1,
1547  pn_amd64_subpd_M = 2,
1548 } pn_amd64_subpd;
1549 
1550 typedef enum pn_amd64_subs {
1551  pn_amd64_subs_res = 0,
1552  pn_amd64_subs_none = 1,
1553  pn_amd64_subs_M = 2,
1554 } pn_amd64_subs;
1555 
1556 typedef enum pn_amd64_ucomis {
1557  pn_amd64_ucomis_dummy = 0,
1558  pn_amd64_ucomis_flags = 1,
1559  pn_amd64_ucomis_M = 2,
1560 } pn_amd64_ucomis;
1561 
1562 typedef enum pn_amd64_xor {
1563  pn_amd64_xor_res = 0,
1564  pn_amd64_xor_flags = 1,
1565  pn_amd64_xor_M = 2,
1566 } pn_amd64_xor;
1567 
1568 typedef enum pn_amd64_xor_0 {
1569  pn_amd64_xor_0_res = 0,
1570  pn_amd64_xor_0_flags = 1,
1571 } pn_amd64_xor_0;
1572 
1573 typedef enum pn_amd64_xorp {
1574  pn_amd64_xorp_res = 0,
1575  pn_amd64_xorp_none = 1,
1576  pn_amd64_xorp_M = 2,
1577 } pn_amd64_xorp;
1578 
1579 typedef enum pn_amd64_xorp_0 {
1580  pn_amd64_xorp_0_res = 0,
1581 } pn_amd64_xorp_0;
1582 
1583 
1584 #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
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
struct ir_entity ir_entity
Entity.
Definition: firm_types.h:83
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53