libFirm
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
gen_ia32_emitter.c
1 
9 #include "beemitter.h"
10 #include "gen_ia32_emitter.h"
11 #include "ia32_new_nodes.h"
12 #include "ia32_emitter.h"
13 
14 static void emit_ia32_Adc(ir_node const *const node)
15 {
16  ia32_emitf(node, "adc%M %B");
17 }
18 
19 static void emit_ia32_Add(ir_node const *const node)
20 {
21  ia32_emitf(node, "add%M %B");
22 }
23 
24 static void emit_ia32_AddMem(ir_node const *const node)
25 {
26  ia32_emitf(node, "add%M %S3, %AM");
27 }
28 
29 static void emit_ia32_AddSP(ir_node const *const node)
30 {
31  ia32_emitf(node, "addl %B");
32 }
33 
34 static void emit_ia32_And(ir_node const *const node)
35 {
36  ia32_emitf(node, "and%M %B");
37 }
38 
39 static void emit_ia32_AndMem(ir_node const *const node)
40 {
41  ia32_emitf(node, "and%M %S3, %AM");
42 }
43 
44 static void emit_ia32_Breakpoint(ir_node const *const node)
45 {
46  ia32_emitf(node, "int3");
47 }
48 
49 static void emit_ia32_Bsf(ir_node const *const node)
50 {
51  ia32_emitf(node, "bsf%M %AS3, %D0");
52 }
53 
54 static void emit_ia32_Bsr(ir_node const *const node)
55 {
56  ia32_emitf(node, "bsr%M %AS3, %D0");
57 }
58 
59 static void emit_ia32_Bswap(ir_node const *const node)
60 {
61  ia32_emitf(node, "bswap%M %D0");
62 }
63 
64 static void emit_ia32_Bswap16(ir_node const *const node)
65 {
66  ia32_emitf(node, "xchg %<D0, %>D0");
67 }
68 
69 static void emit_ia32_Bt(ir_node const *const node)
70 {
71  ia32_emitf(node, "bt%M %S1, %S0");
72 }
73 
74 static void emit_ia32_CMovcc(ir_node const *const node)
75 {
76  ia32_emitf(node, "cmov%P5 %AS4, %D0");
77 }
78 
79 static void emit_ia32_Call(ir_node const *const node)
80 {
81  ia32_emitf(node, "call %*AS3");
82 }
83 
84 static void emit_ia32_Cltd(ir_node const *const node)
85 {
86  ia32_emitf(node, "cltd");
87 }
88 
89 static void emit_ia32_Cmc(ir_node const *const node)
90 {
91  ia32_emitf(node, "cmc");
92 }
93 
94 static void emit_ia32_Cmp(ir_node const *const node)
95 {
96  ia32_emitf(node, "cmp%M %B");
97 }
98 
99 static void emit_ia32_CmpXChgMem(ir_node const *const node)
100 {
101  ia32_emitf(node, "lock cmpxchg%M %S4, %AM");
102 }
103 
104 static void emit_ia32_Const(ir_node const *const node)
105 {
106  ia32_emitf(node, "movl %I, %D0");
107 }
108 
109 static void emit_ia32_Conv_I2I(ir_node const *const node)
110 {
111  ia32_emitf(node, "mov%#Ml %AS3, %#D0");
112 }
113 
114 static void emit_ia32_CopyEbpEsp(ir_node const *const node)
115 {
116  ia32_emitf(node, "movl %S0, %D0");
117 }
118 
119 static void emit_ia32_CvtSI2SD(ir_node const *const node)
120 {
121  ia32_emitf(node, "cvtsi2sd %AS3, %D0");
122 }
123 
124 static void emit_ia32_CvtSI2SS(ir_node const *const node)
125 {
126  ia32_emitf(node, "cvtsi2ss %AS3, %D0");
127 }
128 
129 static void emit_ia32_Cwtl(ir_node const *const node)
130 {
131  ia32_emitf(node, "cwtl");
132 }
133 
134 static void emit_ia32_Dec(ir_node const *const node)
135 {
136  ia32_emitf(node, "dec%M %D0");
137 }
138 
139 static void emit_ia32_DecMem(ir_node const *const node)
140 {
141  ia32_emitf(node, "dec%M %AM");
142 }
143 
144 static void emit_ia32_Div(ir_node const *const node)
145 {
146  ia32_emitf(node, "div%M %AS3");
147 }
148 
149 static void emit_ia32_Enter(ir_node const *const node)
150 {
151  ia32_emitf(node, "enter");
152 }
153 
154 static void emit_ia32_FldCW(ir_node const *const node)
155 {
156  ia32_emitf(node, "fldcw %AM");
157 }
158 
159 static void emit_ia32_FnstCW(ir_node const *const node)
160 {
161  ia32_emitf(node, "fnstcw %AM");
162 }
163 
164 static void emit_ia32_FtstFnstsw(ir_node const *const node)
165 {
166  ia32_emitf(node, "ftst");
167  ia32_emitf(node, "fnstsw %%ax");
168 }
169 
170 static void emit_ia32_FucomFnstsw(ir_node const *const node)
171 {
172  ia32_emitf(node, "fucom%FP %F0");
173  ia32_emitf(node, "fnstsw %%ax");
174 }
175 
176 static void emit_ia32_Fucomi(ir_node const *const node)
177 {
178  ia32_emitf(node, "fucom%FPi %F0");
179 }
180 
181 static void emit_ia32_FucomppFnstsw(ir_node const *const node)
182 {
183  ia32_emitf(node, "fucompp");
184  ia32_emitf(node, "fnstsw %%ax");
185 }
186 
187 static void emit_ia32_IDiv(ir_node const *const node)
188 {
189  ia32_emitf(node, "idiv%M %AS3");
190 }
191 
192 static void emit_ia32_IJmp(ir_node const *const node)
193 {
194  ia32_emitf(node, "jmp %*AS3");
195 }
196 
197 static void emit_ia32_IMul(ir_node const *const node)
198 {
199  ia32_emitf(node, "imul%M %B");
200 }
201 
202 static void emit_ia32_IMul1OP(ir_node const *const node)
203 {
204  ia32_emitf(node, "imul%M %AS4");
205 }
206 
207 static void emit_ia32_IMulImm(ir_node const *const node)
208 {
209  ia32_emitf(node, "imul%M %S4, %AS3, %D0");
210 }
211 
212 static void emit_ia32_Inc(ir_node const *const node)
213 {
214  ia32_emitf(node, "inc%M %D0");
215 }
216 
217 static void emit_ia32_IncMem(ir_node const *const node)
218 {
219  ia32_emitf(node, "inc%M %AM");
220 }
221 
222 static void emit_ia32_Inport(ir_node const *const node)
223 {
224  ia32_emitf(node, "in%M %^S0, %D0");
225 }
226 
227 static void emit_ia32_LdTls(ir_node const *const node)
228 {
229  ia32_emitf(node, "movl %%gs:0, %D0");
230 }
231 
232 static void emit_ia32_Lea(ir_node const *const node)
233 {
234  ia32_emitf(node, "leal %AM, %D0");
235 }
236 
237 static void emit_ia32_Leave(ir_node const *const node)
238 {
239  ia32_emitf(node, "leave");
240 }
241 
242 static void emit_ia32_Load(ir_node const *const node)
243 {
244  ia32_emitf(node, "mov%#Ml %AM, %#D0");
245 }
246 
247 static void emit_ia32_Mul(ir_node const *const node)
248 {
249  ia32_emitf(node, "mul%M %AS4");
250 }
251 
252 static void emit_ia32_Neg(ir_node const *const node)
253 {
254  ia32_emitf(node, "neg%M %D0");
255 }
256 
257 static void emit_ia32_NegMem(ir_node const *const node)
258 {
259  ia32_emitf(node, "neg%M %AM");
260 }
261 
262 static void emit_ia32_Not(ir_node const *const node)
263 {
264  ia32_emitf(node, "not%M %D0");
265 }
266 
267 static void emit_ia32_NotMem(ir_node const *const node)
268 {
269  ia32_emitf(node, "not%M %AM");
270 }
271 
272 static void emit_ia32_Or(ir_node const *const node)
273 {
274  ia32_emitf(node, "or%M %B");
275 }
276 
277 static void emit_ia32_OrMem(ir_node const *const node)
278 {
279  ia32_emitf(node, "or%M %S3, %AM");
280 }
281 
282 static void emit_ia32_Outport(ir_node const *const node)
283 {
284  ia32_emitf(node, "out%M %S1, %^S0");
285 }
286 
287 static void emit_ia32_Pop(ir_node const *const node)
288 {
289  ia32_emitf(node, "pop%M %D0");
290 }
291 
292 static void emit_ia32_PopMem(ir_node const *const node)
293 {
294  ia32_emitf(node, "pop%M %AM");
295 }
296 
297 static void emit_ia32_Popcnt(ir_node const *const node)
298 {
299  ia32_emitf(node, "popcnt%M %AS3, %D0");
300 }
301 
302 static void emit_ia32_Prefetch(ir_node const *const node)
303 {
304  ia32_emitf(node, "prefetch %AM");
305 }
306 
307 static void emit_ia32_Prefetch0(ir_node const *const node)
308 {
309  ia32_emitf(node, "prefetcht0 %AM");
310 }
311 
312 static void emit_ia32_Prefetch1(ir_node const *const node)
313 {
314  ia32_emitf(node, "prefetcht1 %AM");
315 }
316 
317 static void emit_ia32_Prefetch2(ir_node const *const node)
318 {
319  ia32_emitf(node, "prefetcht2 %AM");
320 }
321 
322 static void emit_ia32_PrefetchNTA(ir_node const *const node)
323 {
324  ia32_emitf(node, "prefetchnta %AM");
325 }
326 
327 static void emit_ia32_PrefetchW(ir_node const *const node)
328 {
329  ia32_emitf(node, "prefetchw %AM");
330 }
331 
332 static void emit_ia32_Push(ir_node const *const node)
333 {
334  ia32_emitf(node, "push%M %AS3");
335 }
336 
337 static void emit_ia32_PushEax(ir_node const *const node)
338 {
339  ia32_emitf(node, "pushl %%eax");
340 }
341 
342 static void emit_ia32_Rol(ir_node const *const node)
343 {
344  ia32_emitf(node, "rol%M %<,S1 %D0");
345 }
346 
347 static void emit_ia32_RolMem(ir_node const *const node)
348 {
349  ia32_emitf(node, "rol%M %<,S3 %AM");
350 }
351 
352 static void emit_ia32_Ror(ir_node const *const node)
353 {
354  ia32_emitf(node, "ror%M %<,S1 %D0");
355 }
356 
357 static void emit_ia32_RorMem(ir_node const *const node)
358 {
359  ia32_emitf(node, "ror%M %<,S3 %AM");
360 }
361 
362 static void emit_ia32_Sahf(ir_node const *const node)
363 {
364  ia32_emitf(node, "sahf");
365 }
366 
367 static void emit_ia32_Sar(ir_node const *const node)
368 {
369  ia32_emitf(node, "sar%M %<,S1 %D0");
370 }
371 
372 static void emit_ia32_SarMem(ir_node const *const node)
373 {
374  ia32_emitf(node, "sar%M %<,S3 %AM");
375 }
376 
377 static void emit_ia32_Sbb(ir_node const *const node)
378 {
379  ia32_emitf(node, "sbb%M %B");
380 }
381 
382 static void emit_ia32_Sbb0(ir_node const *const node)
383 {
384  ia32_emitf(node, "sbb%M %D0, %D0");
385 }
386 
387 static void emit_ia32_SetccMem(ir_node const *const node)
388 {
389  ia32_emitf(node, "set%P3 %AM");
390 }
391 
392 static void emit_ia32_Shl(ir_node const *const node)
393 {
394  ia32_emitf(node, "shl%M %<,S1 %D0");
395 }
396 
397 static void emit_ia32_ShlD(ir_node const *const node)
398 {
399  ia32_emitf(node, "shld%M %<S2, %S1, %D0");
400 }
401 
402 static void emit_ia32_ShlMem(ir_node const *const node)
403 {
404  ia32_emitf(node, "shl%M %<,S3 %AM");
405 }
406 
407 static void emit_ia32_Shr(ir_node const *const node)
408 {
409  ia32_emitf(node, "shr%M %<,S1 %D0");
410 }
411 
412 static void emit_ia32_ShrD(ir_node const *const node)
413 {
414  ia32_emitf(node, "shrd%M %<S2, %S1, %D0");
415 }
416 
417 static void emit_ia32_ShrMem(ir_node const *const node)
418 {
419  ia32_emitf(node, "shr%M %<,S3 %AM");
420 }
421 
422 static void emit_ia32_Stc(ir_node const *const node)
423 {
424  ia32_emitf(node, "stc");
425 }
426 
427 static void emit_ia32_Store(ir_node const *const node)
428 {
429  ia32_emitf(node, "mov%M %S3, %AM");
430 }
431 
432 static void emit_ia32_Sub(ir_node const *const node)
433 {
434  ia32_emitf(node, "sub%M %B");
435 }
436 
437 static void emit_ia32_SubMem(ir_node const *const node)
438 {
439  ia32_emitf(node, "sub%M %S3, %AM");
440 }
441 
442 static void emit_ia32_SubSP(ir_node const *const node)
443 {
444  ia32_emitf(node, "subl %B");
445  ia32_emitf(node, "movl %%esp, %D1");
446 }
447 
448 static void emit_ia32_Test(ir_node const *const node)
449 {
450  ia32_emitf(node, "test%M %B");
451 }
452 
453 static void emit_ia32_UD2(ir_node const *const node)
454 {
455  ia32_emitf(node, "ud2");
456 }
457 
458 static void emit_ia32_Ucomi(ir_node const *const node)
459 {
460  ia32_emitf(node, "ucomis%FX %B");
461 }
462 
463 static void emit_ia32_Xor(ir_node const *const node)
464 {
465  ia32_emitf(node, "xor%M %B");
466 }
467 
468 static void emit_ia32_Xor0(ir_node const *const node)
469 {
470  ia32_emitf(node, "xor%M %D0, %D0");
471 }
472 
473 static void emit_ia32_XorHighLow(ir_node const *const node)
474 {
475  ia32_emitf(node, "xorb %>D0, %<D0");
476 }
477 
478 static void emit_ia32_XorMem(ir_node const *const node)
479 {
480  ia32_emitf(node, "xor%M %S3, %AM");
481 }
482 
483 static void emit_ia32_emms(ir_node const *const node)
484 {
485  ia32_emitf(node, "emms");
486 }
487 
488 static void emit_ia32_fabs(ir_node const *const node)
489 {
490  ia32_emitf(node, "fabs");
491 }
492 
493 static void emit_ia32_fadd(ir_node const *const node)
494 {
495  ia32_emitf(node, "fadd%FP%FM %AF");
496 }
497 
498 static void emit_ia32_fchs(ir_node const *const node)
499 {
500  ia32_emitf(node, "fchs");
501 }
502 
503 static void emit_ia32_fdiv(ir_node const *const node)
504 {
505  ia32_emitf(node, "fdiv%FR%FP%FM %AF");
506 }
507 
508 static void emit_ia32_fdup(ir_node const *const node)
509 {
510  ia32_emitf(node, "fld %F0");
511 }
512 
513 static void emit_ia32_femms(ir_node const *const node)
514 {
515  ia32_emitf(node, "femms");
516 }
517 
518 static void emit_ia32_ffreep(ir_node const *const node)
519 {
520  ia32_emitf(node, "ffreep %F0");
521 }
522 
523 static void emit_ia32_fild(ir_node const *const node)
524 {
525  ia32_emitf(node, "fild%FM %AM");
526 }
527 
528 static void emit_ia32_fist(ir_node const *const node)
529 {
530  ia32_emitf(node, "fist%FP%FM %AM");
531 }
532 
533 static void emit_ia32_fistp(ir_node const *const node)
534 {
535  ia32_emitf(node, "fistp%FM %AM");
536 }
537 
538 static void emit_ia32_fisttp(ir_node const *const node)
539 {
540  ia32_emitf(node, "fisttp%FM %AM");
541 }
542 
543 static void emit_ia32_fld(ir_node const *const node)
544 {
545  ia32_emitf(node, "fld%FM %AM");
546 }
547 
548 static void emit_ia32_fld1(ir_node const *const node)
549 {
550  ia32_emitf(node, "fld1");
551 }
552 
553 static void emit_ia32_fldl2e(ir_node const *const node)
554 {
555  ia32_emitf(node, "fldl2e");
556 }
557 
558 static void emit_ia32_fldl2t(ir_node const *const node)
559 {
560  ia32_emitf(node, "fldll2t");
561 }
562 
563 static void emit_ia32_fldlg2(ir_node const *const node)
564 {
565  ia32_emitf(node, "fldlg2");
566 }
567 
568 static void emit_ia32_fldln2(ir_node const *const node)
569 {
570  ia32_emitf(node, "fldln2");
571 }
572 
573 static void emit_ia32_fldpi(ir_node const *const node)
574 {
575  ia32_emitf(node, "fldpi");
576 }
577 
578 static void emit_ia32_fldz(ir_node const *const node)
579 {
580  ia32_emitf(node, "fldz");
581 }
582 
583 static void emit_ia32_fmul(ir_node const *const node)
584 {
585  ia32_emitf(node, "fmul%FP%FM %AF");
586 }
587 
588 static void emit_ia32_fpop(ir_node const *const node)
589 {
590  ia32_emitf(node, "fstp %F0");
591 }
592 
593 static void emit_ia32_fst(ir_node const *const node)
594 {
595  ia32_emitf(node, "fst%FP%FM %AM");
596 }
597 
598 static void emit_ia32_fstp(ir_node const *const node)
599 {
600  ia32_emitf(node, "fstp%FM %AM");
601 }
602 
603 static void emit_ia32_fsub(ir_node const *const node)
604 {
605  ia32_emitf(node, "fsub%FR%FP%FM %AF");
606 }
607 
608 static void emit_ia32_fxch(ir_node const *const node)
609 {
610  ia32_emitf(node, "fxch %F0");
611 }
612 
613 static void emit_ia32_xAdd(ir_node const *const node)
614 {
615  ia32_emitf(node, "adds%FX %B");
616 }
617 
618 static void emit_ia32_xAllOnes(ir_node const *const node)
619 {
620  ia32_emitf(node, "pcmpeqb %D0, %D0");
621 }
622 
623 static void emit_ia32_xAnd(ir_node const *const node)
624 {
625  ia32_emitf(node, "andp%FX %B");
626 }
627 
628 static void emit_ia32_xAndNot(ir_node const *const node)
629 {
630  ia32_emitf(node, "andnp%FX %B");
631 }
632 
633 static void emit_ia32_xDiv(ir_node const *const node)
634 {
635  ia32_emitf(node, "divs%FX %B");
636 }
637 
638 static void emit_ia32_xLoad(ir_node const *const node)
639 {
640  ia32_emitf(node, "movs%FX %AM, %D0");
641 }
642 
643 static void emit_ia32_xMax(ir_node const *const node)
644 {
645  ia32_emitf(node, "maxs%FX %B");
646 }
647 
648 static void emit_ia32_xMin(ir_node const *const node)
649 {
650  ia32_emitf(node, "mins%FX %B");
651 }
652 
653 static void emit_ia32_xMovd(ir_node const *const node)
654 {
655  ia32_emitf(node, "movd %S0, %D0");
656 }
657 
658 static void emit_ia32_xMul(ir_node const *const node)
659 {
660  ia32_emitf(node, "muls%FX %B");
661 }
662 
663 static void emit_ia32_xOr(ir_node const *const node)
664 {
665  ia32_emitf(node, "orp%FX %B");
666 }
667 
668 static void emit_ia32_xPslld(ir_node const *const node)
669 {
670  ia32_emitf(node, "pslld %S1, %D0");
671 }
672 
673 static void emit_ia32_xPsllq(ir_node const *const node)
674 {
675  ia32_emitf(node, "psllq %S1, %D0");
676 }
677 
678 static void emit_ia32_xPsrld(ir_node const *const node)
679 {
680  ia32_emitf(node, "psrld %S1, %D0");
681 }
682 
683 static void emit_ia32_xPzero(ir_node const *const node)
684 {
685  ia32_emitf(node, "pxor %D0, %D0");
686 }
687 
688 static void emit_ia32_xStore(ir_node const *const node)
689 {
690  ia32_emitf(node, "movs%FX %S3, %AM");
691 }
692 
693 static void emit_ia32_xSub(ir_node const *const node)
694 {
695  ia32_emitf(node, "subs%FX %B");
696 }
697 
698 static void emit_ia32_xXor(ir_node const *const node)
699 {
700  ia32_emitf(node, "xorp%FX %B");
701 }
702 
703 static void emit_ia32_xZero(ir_node const *const node)
704 {
705  ia32_emitf(node, "xorp%FX %D0, %D0");
706 }
707 
708 static void emit_ia32_xxLoad(ir_node const *const node)
709 {
710  ia32_emitf(node, "movdqu %D0, %AM");
711 }
712 
713 static void emit_ia32_xxStore(ir_node const *const node)
714 {
715  ia32_emitf(node, "movdqu %S3, %AM");
716 }
717 
718 
719 
724 void ia32_register_spec_emitters(void)
725 {
726  be_set_emitter(op_ia32_Adc, emit_ia32_Adc);
727  be_set_emitter(op_ia32_Add, emit_ia32_Add);
728  be_set_emitter(op_ia32_AddMem, emit_ia32_AddMem);
729  be_set_emitter(op_ia32_AddSP, emit_ia32_AddSP);
730  be_set_emitter(op_ia32_And, emit_ia32_And);
731  be_set_emitter(op_ia32_AndMem, emit_ia32_AndMem);
732  be_set_emitter(op_ia32_Breakpoint, emit_ia32_Breakpoint);
733  be_set_emitter(op_ia32_Bsf, emit_ia32_Bsf);
734  be_set_emitter(op_ia32_Bsr, emit_ia32_Bsr);
735  be_set_emitter(op_ia32_Bswap, emit_ia32_Bswap);
736  be_set_emitter(op_ia32_Bswap16, emit_ia32_Bswap16);
737  be_set_emitter(op_ia32_Bt, emit_ia32_Bt);
738  be_set_emitter(op_ia32_CMovcc, emit_ia32_CMovcc);
739  be_set_emitter(op_ia32_Call, emit_ia32_Call);
740  be_set_emitter(op_ia32_Cltd, emit_ia32_Cltd);
741  be_set_emitter(op_ia32_Cmc, emit_ia32_Cmc);
742  be_set_emitter(op_ia32_Cmp, emit_ia32_Cmp);
743  be_set_emitter(op_ia32_CmpXChgMem, emit_ia32_CmpXChgMem);
744  be_set_emitter(op_ia32_Const, emit_ia32_Const);
745  be_set_emitter(op_ia32_Conv_I2I, emit_ia32_Conv_I2I);
746  be_set_emitter(op_ia32_CopyEbpEsp, emit_ia32_CopyEbpEsp);
747  be_set_emitter(op_ia32_CvtSI2SD, emit_ia32_CvtSI2SD);
748  be_set_emitter(op_ia32_CvtSI2SS, emit_ia32_CvtSI2SS);
749  be_set_emitter(op_ia32_Cwtl, emit_ia32_Cwtl);
750  be_set_emitter(op_ia32_Dec, emit_ia32_Dec);
751  be_set_emitter(op_ia32_DecMem, emit_ia32_DecMem);
752  be_set_emitter(op_ia32_Div, emit_ia32_Div);
753  be_set_emitter(op_ia32_Enter, emit_ia32_Enter);
754  be_set_emitter(op_ia32_FldCW, emit_ia32_FldCW);
755  be_set_emitter(op_ia32_FnstCW, emit_ia32_FnstCW);
756  be_set_emitter(op_ia32_FnstCWNOP, be_emit_nothing);
757  be_set_emitter(op_ia32_FtstFnstsw, emit_ia32_FtstFnstsw);
758  be_set_emitter(op_ia32_FucomFnstsw, emit_ia32_FucomFnstsw);
759  be_set_emitter(op_ia32_Fucomi, emit_ia32_Fucomi);
760  be_set_emitter(op_ia32_FucomppFnstsw, emit_ia32_FucomppFnstsw);
761  be_set_emitter(op_ia32_IDiv, emit_ia32_IDiv);
762  be_set_emitter(op_ia32_IJmp, emit_ia32_IJmp);
763  be_set_emitter(op_ia32_IMul, emit_ia32_IMul);
764  be_set_emitter(op_ia32_IMul1OP, emit_ia32_IMul1OP);
765  be_set_emitter(op_ia32_IMulImm, emit_ia32_IMulImm);
766  be_set_emitter(op_ia32_Inc, emit_ia32_Inc);
767  be_set_emitter(op_ia32_IncMem, emit_ia32_IncMem);
768  be_set_emitter(op_ia32_Inport, emit_ia32_Inport);
769  be_set_emitter(op_ia32_LdTls, emit_ia32_LdTls);
770  be_set_emitter(op_ia32_Lea, emit_ia32_Lea);
771  be_set_emitter(op_ia32_Leave, emit_ia32_Leave);
772  be_set_emitter(op_ia32_Load, emit_ia32_Load);
773  be_set_emitter(op_ia32_Mul, emit_ia32_Mul);
774  be_set_emitter(op_ia32_Neg, emit_ia32_Neg);
775  be_set_emitter(op_ia32_NegMem, emit_ia32_NegMem);
776  be_set_emitter(op_ia32_Not, emit_ia32_Not);
777  be_set_emitter(op_ia32_NotMem, emit_ia32_NotMem);
778  be_set_emitter(op_ia32_Or, emit_ia32_Or);
779  be_set_emitter(op_ia32_OrMem, emit_ia32_OrMem);
780  be_set_emitter(op_ia32_Outport, emit_ia32_Outport);
781  be_set_emitter(op_ia32_Pop, emit_ia32_Pop);
782  be_set_emitter(op_ia32_PopMem, emit_ia32_PopMem);
783  be_set_emitter(op_ia32_Popcnt, emit_ia32_Popcnt);
784  be_set_emitter(op_ia32_Prefetch, emit_ia32_Prefetch);
785  be_set_emitter(op_ia32_Prefetch0, emit_ia32_Prefetch0);
786  be_set_emitter(op_ia32_Prefetch1, emit_ia32_Prefetch1);
787  be_set_emitter(op_ia32_Prefetch2, emit_ia32_Prefetch2);
788  be_set_emitter(op_ia32_PrefetchNTA, emit_ia32_PrefetchNTA);
789  be_set_emitter(op_ia32_PrefetchW, emit_ia32_PrefetchW);
790  be_set_emitter(op_ia32_Push, emit_ia32_Push);
791  be_set_emitter(op_ia32_PushEax, emit_ia32_PushEax);
792  be_set_emitter(op_ia32_Rol, emit_ia32_Rol);
793  be_set_emitter(op_ia32_RolMem, emit_ia32_RolMem);
794  be_set_emitter(op_ia32_Ror, emit_ia32_Ror);
795  be_set_emitter(op_ia32_RorMem, emit_ia32_RorMem);
796  be_set_emitter(op_ia32_Sahf, emit_ia32_Sahf);
797  be_set_emitter(op_ia32_Sar, emit_ia32_Sar);
798  be_set_emitter(op_ia32_SarMem, emit_ia32_SarMem);
799  be_set_emitter(op_ia32_Sbb, emit_ia32_Sbb);
800  be_set_emitter(op_ia32_Sbb0, emit_ia32_Sbb0);
801  be_set_emitter(op_ia32_SetccMem, emit_ia32_SetccMem);
802  be_set_emitter(op_ia32_Shl, emit_ia32_Shl);
803  be_set_emitter(op_ia32_ShlD, emit_ia32_ShlD);
804  be_set_emitter(op_ia32_ShlMem, emit_ia32_ShlMem);
805  be_set_emitter(op_ia32_Shr, emit_ia32_Shr);
806  be_set_emitter(op_ia32_ShrD, emit_ia32_ShrD);
807  be_set_emitter(op_ia32_ShrMem, emit_ia32_ShrMem);
808  be_set_emitter(op_ia32_Stc, emit_ia32_Stc);
809  be_set_emitter(op_ia32_Store, emit_ia32_Store);
810  be_set_emitter(op_ia32_Sub, emit_ia32_Sub);
811  be_set_emitter(op_ia32_SubMem, emit_ia32_SubMem);
812  be_set_emitter(op_ia32_SubSP, emit_ia32_SubSP);
813  be_set_emitter(op_ia32_Test, emit_ia32_Test);
814  be_set_emitter(op_ia32_UD2, emit_ia32_UD2);
815  be_set_emitter(op_ia32_Ucomi, emit_ia32_Ucomi);
816  be_set_emitter(op_ia32_Unknown, be_emit_nothing);
817  be_set_emitter(op_ia32_Xor, emit_ia32_Xor);
818  be_set_emitter(op_ia32_Xor0, emit_ia32_Xor0);
819  be_set_emitter(op_ia32_XorHighLow, emit_ia32_XorHighLow);
820  be_set_emitter(op_ia32_XorMem, emit_ia32_XorMem);
821  be_set_emitter(op_ia32_emms, emit_ia32_emms);
822  be_set_emitter(op_ia32_fabs, emit_ia32_fabs);
823  be_set_emitter(op_ia32_fadd, emit_ia32_fadd);
824  be_set_emitter(op_ia32_fchs, emit_ia32_fchs);
825  be_set_emitter(op_ia32_fdiv, emit_ia32_fdiv);
826  be_set_emitter(op_ia32_fdup, emit_ia32_fdup);
827  be_set_emitter(op_ia32_femms, emit_ia32_femms);
828  be_set_emitter(op_ia32_ffreep, emit_ia32_ffreep);
829  be_set_emitter(op_ia32_fild, emit_ia32_fild);
830  be_set_emitter(op_ia32_fist, emit_ia32_fist);
831  be_set_emitter(op_ia32_fistp, emit_ia32_fistp);
832  be_set_emitter(op_ia32_fisttp, emit_ia32_fisttp);
833  be_set_emitter(op_ia32_fld, emit_ia32_fld);
834  be_set_emitter(op_ia32_fld1, emit_ia32_fld1);
835  be_set_emitter(op_ia32_fldl2e, emit_ia32_fldl2e);
836  be_set_emitter(op_ia32_fldl2t, emit_ia32_fldl2t);
837  be_set_emitter(op_ia32_fldlg2, emit_ia32_fldlg2);
838  be_set_emitter(op_ia32_fldln2, emit_ia32_fldln2);
839  be_set_emitter(op_ia32_fldpi, emit_ia32_fldpi);
840  be_set_emitter(op_ia32_fldz, emit_ia32_fldz);
841  be_set_emitter(op_ia32_fmul, emit_ia32_fmul);
842  be_set_emitter(op_ia32_fpop, emit_ia32_fpop);
843  be_set_emitter(op_ia32_fst, emit_ia32_fst);
844  be_set_emitter(op_ia32_fstp, emit_ia32_fstp);
845  be_set_emitter(op_ia32_fsub, emit_ia32_fsub);
846  be_set_emitter(op_ia32_fxch, emit_ia32_fxch);
847  be_set_emitter(op_ia32_xAdd, emit_ia32_xAdd);
848  be_set_emitter(op_ia32_xAllOnes, emit_ia32_xAllOnes);
849  be_set_emitter(op_ia32_xAnd, emit_ia32_xAnd);
850  be_set_emitter(op_ia32_xAndNot, emit_ia32_xAndNot);
851  be_set_emitter(op_ia32_xDiv, emit_ia32_xDiv);
852  be_set_emitter(op_ia32_xLoad, emit_ia32_xLoad);
853  be_set_emitter(op_ia32_xMax, emit_ia32_xMax);
854  be_set_emitter(op_ia32_xMin, emit_ia32_xMin);
855  be_set_emitter(op_ia32_xMovd, emit_ia32_xMovd);
856  be_set_emitter(op_ia32_xMul, emit_ia32_xMul);
857  be_set_emitter(op_ia32_xOr, emit_ia32_xOr);
858  be_set_emitter(op_ia32_xPslld, emit_ia32_xPslld);
859  be_set_emitter(op_ia32_xPsllq, emit_ia32_xPsllq);
860  be_set_emitter(op_ia32_xPsrld, emit_ia32_xPsrld);
861  be_set_emitter(op_ia32_xPzero, emit_ia32_xPzero);
862  be_set_emitter(op_ia32_xStore, emit_ia32_xStore);
863  be_set_emitter(op_ia32_xSub, emit_ia32_xSub);
864  be_set_emitter(op_ia32_xUnknown, be_emit_nothing);
865  be_set_emitter(op_ia32_xXor, emit_ia32_xXor);
866  be_set_emitter(op_ia32_xZero, emit_ia32_xZero);
867  be_set_emitter(op_ia32_xxLoad, emit_ia32_xxLoad);
868  be_set_emitter(op_ia32_xxStore, emit_ia32_xxStore);
869 
870 }
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53