10 #include "gen_ia32_emitter.h"
11 #include "ia32_new_nodes.h"
12 #include "ia32_emitter.h"
14 static void emit_ia32_Adc(
ir_node const *
const node)
16 ia32_emitf(node,
"adc%M %B");
19 static void emit_ia32_Add(
ir_node const *
const node)
21 ia32_emitf(node,
"add%M %B");
24 static void emit_ia32_AddMem(
ir_node const *
const node)
26 ia32_emitf(node,
"add%M %S3, %AM");
29 static void emit_ia32_AddSP(
ir_node const *
const node)
31 ia32_emitf(node,
"addl %B");
34 static void emit_ia32_And(
ir_node const *
const node)
36 ia32_emitf(node,
"and%M %B");
39 static void emit_ia32_AndMem(
ir_node const *
const node)
41 ia32_emitf(node,
"and%M %S3, %AM");
44 static void emit_ia32_Breakpoint(
ir_node const *
const node)
46 ia32_emitf(node,
"int3");
49 static void emit_ia32_Bsf(
ir_node const *
const node)
51 ia32_emitf(node,
"bsf%M %AS3, %D0");
54 static void emit_ia32_Bsr(
ir_node const *
const node)
56 ia32_emitf(node,
"bsr%M %AS3, %D0");
59 static void emit_ia32_Bswap(
ir_node const *
const node)
61 ia32_emitf(node,
"bswap%M %D0");
64 static void emit_ia32_Bswap16(
ir_node const *
const node)
66 ia32_emitf(node,
"xchg %<D0, %>D0");
69 static void emit_ia32_Bt(
ir_node const *
const node)
71 ia32_emitf(node,
"bt%M %S1, %S0");
74 static void emit_ia32_CMovcc(
ir_node const *
const node)
76 ia32_emitf(node,
"cmov%P5 %AS4, %D0");
79 static void emit_ia32_Call(
ir_node const *
const node)
81 ia32_emitf(node,
"call %*AS3");
84 static void emit_ia32_Cltd(
ir_node const *
const node)
86 ia32_emitf(node,
"cltd");
89 static void emit_ia32_Cmc(
ir_node const *
const node)
91 ia32_emitf(node,
"cmc");
94 static void emit_ia32_Cmp(
ir_node const *
const node)
96 ia32_emitf(node,
"cmp%M %B");
99 static void emit_ia32_CmpXChgMem(
ir_node const *
const node)
101 ia32_emitf(node,
"lock cmpxchg%M %S4, %AM");
104 static void emit_ia32_Const(
ir_node const *
const node)
106 ia32_emitf(node,
"movl %I, %D0");
109 static void emit_ia32_Conv_I2I(
ir_node const *
const node)
111 ia32_emitf(node,
"mov%#Ml %AS3, %#D0");
114 static void emit_ia32_CopyEbpEsp(
ir_node const *
const node)
116 ia32_emitf(node,
"movl %S0, %D0");
119 static void emit_ia32_CvtSI2SD(
ir_node const *
const node)
121 ia32_emitf(node,
"cvtsi2sd %AS3, %D0");
124 static void emit_ia32_CvtSI2SS(
ir_node const *
const node)
126 ia32_emitf(node,
"cvtsi2ss %AS3, %D0");
129 static void emit_ia32_Cwtl(
ir_node const *
const node)
131 ia32_emitf(node,
"cwtl");
134 static void emit_ia32_Dec(
ir_node const *
const node)
136 ia32_emitf(node,
"dec%M %D0");
139 static void emit_ia32_DecMem(
ir_node const *
const node)
141 ia32_emitf(node,
"dec%M %AM");
144 static void emit_ia32_Div(
ir_node const *
const node)
146 ia32_emitf(node,
"div%M %AS3");
149 static void emit_ia32_Enter(
ir_node const *
const node)
151 ia32_emitf(node,
"enter");
154 static void emit_ia32_FldCW(
ir_node const *
const node)
156 ia32_emitf(node,
"fldcw %AM");
159 static void emit_ia32_FnstCW(
ir_node const *
const node)
161 ia32_emitf(node,
"fnstcw %AM");
164 static void emit_ia32_FtstFnstsw(
ir_node const *
const node)
166 ia32_emitf(node,
"ftst");
167 ia32_emitf(node,
"fnstsw %%ax");
170 static void emit_ia32_FucomFnstsw(
ir_node const *
const node)
172 ia32_emitf(node,
"fucom%FP %F0");
173 ia32_emitf(node,
"fnstsw %%ax");
176 static void emit_ia32_Fucomi(
ir_node const *
const node)
178 ia32_emitf(node,
"fucom%FPi %F0");
181 static void emit_ia32_FucomppFnstsw(
ir_node const *
const node)
183 ia32_emitf(node,
"fucompp");
184 ia32_emitf(node,
"fnstsw %%ax");
187 static void emit_ia32_IDiv(
ir_node const *
const node)
189 ia32_emitf(node,
"idiv%M %AS3");
192 static void emit_ia32_IJmp(
ir_node const *
const node)
194 ia32_emitf(node,
"jmp %*AS3");
197 static void emit_ia32_IMul(
ir_node const *
const node)
199 ia32_emitf(node,
"imul%M %B");
202 static void emit_ia32_IMul1OP(
ir_node const *
const node)
204 ia32_emitf(node,
"imul%M %AS4");
207 static void emit_ia32_IMulImm(
ir_node const *
const node)
209 ia32_emitf(node,
"imul%M %S4, %AS3, %D0");
212 static void emit_ia32_Inc(
ir_node const *
const node)
214 ia32_emitf(node,
"inc%M %D0");
217 static void emit_ia32_IncMem(
ir_node const *
const node)
219 ia32_emitf(node,
"inc%M %AM");
222 static void emit_ia32_Inport(
ir_node const *
const node)
224 ia32_emitf(node,
"in%M %^S0, %D0");
227 static void emit_ia32_LdTls(
ir_node const *
const node)
229 ia32_emitf(node,
"movl %%gs:0, %D0");
232 static void emit_ia32_Lea(
ir_node const *
const node)
234 ia32_emitf(node,
"leal %AM, %D0");
237 static void emit_ia32_Leave(
ir_node const *
const node)
239 ia32_emitf(node,
"leave");
242 static void emit_ia32_Load(
ir_node const *
const node)
244 ia32_emitf(node,
"mov%#Ml %AM, %#D0");
247 static void emit_ia32_Mul(
ir_node const *
const node)
249 ia32_emitf(node,
"mul%M %AS4");
252 static void emit_ia32_Neg(
ir_node const *
const node)
254 ia32_emitf(node,
"neg%M %D0");
257 static void emit_ia32_NegMem(
ir_node const *
const node)
259 ia32_emitf(node,
"neg%M %AM");
262 static void emit_ia32_Not(
ir_node const *
const node)
264 ia32_emitf(node,
"not%M %D0");
267 static void emit_ia32_NotMem(
ir_node const *
const node)
269 ia32_emitf(node,
"not%M %AM");
272 static void emit_ia32_Or(
ir_node const *
const node)
274 ia32_emitf(node,
"or%M %B");
277 static void emit_ia32_OrMem(
ir_node const *
const node)
279 ia32_emitf(node,
"or%M %S3, %AM");
282 static void emit_ia32_Outport(
ir_node const *
const node)
284 ia32_emitf(node,
"out%M %S1, %^S0");
287 static void emit_ia32_Pop(
ir_node const *
const node)
289 ia32_emitf(node,
"pop%M %D0");
292 static void emit_ia32_PopMem(
ir_node const *
const node)
294 ia32_emitf(node,
"pop%M %AM");
297 static void emit_ia32_Popcnt(
ir_node const *
const node)
299 ia32_emitf(node,
"popcnt%M %AS3, %D0");
302 static void emit_ia32_Prefetch(
ir_node const *
const node)
304 ia32_emitf(node,
"prefetch %AM");
307 static void emit_ia32_Prefetch0(
ir_node const *
const node)
309 ia32_emitf(node,
"prefetcht0 %AM");
312 static void emit_ia32_Prefetch1(
ir_node const *
const node)
314 ia32_emitf(node,
"prefetcht1 %AM");
317 static void emit_ia32_Prefetch2(
ir_node const *
const node)
319 ia32_emitf(node,
"prefetcht2 %AM");
322 static void emit_ia32_PrefetchNTA(
ir_node const *
const node)
324 ia32_emitf(node,
"prefetchnta %AM");
327 static void emit_ia32_PrefetchW(
ir_node const *
const node)
329 ia32_emitf(node,
"prefetchw %AM");
332 static void emit_ia32_Push(
ir_node const *
const node)
334 ia32_emitf(node,
"push%M %AS3");
337 static void emit_ia32_PushEax(
ir_node const *
const node)
339 ia32_emitf(node,
"pushl %%eax");
342 static void emit_ia32_Rol(
ir_node const *
const node)
344 ia32_emitf(node,
"rol%M %<,S1 %D0");
347 static void emit_ia32_RolMem(
ir_node const *
const node)
349 ia32_emitf(node,
"rol%M %<,S3 %AM");
352 static void emit_ia32_Ror(
ir_node const *
const node)
354 ia32_emitf(node,
"ror%M %<,S1 %D0");
357 static void emit_ia32_RorMem(
ir_node const *
const node)
359 ia32_emitf(node,
"ror%M %<,S3 %AM");
362 static void emit_ia32_Sahf(
ir_node const *
const node)
364 ia32_emitf(node,
"sahf");
367 static void emit_ia32_Sar(
ir_node const *
const node)
369 ia32_emitf(node,
"sar%M %<,S1 %D0");
372 static void emit_ia32_SarMem(
ir_node const *
const node)
374 ia32_emitf(node,
"sar%M %<,S3 %AM");
377 static void emit_ia32_Sbb(
ir_node const *
const node)
379 ia32_emitf(node,
"sbb%M %B");
382 static void emit_ia32_Sbb0(
ir_node const *
const node)
384 ia32_emitf(node,
"sbb%M %D0, %D0");
387 static void emit_ia32_SetccMem(
ir_node const *
const node)
389 ia32_emitf(node,
"set%P3 %AM");
392 static void emit_ia32_Shl(
ir_node const *
const node)
394 ia32_emitf(node,
"shl%M %<,S1 %D0");
397 static void emit_ia32_ShlD(
ir_node const *
const node)
399 ia32_emitf(node,
"shld%M %<S2, %S1, %D0");
402 static void emit_ia32_ShlMem(
ir_node const *
const node)
404 ia32_emitf(node,
"shl%M %<,S3 %AM");
407 static void emit_ia32_Shr(
ir_node const *
const node)
409 ia32_emitf(node,
"shr%M %<,S1 %D0");
412 static void emit_ia32_ShrD(
ir_node const *
const node)
414 ia32_emitf(node,
"shrd%M %<S2, %S1, %D0");
417 static void emit_ia32_ShrMem(
ir_node const *
const node)
419 ia32_emitf(node,
"shr%M %<,S3 %AM");
422 static void emit_ia32_Stc(
ir_node const *
const node)
424 ia32_emitf(node,
"stc");
427 static void emit_ia32_Store(
ir_node const *
const node)
429 ia32_emitf(node,
"mov%M %S3, %AM");
432 static void emit_ia32_Sub(
ir_node const *
const node)
434 ia32_emitf(node,
"sub%M %B");
437 static void emit_ia32_SubMem(
ir_node const *
const node)
439 ia32_emitf(node,
"sub%M %S3, %AM");
442 static void emit_ia32_SubSP(
ir_node const *
const node)
444 ia32_emitf(node,
"subl %B");
445 ia32_emitf(node,
"movl %%esp, %D1");
448 static void emit_ia32_Test(
ir_node const *
const node)
450 ia32_emitf(node,
"test%M %B");
453 static void emit_ia32_UD2(
ir_node const *
const node)
455 ia32_emitf(node,
"ud2");
458 static void emit_ia32_Ucomi(
ir_node const *
const node)
460 ia32_emitf(node,
"ucomis%FX %B");
463 static void emit_ia32_Xor(
ir_node const *
const node)
465 ia32_emitf(node,
"xor%M %B");
468 static void emit_ia32_Xor0(
ir_node const *
const node)
470 ia32_emitf(node,
"xor%M %D0, %D0");
473 static void emit_ia32_XorHighLow(
ir_node const *
const node)
475 ia32_emitf(node,
"xorb %>D0, %<D0");
478 static void emit_ia32_XorMem(
ir_node const *
const node)
480 ia32_emitf(node,
"xor%M %S3, %AM");
483 static void emit_ia32_emms(
ir_node const *
const node)
485 ia32_emitf(node,
"emms");
488 static void emit_ia32_fabs(
ir_node const *
const node)
490 ia32_emitf(node,
"fabs");
493 static void emit_ia32_fadd(
ir_node const *
const node)
495 ia32_emitf(node,
"fadd%FP%FM %AF");
498 static void emit_ia32_fchs(
ir_node const *
const node)
500 ia32_emitf(node,
"fchs");
503 static void emit_ia32_fdiv(
ir_node const *
const node)
505 ia32_emitf(node,
"fdiv%FR%FP%FM %AF");
508 static void emit_ia32_fdup(
ir_node const *
const node)
510 ia32_emitf(node,
"fld %F0");
513 static void emit_ia32_femms(
ir_node const *
const node)
515 ia32_emitf(node,
"femms");
518 static void emit_ia32_ffreep(
ir_node const *
const node)
520 ia32_emitf(node,
"ffreep %F0");
523 static void emit_ia32_fild(
ir_node const *
const node)
525 ia32_emitf(node,
"fild%FM %AM");
528 static void emit_ia32_fist(
ir_node const *
const node)
530 ia32_emitf(node,
"fist%FP%FM %AM");
533 static void emit_ia32_fistp(
ir_node const *
const node)
535 ia32_emitf(node,
"fistp%FM %AM");
538 static void emit_ia32_fisttp(
ir_node const *
const node)
540 ia32_emitf(node,
"fisttp%FM %AM");
543 static void emit_ia32_fld(
ir_node const *
const node)
545 ia32_emitf(node,
"fld%FM %AM");
548 static void emit_ia32_fld1(
ir_node const *
const node)
550 ia32_emitf(node,
"fld1");
553 static void emit_ia32_fldl2e(
ir_node const *
const node)
555 ia32_emitf(node,
"fldl2e");
558 static void emit_ia32_fldl2t(
ir_node const *
const node)
560 ia32_emitf(node,
"fldll2t");
563 static void emit_ia32_fldlg2(
ir_node const *
const node)
565 ia32_emitf(node,
"fldlg2");
568 static void emit_ia32_fldln2(
ir_node const *
const node)
570 ia32_emitf(node,
"fldln2");
573 static void emit_ia32_fldpi(
ir_node const *
const node)
575 ia32_emitf(node,
"fldpi");
578 static void emit_ia32_fldz(
ir_node const *
const node)
580 ia32_emitf(node,
"fldz");
583 static void emit_ia32_fmul(
ir_node const *
const node)
585 ia32_emitf(node,
"fmul%FP%FM %AF");
588 static void emit_ia32_fpop(
ir_node const *
const node)
590 ia32_emitf(node,
"fstp %F0");
593 static void emit_ia32_fst(
ir_node const *
const node)
595 ia32_emitf(node,
"fst%FP%FM %AM");
598 static void emit_ia32_fstp(
ir_node const *
const node)
600 ia32_emitf(node,
"fstp%FM %AM");
603 static void emit_ia32_fsub(
ir_node const *
const node)
605 ia32_emitf(node,
"fsub%FR%FP%FM %AF");
608 static void emit_ia32_fxch(
ir_node const *
const node)
610 ia32_emitf(node,
"fxch %F0");
613 static void emit_ia32_xAdd(
ir_node const *
const node)
615 ia32_emitf(node,
"adds%FX %B");
618 static void emit_ia32_xAllOnes(
ir_node const *
const node)
620 ia32_emitf(node,
"pcmpeqb %D0, %D0");
623 static void emit_ia32_xAnd(
ir_node const *
const node)
625 ia32_emitf(node,
"andp%FX %B");
628 static void emit_ia32_xAndNot(
ir_node const *
const node)
630 ia32_emitf(node,
"andnp%FX %B");
633 static void emit_ia32_xDiv(
ir_node const *
const node)
635 ia32_emitf(node,
"divs%FX %B");
638 static void emit_ia32_xLoad(
ir_node const *
const node)
640 ia32_emitf(node,
"movs%FX %AM, %D0");
643 static void emit_ia32_xMax(
ir_node const *
const node)
645 ia32_emitf(node,
"maxs%FX %B");
648 static void emit_ia32_xMin(
ir_node const *
const node)
650 ia32_emitf(node,
"mins%FX %B");
653 static void emit_ia32_xMovd(
ir_node const *
const node)
655 ia32_emitf(node,
"movd %S0, %D0");
658 static void emit_ia32_xMul(
ir_node const *
const node)
660 ia32_emitf(node,
"muls%FX %B");
663 static void emit_ia32_xOr(
ir_node const *
const node)
665 ia32_emitf(node,
"orp%FX %B");
668 static void emit_ia32_xPslld(
ir_node const *
const node)
670 ia32_emitf(node,
"pslld %S1, %D0");
673 static void emit_ia32_xPsllq(
ir_node const *
const node)
675 ia32_emitf(node,
"psllq %S1, %D0");
678 static void emit_ia32_xPsrld(
ir_node const *
const node)
680 ia32_emitf(node,
"psrld %S1, %D0");
683 static void emit_ia32_xPzero(
ir_node const *
const node)
685 ia32_emitf(node,
"pxor %D0, %D0");
688 static void emit_ia32_xStore(
ir_node const *
const node)
690 ia32_emitf(node,
"movs%FX %S3, %AM");
693 static void emit_ia32_xSub(
ir_node const *
const node)
695 ia32_emitf(node,
"subs%FX %B");
698 static void emit_ia32_xXor(
ir_node const *
const node)
700 ia32_emitf(node,
"xorp%FX %B");
703 static void emit_ia32_xZero(
ir_node const *
const node)
705 ia32_emitf(node,
"xorp%FX %D0, %D0");
708 static void emit_ia32_xxLoad(
ir_node const *
const node)
710 ia32_emitf(node,
"movdqu %D0, %AM");
713 static void emit_ia32_xxStore(
ir_node const *
const node)
715 ia32_emitf(node,
"movdqu %S3, %AM");
724 void ia32_register_spec_emitters(
void)
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);
struct ir_node ir_node
Procedure Graph Node.