asm_output 779 nanojit/Assembler.cpp verbose_only( asm_output("[prologue]"); ) asm_output 1277 nanojit/Assembler.cpp asm_output(" %u: [&%s]", i, _thisfrag->lirbuf->names->formatRef(to)); asm_output 1282 nanojit/Assembler.cpp asm_output("forward edges"); asm_output 1300 nanojit/Assembler.cpp asm_output(" %u: [&%s]", i, _thisfrag->lirbuf->names->formatRef(to)); asm_output 1303 nanojit/Assembler.cpp asm_output("backward edges"); asm_output 1308 nanojit/Assembler.cpp asm_output("[%p]:", (void*)native_table); asm_output 1336 nanojit/Assembler.cpp asm_output("[%s]", _thisfrag->lirbuf->names->formatRef(ins)); asm_output 486 nanojit/NativeARM.cpp verbose_only( asm_output("## %p:",(void*)_nIns); ) asm_output 487 nanojit/NativeARM.cpp verbose_only( asm_output("## patch entry"); ) asm_output 1273 nanojit/NativeARM.cpp verbose_only( asm_output("merge next into LDMDB"); ) asm_output 1304 nanojit/NativeARM.cpp verbose_only( asm_output("merge next into STMDB"); ) asm_output 1692 nanojit/NativeARM.cpp asm_output("bkpt"); asm_output 1697 nanojit/NativeARM.cpp asm_output("b %p", (void*)addr); asm_output 1705 nanojit/NativeARM.cpp asm_output("ldr pc, =%p", (void*)addr); asm_output 1742 nanojit/NativeARM.cpp asm_output("bl %p", (void*)addr); asm_output 1756 nanojit/NativeARM.cpp asm_output("blx %p", (void*)addr); asm_output 1789 nanojit/NativeARM.cpp asm_output("blx ip"); asm_output 1838 nanojit/NativeARM.cpp asm_output("ldr %s, [%s, #%d]",gpn(d),gpn(b),(off)); asm_output 1919 nanojit/NativeARM.cpp asm_output("## imm= 0x%x", imm); asm_output 1983 nanojit/NativeARM.cpp asm_output("b%s %p", _c == AL ? "" : condNames[_c], (void*)(_t)); asm_output 1988 nanojit/NativeARM.cpp asm_output("b%s %p", _c == AL ? "" : condNames[_c], (void*)(_t)); asm_output 1995 nanojit/NativeARM.cpp asm_output("ldr%s %s, [%s, #-%d]", condNames[_c], gpn(PC), gpn(PC), -offs); asm_output 2007 nanojit/NativeARM.cpp asm_output("b%s %p", _c == AL ? "" : condNames[_c], (void*)(_t)); asm_output 292 nanojit/NativeARM.h asm_output("bx %s", gpn(_r)); } while(0) asm_output 333 nanojit/NativeARM.h asm_output("%s%s%s %s, #0x%X", #op, condNames[cond], (S)?"s":"", gpn(rd), decOp2Imm(op2imm));\ asm_output 336 nanojit/NativeARM.h asm_output("%s%s %s, #0x%X", #op, condNames[cond], gpn(rl), decOp2Imm(op2imm));\ asm_output 338 nanojit/NativeARM.h asm_output("%s%s%s %s, %s, #0x%X", #op, condNames[cond], (S)?"s":"", gpn(rd), gpn(rl), decOp2Imm(op2imm));\ asm_output 356 nanojit/NativeARM.h asm_output("%s%s%s %s, %s", #op, condNames[cond], (S)?"s":"", gpn(rd), gpn(rr));\ asm_output 359 nanojit/NativeARM.h asm_output("%s%s %s, %s", #op, condNames[cond], gpn(rl), gpn(rr));\ asm_output 361 nanojit/NativeARM.h asm_output("%s%s%s %s, %s, %s", #op, condNames[cond], (S)?"s":"", gpn(rd), gpn(rl), gpn(rr));\ asm_output 382 nanojit/NativeARM.h asm_output("%s%s%s %s, %s, %s #%d", #op, condNames[cond], (S)?"s":"", gpn(rd), gpn(rr), shiftNames[sh], (imm));\ asm_output 385 nanojit/NativeARM.h asm_output("%s%s %s, %s, %s #%d", #op, condNames[cond], gpn(rl), gpn(rr), shiftNames[sh], (imm));\ asm_output 387 nanojit/NativeARM.h asm_output("%s%s%s %s, %s, %s, %s #%d", #op, condNames[cond], (S)?"s":"", gpn(rd), gpn(rl), gpn(rr), shiftNames[sh], (imm));\ asm_output 407 nanojit/NativeARM.h asm_output("%s%s%s %s, %s, %s %s", #op, condNames[cond], (S)?"s":"", gpn(rd), gpn(rr), shiftNames[sh], gpn(rs));\ asm_output 410 nanojit/NativeARM.h asm_output("%s%s %s, %s, %s %s", #op, condNames[cond], gpn(rl), gpn(rr), shiftNames[sh], gpn(rs));\ asm_output 412 nanojit/NativeARM.h asm_output("%s%s%s %s, %s, %s, %s %s", #op, condNames[cond], (S)?"s":"", gpn(rd), gpn(rl), gpn(rr), shiftNames[sh], gpn(rs));\ asm_output 482 nanojit/NativeARM.h asm_output("smull %s, %s, %s, %s",gpn(_d),gpn(_d_hi),gpn(_l),gpn(_r)); \ asm_output 502 nanojit/NativeARM.h asm_output("mul %s, %s, %s",gpn(_d),gpn(_l),gpn(_r)); } while(0) asm_output 593 nanojit/NativeARM.h asm_output("ldr %s, [%s, +%s, LSL #%d]", gpn(_d), gpn(_b), gpn(_x), (_s));\ asm_output 608 nanojit/NativeARM.h asm_output("movw%s %s, #0x%x", condNames[_cond], gpn(_d), (_imm)); \ asm_output 622 nanojit/NativeARM.h asm_output("movt%s %s, #0x%x", condNames[_cond], gpn(_d), (_imm)); \ asm_output 644 nanojit/NativeARM.h asm_output("ldrb %s, [%s,#%d]", gpn(_d),gpn(_n),(_off)); \ asm_output 662 nanojit/NativeARM.h asm_output("ldrsh %s, [%s,#%d]", gpn(_d),gpn(_n),(_off)); \ asm_output 671 nanojit/NativeARM.h asm_output("str %s, [%s, #%d]", gpn(_d), gpn(_n), (_off)); \ asm_output 690 nanojit/NativeARM.h asm_output("push %s",gpn(_r)); } while (0) asm_output 697 nanojit/NativeARM.h asm_output("push %x", (_mask));} while (0) asm_output 704 nanojit/NativeARM.h asm_output("pop %s",gpn(_r));} while (0) asm_output 711 nanojit/NativeARM.h asm_output("pop %x", (_mask));} while (0) asm_output 749 nanojit/NativeARM.h asm_output("mov%s %s, #1", condNames[_cond], gpn(_r)); \ asm_output 750 nanojit/NativeARM.h asm_output("mov%s %s, #0", condNames[_opp], gpn(_r)); \ asm_output 782 nanojit/NativeARM.h asm_output("ldrsh %s,[%s, #%d]",gpn(_d), gpn(_b), (_off)); \ asm_output 786 nanojit/NativeARM.h asm_output("mov %s,%d",gpn(_d),(_off)); \ asm_output 792 nanojit/NativeARM.h asm_output("ldrsh %s,[%s, #%d]",gpn(_d), gpn(_b), (_off)); \ asm_output 812 nanojit/NativeARM.h asm_output("fmdrr %s,%s,%s", gpn(_Dm), gpn(_Rd), gpn(_Rn)); \ asm_output 820 nanojit/NativeARM.h asm_output("fmrrd %s,%s,%s", gpn(_Rd), gpn(_Rn), gpn(_Dm)); \ asm_output 828 nanojit/NativeARM.h asm_output("fmrdh %s,%s", gpn(_Rd), gpn(_Dn)); \ asm_output 836 nanojit/NativeARM.h asm_output("fmrdh %s,%s", gpn(_Rd), gpn(_Dn)); \ asm_output 851 nanojit/NativeARM.h asm_output("fstd %s,%s(%d)", gpn(_Dd), gpn(_Rn), _offs); \ asm_output 866 nanojit/NativeARM.h asm_output("fldd %s,%s(%d)", gpn(_Dd), gpn(_Rn), _offs); \ asm_output 875 nanojit/NativeARM.h asm_output("fsitod %s,%s", gpn(_Dd), gpn(_Sm)); \ asm_output 884 nanojit/NativeARM.h asm_output("fuitod %s,%s", gpn(_Dd), gpn(_Sm)); \ asm_output 892 nanojit/NativeARM.h asm_output("fmsr %s,%s", gpn(_Sn), gpn(_Rd)); \ asm_output 900 nanojit/NativeARM.h asm_output("fnegd %s,%s", gpn(_Dd), gpn(_Dm)); \ asm_output 908 nanojit/NativeARM.h asm_output("faddd %s,%s,%s", gpn(_Dd), gpn(_Dn), gpn(_Dm)); \ asm_output 916 nanojit/NativeARM.h asm_output("fsubd %s,%s,%s", gpn(_Dd), gpn(_Dn), gpn(_Dm)); \ asm_output 924 nanojit/NativeARM.h asm_output("fmuld %s,%s,%s", gpn(_Dd), gpn(_Dn), gpn(_Dm)); \ asm_output 932 nanojit/NativeARM.h asm_output("fmuld %s,%s,%s", gpn(_Dd), gpn(_Dn), gpn(_Dm)); \ asm_output 939 nanojit/NativeARM.h asm_output("fmstat"); \ asm_output 948 nanojit/NativeARM.h asm_output("fcmp%sd %s,%s", (((_E)==1)?"e":""), gpn(_Dd), gpn(_Dm)); \ asm_output 956 nanojit/NativeARM.h asm_output("fcpyd %s,%s", gpn(_Dd), gpn(_Dm)); \ asm_output 307 nanojit/NativePPC.h asm_output(fmt, ##__VA_ARGS__);\ asm_output 223 nanojit/NativeSparc.h asm_output("call %s",(c->_name)); \ asm_output 302 nanojit/NativeSparc.h asm_output("addcc %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 308 nanojit/NativeSparc.h asm_output("add %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 314 nanojit/NativeSparc.h asm_output("and %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 320 nanojit/NativeSparc.h asm_output("ba %p", _nIns + dsp22 - 1); \ asm_output 326 nanojit/NativeSparc.h asm_output("be %p", _nIns + dsp22 - 1); \ asm_output 332 nanojit/NativeSparc.h asm_output("bg %p", _nIns + dsp22 - 1); \ asm_output 338 nanojit/NativeSparc.h asm_output("bgu %p", _nIns + dsp22 - 1); \ asm_output 344 nanojit/NativeSparc.h asm_output("bge %p", _nIns + dsp22 - 1); \ asm_output 350 nanojit/NativeSparc.h asm_output("bl %p", _nIns + dsp22 - 1); \ asm_output 356 nanojit/NativeSparc.h asm_output("ble %p", _nIns + dsp22 - 1); \ asm_output 362 nanojit/NativeSparc.h asm_output("bleu %p", _nIns + dsp22 - 1); \ asm_output 368 nanojit/NativeSparc.h asm_output("bcc %p", _nIns + dsp22 - 1); \ asm_output 374 nanojit/NativeSparc.h asm_output("bcs %p", _nIns + dsp22 - 1); \ asm_output 380 nanojit/NativeSparc.h asm_output("bvc %p", _nIns + dsp22 - 1); \ asm_output 386 nanojit/NativeSparc.h asm_output("bvc %p", _nIns + dsp22 - 1); \ asm_output 392 nanojit/NativeSparc.h asm_output("bne %p", _nIns + dsp22 - 1); \ asm_output 398 nanojit/NativeSparc.h asm_output("fabs %s, %s", gpn(rs2+32), gpn(rd+32)); \ asm_output 404 nanojit/NativeSparc.h asm_output("faddd %s, %s, %s", gpn(rs1+32), gpn(rs2+32), gpn(rd+32)); \ asm_output 410 nanojit/NativeSparc.h asm_output("fbe %p", _nIns + dsp22 - 1); \ asm_output 416 nanojit/NativeSparc.h asm_output("fbne %p", _nIns + dsp22 - 1); \ asm_output 422 nanojit/NativeSparc.h asm_output("fbue %p", _nIns + dsp22 - 1); \ asm_output 428 nanojit/NativeSparc.h asm_output("fng %p", _nIns + dsp22 - 1); \ asm_output 434 nanojit/NativeSparc.h asm_output("fbug %p", _nIns + dsp22 - 1); \ asm_output 440 nanojit/NativeSparc.h asm_output("fbge %p", _nIns + dsp22 - 1); \ asm_output 446 nanojit/NativeSparc.h asm_output("fbuge %p", _nIns + dsp22 - 1); \ asm_output 452 nanojit/NativeSparc.h asm_output("fbl %p", _nIns + dsp22 - 1); \ asm_output 458 nanojit/NativeSparc.h asm_output("fbl %p", _nIns + dsp22 - 1); \ asm_output 464 nanojit/NativeSparc.h asm_output("fble %p", _nIns + dsp22 - 1); \ asm_output 470 nanojit/NativeSparc.h asm_output("fbule %p", _nIns + dsp22 - 1); \ asm_output 476 nanojit/NativeSparc.h asm_output("fcmpd %s, %s", gpn(rs1+32), gpn(rs2+32)); \ asm_output 482 nanojit/NativeSparc.h asm_output("fsubd %s, %s, %s", gpn(rs1+32), gpn(rs2+32), gpn(rd+32)); \ asm_output 488 nanojit/NativeSparc.h asm_output("fmuld %s, %s, %s", gpn(rs1+32), gpn(rs2+32), gpn(rd+32)); \ asm_output 494 nanojit/NativeSparc.h asm_output("fdivd %s, %s, %s", gpn(rs1+32), gpn(rs2+32), gpn(rd+32)); \ asm_output 500 nanojit/NativeSparc.h asm_output("fmovd %s, %s", gpn(rs2+32), gpn(rd+32)); \ asm_output 506 nanojit/NativeSparc.h asm_output("fnegd %s, %s", gpn(rs2+32), gpn(rd+32)); \ asm_output 512 nanojit/NativeSparc.h asm_output("fitod %s, %s", gpn(rs2+32), gpn(rd+32)); \ asm_output 518 nanojit/NativeSparc.h asm_output("jmpl [%s + %s]", gpn(rs1), gpn(rs2)); \ asm_output 524 nanojit/NativeSparc.h asm_output("jmpl [%s + %d]", gpn(rs1), simm13); \ asm_output 530 nanojit/NativeSparc.h asm_output("ld [%s + %s], %s", gpn(rs1), gpn(rs2), gpn(rd+32)); \ asm_output 536 nanojit/NativeSparc.h asm_output("ld [%s + %d], %s", gpn(rs1), simm13, gpn(rd+32)); \ asm_output 542 nanojit/NativeSparc.h asm_output("ld [%s + %s], %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 548 nanojit/NativeSparc.h asm_output("ld [%s + %d], %s", gpn(rs1), simm13, gpn(rd)); \ asm_output 554 nanojit/NativeSparc.h asm_output("ld [%s + %s], %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 560 nanojit/NativeSparc.h asm_output("ld [%s + %d], %s", gpn(rs1), simm13, gpn(rd)); \ asm_output 566 nanojit/NativeSparc.h asm_output("ld [%s + %s], %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 572 nanojit/NativeSparc.h asm_output("ld [%s + %d], %s", gpn(rs1), simm13, gpn(rd)); \ asm_output 578 nanojit/NativeSparc.h asm_output("move %s, %s", gpn(rs), gpn(rd)); \ asm_output 584 nanojit/NativeSparc.h asm_output("movne %s, %s", gpn(rs), gpn(rd)); \ asm_output 590 nanojit/NativeSparc.h asm_output("movl %s, %s", gpn(rs), gpn(rd)); \ asm_output 596 nanojit/NativeSparc.h asm_output("movle %s, %s", gpn(rs), gpn(rd)); \ asm_output 602 nanojit/NativeSparc.h asm_output("movg %s, %s", gpn(rs), gpn(rd)); \ asm_output 608 nanojit/NativeSparc.h asm_output("movge %s, %s", gpn(rs), gpn(rd)); \ asm_output 614 nanojit/NativeSparc.h asm_output("movcs %s, %s", gpn(rs), gpn(rd)); \ asm_output 620 nanojit/NativeSparc.h asm_output("movleu %s, %s", gpn(rs), gpn(rd)); \ asm_output 626 nanojit/NativeSparc.h asm_output("movgu %s, %s", gpn(rs), gpn(rd)); \ asm_output 632 nanojit/NativeSparc.h asm_output("movcc %s, %s", gpn(rs), gpn(rd)); \ asm_output 638 nanojit/NativeSparc.h asm_output("movvc %s, %s", gpn(rs), gpn(rd)); \ asm_output 644 nanojit/NativeSparc.h asm_output("move %d, %s", simm11, gpn(rd)); \ asm_output 650 nanojit/NativeSparc.h asm_output("move %d, %s", simm11, gpn(rd)); \ asm_output 656 nanojit/NativeSparc.h asm_output("move %d, %s", simm11, gpn(rd)); \ asm_output 662 nanojit/NativeSparc.h asm_output("move %d, %s", simm11, gpn(rd)); \ asm_output 668 nanojit/NativeSparc.h asm_output("move %d, %s", simm11, gpn(rd)); \ asm_output 674 nanojit/NativeSparc.h asm_output("movle %d, %s", simm11, gpn(rd)); \ asm_output 680 nanojit/NativeSparc.h asm_output("movle %d, %s", simm11, gpn(rd)); \ asm_output 686 nanojit/NativeSparc.h asm_output("movg %d, %s", simm11, gpn(rd)); \ asm_output 692 nanojit/NativeSparc.h asm_output("movg %d, %s", simm11, gpn(rd)); \ asm_output 698 nanojit/NativeSparc.h asm_output("movge %d, %s", simm11, gpn(rd)); \ asm_output 704 nanojit/NativeSparc.h asm_output("movge %d, %s", simm11, gpn(rd)); \ asm_output 710 nanojit/NativeSparc.h asm_output("movleu %d, %s", simm11, gpn(rd)); \ asm_output 716 nanojit/NativeSparc.h asm_output("movgu %d, %s", simm11, gpn(rd)); \ asm_output 722 nanojit/NativeSparc.h asm_output("movcc %d, %s", simm11, gpn(rd)); \ asm_output 728 nanojit/NativeSparc.h asm_output("movvs %d, %s", simm11, gpn(rd)); \ asm_output 734 nanojit/NativeSparc.h asm_output("mul %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 740 nanojit/NativeSparc.h asm_output("nop"); \ asm_output 746 nanojit/NativeSparc.h asm_output("or %s, %d, %s", gpn(rs1), simm13, gpn(rd)); \ asm_output 752 nanojit/NativeSparc.h asm_output("or %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 758 nanojit/NativeSparc.h asm_output("orn %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 764 nanojit/NativeSparc.h asm_output("andcc %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 770 nanojit/NativeSparc.h asm_output("restore"); \ asm_output 776 nanojit/NativeSparc.h asm_output("save %s, %d, %s", gpn(rs1), simm13, gpn(rd)); \ asm_output 782 nanojit/NativeSparc.h asm_output("save %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 788 nanojit/NativeSparc.h asm_output("sethi %p, %s", imm22, gpn(rd)); \ asm_output 794 nanojit/NativeSparc.h asm_output("sll %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 800 nanojit/NativeSparc.h asm_output("sra %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 806 nanojit/NativeSparc.h asm_output("srl %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 812 nanojit/NativeSparc.h asm_output("st %s, [%s + %s]", gpn(rd+32), gpn(rs1), gpn(rs2)); \ asm_output 818 nanojit/NativeSparc.h asm_output("st %s, [%s + %d]", gpn(rd+32), gpn(rs1), simm13); \ asm_output 824 nanojit/NativeSparc.h asm_output("st %s, [%s + %s]", gpn(rd), gpn(rs1), gpn(rs2)); \ asm_output 830 nanojit/NativeSparc.h asm_output("st %s, [%s + %d]", gpn(rd), gpn(rs1), simm13); \ asm_output 836 nanojit/NativeSparc.h asm_output("subcc %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 842 nanojit/NativeSparc.h asm_output("sub %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 848 nanojit/NativeSparc.h asm_output("sub %s, %d, %s", gpn(rs1), simm13, gpn(rd)); \ asm_output 854 nanojit/NativeSparc.h asm_output("xor %s, %s, %s", gpn(rs1), gpn(rs2), gpn(rd)); \ asm_output 367 nanojit/NativeX64.cpp void Assembler::PUSHR(R r) { emitr(X64_pushr,r); asm_output("push %s", RQ(r)); } asm_output 368 nanojit/NativeX64.cpp void Assembler::POPR( R r) { emitr(X64_popr, r); asm_output("pop %s", RQ(r)); } asm_output 369 nanojit/NativeX64.cpp void Assembler::NOT( R r) { emitr(X64_not, r); asm_output("notl %s", RL(r)); } asm_output 370 nanojit/NativeX64.cpp void Assembler::NEG( R r) { emitr(X64_neg, r); asm_output("negl %s", RL(r)); } asm_output 371 nanojit/NativeX64.cpp void Assembler::IDIV( R r) { emitr(X64_idiv, r); asm_output("idivl edx:eax, %s",RL(r)); } asm_output 373 nanojit/NativeX64.cpp void Assembler::SHR( R r) { emitr(X64_shr, r); asm_output("shrl %s, ecx", RL(r)); } asm_output 374 nanojit/NativeX64.cpp void Assembler::SAR( R r) { emitr(X64_sar, r); asm_output("sarl %s, ecx", RL(r)); } asm_output 375 nanojit/NativeX64.cpp void Assembler::SHL( R r) { emitr(X64_shl, r); asm_output("shll %s, ecx", RL(r)); } asm_output 376 nanojit/NativeX64.cpp void Assembler::SHRQ(R r) { emitr(X64_shrq, r); asm_output("shrq %s, ecx", RQ(r)); } asm_output 377 nanojit/NativeX64.cpp void Assembler::SARQ(R r) { emitr(X64_sarq, r); asm_output("sarq %s, ecx", RQ(r)); } asm_output 378 nanojit/NativeX64.cpp void Assembler::SHLQ(R r) { emitr(X64_shlq, r); asm_output("shlq %s, ecx", RQ(r)); } asm_output 380 nanojit/NativeX64.cpp void Assembler::SHRI( R r, I i) { emit8(rexrb(X64_shri | U64(r&7)<<48, (R)0, r), i); asm_output("shrl %s, %d", RL(r), i); } asm_output 381 nanojit/NativeX64.cpp void Assembler::SARI( R r, I i) { emit8(rexrb(X64_sari | U64(r&7)<<48, (R)0, r), i); asm_output("sarl %s, %d", RL(r), i); } asm_output 382 nanojit/NativeX64.cpp void Assembler::SHLI( R r, I i) { emit8(rexrb(X64_shli | U64(r&7)<<48, (R)0, r), i); asm_output("shll %s, %d", RL(r), i); } asm_output 383 nanojit/NativeX64.cpp void Assembler::SHRQI(R r, I i) { emit8(rexrb(X64_shrqi | U64(r&7)<<48, (R)0, r), i); asm_output("shrq %s, %d", RQ(r), i); } asm_output 384 nanojit/NativeX64.cpp void Assembler::SARQI(R r, I i) { emit8(rexrb(X64_sarqi | U64(r&7)<<48, (R)0, r), i); asm_output("sarq %s, %d", RQ(r), i); } asm_output 385 nanojit/NativeX64.cpp void Assembler::SHLQI(R r, I i) { emit8(rexrb(X64_shlqi | U64(r&7)<<48, (R)0, r), i); asm_output("shlq %s, %d", RQ(r), i); } asm_output 387 nanojit/NativeX64.cpp void Assembler::SETE( R r) { emitr8(X64_sete, r); asm_output("sete %s", RB(r)); } asm_output 388 nanojit/NativeX64.cpp void Assembler::SETL( R r) { emitr8(X64_setl, r); asm_output("setl %s", RB(r)); } asm_output 389 nanojit/NativeX64.cpp void Assembler::SETLE(R r) { emitr8(X64_setle,r); asm_output("setle %s",RB(r)); } asm_output 390 nanojit/NativeX64.cpp void Assembler::SETG( R r) { emitr8(X64_setg, r); asm_output("setg %s", RB(r)); } asm_output 391 nanojit/NativeX64.cpp void Assembler::SETGE(R r) { emitr8(X64_setge,r); asm_output("setge %s",RB(r)); } asm_output 392 nanojit/NativeX64.cpp void Assembler::SETB( R r) { emitr8(X64_setb, r); asm_output("setb %s", RB(r)); } asm_output 393 nanojit/NativeX64.cpp void Assembler::SETBE(R r) { emitr8(X64_setbe,r); asm_output("setbe %s",RB(r)); } asm_output 394 nanojit/NativeX64.cpp void Assembler::SETA( R r) { emitr8(X64_seta, r); asm_output("seta %s", RB(r)); } asm_output 395 nanojit/NativeX64.cpp void Assembler::SETAE(R r) { emitr8(X64_setae,r); asm_output("setae %s",RB(r)); } asm_output 396 nanojit/NativeX64.cpp void Assembler::SETO( R r) { emitr8(X64_seto, r); asm_output("seto %s", RB(r)); } asm_output 398 nanojit/NativeX64.cpp void Assembler::ADDRR(R l, R r) { emitrr(X64_addrr,l,r); asm_output("addl %s, %s", RL(l),RL(r)); } asm_output 399 nanojit/NativeX64.cpp void Assembler::SUBRR(R l, R r) { emitrr(X64_subrr,l,r); asm_output("subl %s, %s", RL(l),RL(r)); } asm_output 400 nanojit/NativeX64.cpp void Assembler::ANDRR(R l, R r) { emitrr(X64_andrr,l,r); asm_output("andl %s, %s", RL(l),RL(r)); } asm_output 401 nanojit/NativeX64.cpp void Assembler::ORLRR(R l, R r) { emitrr(X64_orlrr,l,r); asm_output("orl %s, %s", RL(l),RL(r)); } asm_output 402 nanojit/NativeX64.cpp void Assembler::XORRR(R l, R r) { emitrr(X64_xorrr,l,r); asm_output("xorl %s, %s", RL(l),RL(r)); } asm_output 403 nanojit/NativeX64.cpp void Assembler::IMUL( R l, R r) { emitrr(X64_imul, l,r); asm_output("imull %s, %s",RL(l),RL(r)); } asm_output 404 nanojit/NativeX64.cpp void Assembler::CMPLR(R l, R r) { emitrr(X64_cmplr,l,r); asm_output("cmpl %s, %s", RL(l),RL(r)); } asm_output 405 nanojit/NativeX64.cpp void Assembler::MOVLR(R l, R r) { emitrr(X64_movlr,l,r); asm_output("movl %s, %s", RL(l),RL(r)); } asm_output 407 nanojit/NativeX64.cpp void Assembler::ADDQRR( R l, R r) { emitrr(X64_addqrr, l,r); asm_output("addq %s, %s", RQ(l),RQ(r)); } asm_output 408 nanojit/NativeX64.cpp void Assembler::SUBQRR( R l, R r) { emitrr(X64_subqrr, l,r); asm_output("subq %s, %s", RQ(l),RQ(r)); } asm_output 409 nanojit/NativeX64.cpp void Assembler::ANDQRR( R l, R r) { emitrr(X64_andqrr, l,r); asm_output("andq %s, %s", RQ(l),RQ(r)); } asm_output 410 nanojit/NativeX64.cpp void Assembler::ORQRR( R l, R r) { emitrr(X64_orqrr, l,r); asm_output("orq %s, %s", RQ(l),RQ(r)); } asm_output 411 nanojit/NativeX64.cpp void Assembler::XORQRR( R l, R r) { emitrr(X64_xorqrr, l,r); asm_output("xorq %s, %s", RQ(l),RQ(r)); } asm_output 412 nanojit/NativeX64.cpp void Assembler::CMPQR( R l, R r) { emitrr(X64_cmpqr, l,r); asm_output("cmpq %s, %s", RQ(l),RQ(r)); } asm_output 413 nanojit/NativeX64.cpp void Assembler::MOVQR( R l, R r) { emitrr(X64_movqr, l,r); asm_output("movq %s, %s", RQ(l),RQ(r)); } asm_output 414 nanojit/NativeX64.cpp void Assembler::MOVAPSR(R l, R r) { emitrr(X64_movapsr,l,r); asm_output("movaps %s, %s",RQ(l),RQ(r)); } asm_output 416 nanojit/NativeX64.cpp void Assembler::CMOVNO( R l, R r) { emitrr(X64_cmovno, l,r); asm_output("cmovlno %s, %s", RL(l),RL(r)); } asm_output 417 nanojit/NativeX64.cpp void Assembler::CMOVNE( R l, R r) { emitrr(X64_cmovne, l,r); asm_output("cmovlne %s, %s", RL(l),RL(r)); } asm_output 418 nanojit/NativeX64.cpp void Assembler::CMOVNL( R l, R r) { emitrr(X64_cmovnl, l,r); asm_output("cmovlnl %s, %s", RL(l),RL(r)); } asm_output 419 nanojit/NativeX64.cpp void Assembler::CMOVNLE(R l, R r) { emitrr(X64_cmovnle,l,r); asm_output("cmovlnle %s, %s", RL(l),RL(r)); } asm_output 420 nanojit/NativeX64.cpp void Assembler::CMOVNG( R l, R r) { emitrr(X64_cmovng, l,r); asm_output("cmovlng %s, %s", RL(l),RL(r)); } asm_output 421 nanojit/NativeX64.cpp void Assembler::CMOVNGE(R l, R r) { emitrr(X64_cmovnge,l,r); asm_output("cmovlnge %s, %s", RL(l),RL(r)); } asm_output 422 nanojit/NativeX64.cpp void Assembler::CMOVNB( R l, R r) { emitrr(X64_cmovnb, l,r); asm_output("cmovlnb %s, %s", RL(l),RL(r)); } asm_output 423 nanojit/NativeX64.cpp void Assembler::CMOVNBE(R l, R r) { emitrr(X64_cmovnbe,l,r); asm_output("cmovlnbe %s, %s", RL(l),RL(r)); } asm_output 424 nanojit/NativeX64.cpp void Assembler::CMOVNA( R l, R r) { emitrr(X64_cmovna, l,r); asm_output("cmovlna %s, %s", RL(l),RL(r)); } asm_output 425 nanojit/NativeX64.cpp void Assembler::CMOVNAE(R l, R r) { emitrr(X64_cmovnae,l,r); asm_output("cmovlnae %s, %s", RL(l),RL(r)); } asm_output 427 nanojit/NativeX64.cpp void Assembler::CMOVQNO( R l, R r) { emitrr(X64_cmovqno, l,r); asm_output("cmovqno %s, %s", RQ(l),RQ(r)); } asm_output 428 nanojit/NativeX64.cpp void Assembler::CMOVQNE( R l, R r) { emitrr(X64_cmovqne, l,r); asm_output("cmovqne %s, %s", RQ(l),RQ(r)); } asm_output 429 nanojit/NativeX64.cpp void Assembler::CMOVQNL( R l, R r) { emitrr(X64_cmovqnl, l,r); asm_output("cmovqnl %s, %s", RQ(l),RQ(r)); } asm_output 430 nanojit/NativeX64.cpp void Assembler::CMOVQNLE(R l, R r) { emitrr(X64_cmovqnle,l,r); asm_output("cmovqnle %s, %s", RQ(l),RQ(r)); } asm_output 431 nanojit/NativeX64.cpp void Assembler::CMOVQNG( R l, R r) { emitrr(X64_cmovqng, l,r); asm_output("cmovqng %s, %s", RQ(l),RQ(r)); } asm_output 432 nanojit/NativeX64.cpp void Assembler::CMOVQNGE(R l, R r) { emitrr(X64_cmovqnge,l,r); asm_output("cmovqnge %s, %s", RQ(l),RQ(r)); } asm_output 433 nanojit/NativeX64.cpp void Assembler::CMOVQNB( R l, R r) { emitrr(X64_cmovqnb, l,r); asm_output("cmovqnb %s, %s", RQ(l),RQ(r)); } asm_output 434 nanojit/NativeX64.cpp void Assembler::CMOVQNBE(R l, R r) { emitrr(X64_cmovqnbe,l,r); asm_output("cmovqnbe %s, %s", RQ(l),RQ(r)); } asm_output 435 nanojit/NativeX64.cpp void Assembler::CMOVQNA( R l, R r) { emitrr(X64_cmovqna, l,r); asm_output("cmovqna %s, %s", RQ(l),RQ(r)); } asm_output 436 nanojit/NativeX64.cpp void Assembler::CMOVQNAE(R l, R r) { emitrr(X64_cmovqnae,l,r); asm_output("cmovqnae %s, %s", RQ(l),RQ(r)); } asm_output 438 nanojit/NativeX64.cpp void Assembler::MOVSXDR(R l, R r) { emitrr(X64_movsxdr,l,r); asm_output("movsxd %s, %s",RQ(l),RL(r)); } asm_output 440 nanojit/NativeX64.cpp void Assembler::MOVZX8(R l, R r) { emitrr8(X64_movzx8,l,r); asm_output("movzx %s, %s",RQ(l),RB(r)); } asm_output 446 nanojit/NativeX64.cpp void Assembler::XORPS( R r) { emitrr(X64_xorps, r,r); asm_output("xorps %s, %s", RQ(r),RQ(r)); } asm_output 447 nanojit/NativeX64.cpp void Assembler::DIVSD( R l, R r) { emitprr(X64_divsd, l,r); asm_output("divsd %s, %s", RQ(l),RQ(r)); } asm_output 448 nanojit/NativeX64.cpp void Assembler::MULSD( R l, R r) { emitprr(X64_mulsd, l,r); asm_output("mulsd %s, %s", RQ(l),RQ(r)); } asm_output 449 nanojit/NativeX64.cpp void Assembler::ADDSD( R l, R r) { emitprr(X64_addsd, l,r); asm_output("addsd %s, %s", RQ(l),RQ(r)); } asm_output 450 nanojit/NativeX64.cpp void Assembler::SUBSD( R l, R r) { emitprr(X64_subsd, l,r); asm_output("subsd %s, %s", RQ(l),RQ(r)); } asm_output 451 nanojit/NativeX64.cpp void Assembler::CVTSQ2SD(R l, R r) { emitprr(X64_cvtsq2sd,l,r); asm_output("cvtsq2sd %s, %s",RQ(l),RQ(r)); } asm_output 452 nanojit/NativeX64.cpp void Assembler::CVTSI2SD(R l, R r) { emitprr(X64_cvtsi2sd,l,r); asm_output("cvtsi2sd %s, %s",RQ(l),RL(r)); } asm_output 453 nanojit/NativeX64.cpp void Assembler::CVTSS2SD(R l, R r) { emitprr(X64_cvtss2sd,l,r); asm_output("cvtss2sd %s, %s",RQ(l),RL(r)); } asm_output 454 nanojit/NativeX64.cpp void Assembler::CVTSD2SS(R l, R r) { emitprr(X64_cvtsd2ss,l,r); asm_output("cvtsd2ss %s, %s",RL(l),RQ(r)); } asm_output 455 nanojit/NativeX64.cpp void Assembler::UCOMISD( R l, R r) { emitprr(X64_ucomisd, l,r); asm_output("ucomisd %s, %s", RQ(l),RQ(r)); } asm_output 456 nanojit/NativeX64.cpp void Assembler::MOVQRX( R l, R r) { emitprr(X64_movqrx, r,l); asm_output("movq %s, %s", RQ(l),RQ(r)); } // Nb: r and l are deliberately reversed within the emitprr() call. asm_output 457 nanojit/NativeX64.cpp void Assembler::MOVQXR( R l, R r) { emitprr(X64_movqxr, l,r); asm_output("movq %s, %s", RQ(l),RQ(r)); } asm_output 460 nanojit/NativeX64.cpp void Assembler::MOVI( R r, I32 i32) { emitr_imm(X64_movi, r,i32); asm_output("movl %s, %d",RL(r),i32); } asm_output 461 nanojit/NativeX64.cpp void Assembler::ADDLRI(R r, I32 i32) { emitr_imm(X64_addlri,r,i32); asm_output("addl %s, %d",RL(r),i32); } asm_output 462 nanojit/NativeX64.cpp void Assembler::SUBLRI(R r, I32 i32) { emitr_imm(X64_sublri,r,i32); asm_output("subl %s, %d",RL(r),i32); } asm_output 463 nanojit/NativeX64.cpp void Assembler::ANDLRI(R r, I32 i32) { emitr_imm(X64_andlri,r,i32); asm_output("andl %s, %d",RL(r),i32); } asm_output 464 nanojit/NativeX64.cpp void Assembler::ORLRI( R r, I32 i32) { emitr_imm(X64_orlri, r,i32); asm_output("orl %s, %d", RL(r),i32); } asm_output 465 nanojit/NativeX64.cpp void Assembler::XORLRI(R r, I32 i32) { emitr_imm(X64_xorlri,r,i32); asm_output("xorl %s, %d",RL(r),i32); } asm_output 466 nanojit/NativeX64.cpp void Assembler::CMPLRI(R r, I32 i32) { emitr_imm(X64_cmplri,r,i32); asm_output("cmpl %s, %d",RL(r),i32); } asm_output 468 nanojit/NativeX64.cpp void Assembler::ADDQRI( R r, I32 i32) { emitr_imm(X64_addqri, r,i32); asm_output("addq %s, %d", RQ(r),i32); } asm_output 469 nanojit/NativeX64.cpp void Assembler::SUBQRI( R r, I32 i32) { emitr_imm(X64_subqri, r,i32); asm_output("subq %s, %d", RQ(r),i32); } asm_output 470 nanojit/NativeX64.cpp void Assembler::ANDQRI( R r, I32 i32) { emitr_imm(X64_andqri, r,i32); asm_output("andq %s, %d", RQ(r),i32); } asm_output 471 nanojit/NativeX64.cpp void Assembler::ORQRI( R r, I32 i32) { emitr_imm(X64_orqri, r,i32); asm_output("orq %s, %d", RQ(r),i32); } asm_output 472 nanojit/NativeX64.cpp void Assembler::XORQRI( R r, I32 i32) { emitr_imm(X64_xorqri, r,i32); asm_output("xorq %s, %d", RQ(r),i32); } asm_output 473 nanojit/NativeX64.cpp void Assembler::CMPQRI( R r, I32 i32) { emitr_imm(X64_cmpqri, r,i32); asm_output("cmpq %s, %d", RQ(r),i32); } asm_output 474 nanojit/NativeX64.cpp void Assembler::MOVQI32(R r, I32 i32) { emitr_imm(X64_movqi32,r,i32); asm_output("movqi32 %s, %d",RQ(r),i32); } asm_output 476 nanojit/NativeX64.cpp void Assembler::ADDLR8(R r, I32 i8) { emitr_imm8(X64_addlr8,r,i8); asm_output("addl %s, %d", RL(r),i8); } asm_output 477 nanojit/NativeX64.cpp void Assembler::SUBLR8(R r, I32 i8) { emitr_imm8(X64_sublr8,r,i8); asm_output("subl %s, %d", RL(r),i8); } asm_output 478 nanojit/NativeX64.cpp void Assembler::ANDLR8(R r, I32 i8) { emitr_imm8(X64_andlr8,r,i8); asm_output("andl %s, %d", RL(r),i8); } asm_output 479 nanojit/NativeX64.cpp void Assembler::ORLR8( R r, I32 i8) { emitr_imm8(X64_orlr8, r,i8); asm_output("orl %s, %d", RL(r),i8); } asm_output 480 nanojit/NativeX64.cpp void Assembler::XORLR8(R r, I32 i8) { emitr_imm8(X64_xorlr8,r,i8); asm_output("xorl %s, %d", RL(r),i8); } asm_output 481 nanojit/NativeX64.cpp void Assembler::CMPLR8(R r, I32 i8) { emitr_imm8(X64_cmplr8,r,i8); asm_output("cmpl %s, %d", RL(r),i8); } asm_output 483 nanojit/NativeX64.cpp void Assembler::ADDQR8(R r, I32 i8) { emitr_imm8(X64_addqr8,r,i8); asm_output("addq %s, %d",RQ(r),i8); } asm_output 484 nanojit/NativeX64.cpp void Assembler::SUBQR8(R r, I32 i8) { emitr_imm8(X64_subqr8,r,i8); asm_output("subq %s, %d",RQ(r),i8); } asm_output 485 nanojit/NativeX64.cpp void Assembler::ANDQR8(R r, I32 i8) { emitr_imm8(X64_andqr8,r,i8); asm_output("andq %s, %d",RQ(r),i8); } asm_output 486 nanojit/NativeX64.cpp void Assembler::ORQR8( R r, I32 i8) { emitr_imm8(X64_orqr8, r,i8); asm_output("orq %s, %d", RQ(r),i8); } asm_output 487 nanojit/NativeX64.cpp void Assembler::XORQR8(R r, I32 i8) { emitr_imm8(X64_xorqr8,r,i8); asm_output("xorq %s, %d",RQ(r),i8); } asm_output 488 nanojit/NativeX64.cpp void Assembler::CMPQR8(R r, I32 i8) { emitr_imm8(X64_cmpqr8,r,i8); asm_output("cmpq %s, %d",RQ(r),i8); } asm_output 490 nanojit/NativeX64.cpp void Assembler::IMULI(R l, R r, I32 i32) { emitrr_imm(X64_imuli,l,r,i32); asm_output("imuli %s, %s, %d",RL(l),RL(r),i32); } asm_output 492 nanojit/NativeX64.cpp void Assembler::MOVQI(R r, U64 u64) { emitr_imm64(X64_movqi,r,u64); asm_output("movq %s, %p",RQ(r),(void*)u64); } asm_output 494 nanojit/NativeX64.cpp void Assembler::LEARIP(R r, I32 d) { emitrm(X64_learip,r,d,(Register)0); asm_output("lea %s, %d(rip)",RQ(r),d); } asm_output 496 nanojit/NativeX64.cpp void Assembler::LEAQRM(R r1, I d, R r2) { emitrm(X64_leaqrm,r1,d,r2); asm_output("leaq %s, %d(%s)",RQ(r1),d,RQ(r2)); } asm_output 497 nanojit/NativeX64.cpp void Assembler::MOVLRM(R r1, I d, R r2) { emitrm(X64_movlrm,r1,d,r2); asm_output("movl %s, %d(%s)",RL(r1),d,RQ(r2)); } asm_output 498 nanojit/NativeX64.cpp void Assembler::MOVQRM(R r1, I d, R r2) { emitrm(X64_movqrm,r1,d,r2); asm_output("movq %s, %d(%s)",RQ(r1),d,RQ(r2)); } asm_output 499 nanojit/NativeX64.cpp void Assembler::MOVBMR(R r1, I d, R r2) { emitrm8(X64_movbmr,r1,d,r2); asm_output("movb %d(%s), %s",d,RQ(r1),RB(r2)); } asm_output 500 nanojit/NativeX64.cpp void Assembler::MOVSMR(R r1, I d, R r2) { emitprm(X64_movsmr,r1,d,r2); asm_output("movs %d(%s), %s",d,RQ(r1),RS(r2)); } asm_output 501 nanojit/NativeX64.cpp void Assembler::MOVLMR(R r1, I d, R r2) { emitrm(X64_movlmr,r1,d,r2); asm_output("movl %d(%s), %s",d,RQ(r1),RL(r2)); } asm_output 502 nanojit/NativeX64.cpp void Assembler::MOVQMR(R r1, I d, R r2) { emitrm(X64_movqmr,r1,d,r2); asm_output("movq %d(%s), %s",d,RQ(r1),RQ(r2)); } asm_output 504 nanojit/NativeX64.cpp void Assembler::MOVZX8M( R r1, I d, R r2) { emitrm_wide(X64_movzx8m, r1,d,r2); asm_output("movzxb %s, %d(%s)",RQ(r1),d,RQ(r2)); } asm_output 505 nanojit/NativeX64.cpp void Assembler::MOVZX16M(R r1, I d, R r2) { emitrm_wide(X64_movzx16m,r1,d,r2); asm_output("movzxs %s, %d(%s)",RQ(r1),d,RQ(r2)); } asm_output 507 nanojit/NativeX64.cpp void Assembler::MOVSX8M( R r1, I d, R r2) { emitrm_wide(X64_movsx8m, r1,d,r2); asm_output("movsxb %s, %d(%s)",RQ(r1),d,RQ(r2)); } asm_output 508 nanojit/NativeX64.cpp void Assembler::MOVSX16M(R r1, I d, R r2) { emitrm_wide(X64_movsx16m,r1,d,r2); asm_output("movsxs %s, %d(%s)",RQ(r1),d,RQ(r2)); } asm_output 510 nanojit/NativeX64.cpp void Assembler::MOVSDRM(R r1, I d, R r2) { emitprm(X64_movsdrm,r1,d,r2); asm_output("movsd %s, %d(%s)",RQ(r1),d,RQ(r2)); } asm_output 511 nanojit/NativeX64.cpp void Assembler::MOVSDMR(R r1, I d, R r2) { emitprm(X64_movsdmr,r1,d,r2); asm_output("movsd %d(%s), %s",d,RQ(r1),RQ(r2)); } asm_output 512 nanojit/NativeX64.cpp void Assembler::MOVSSRM(R r1, I d, R r2) { emitprm(X64_movssrm,r1,d,r2); asm_output("movss %s, %d(%s)",RQ(r1),d,RQ(r2)); } asm_output 513 nanojit/NativeX64.cpp void Assembler::MOVSSMR(R r1, I d, R r2) { emitprm(X64_movssmr,r1,d,r2); asm_output("movss %d(%s), %s",d,RQ(r1),RQ(r2)); } asm_output 515 nanojit/NativeX64.cpp void Assembler::JMP8( S n, NIns* t) { emit_target8(n, X64_jmp8,t); asm_output("jmp %p", t); } asm_output 517 nanojit/NativeX64.cpp void Assembler::JMP32(S n, NIns* t) { emit_target32(n,X64_jmp, t); asm_output("jmp %p", t); } asm_output 519 nanojit/NativeX64.cpp void Assembler::JMPX(R indexreg, NIns** table) { emitrxb_imm(X64_jmpx, (R)0, indexreg, (Register)5, (int32_t)(uintptr_t)table); asm_output("jmpq [%s*8 + %p]", RQ(indexreg), (void*)table); } asm_output 521 nanojit/NativeX64.cpp void Assembler::JMPXB(R indexreg, R tablereg) { emitxb(X64_jmpxb, indexreg, tablereg); asm_output("jmp [%s*8 + %s]", RQ(indexreg), RQ(tablereg)); } asm_output 523 nanojit/NativeX64.cpp void Assembler::JO( S n, NIns* t) { emit_target32(n,X64_jo, t); asm_output("jo %p", t); } asm_output 524 nanojit/NativeX64.cpp void Assembler::JE( S n, NIns* t) { emit_target32(n,X64_je, t); asm_output("je %p", t); } asm_output 525 nanojit/NativeX64.cpp void Assembler::JL( S n, NIns* t) { emit_target32(n,X64_jl, t); asm_output("jl %p", t); } asm_output 526 nanojit/NativeX64.cpp void Assembler::JLE(S n, NIns* t) { emit_target32(n,X64_jle, t); asm_output("jle %p",t); } asm_output 527 nanojit/NativeX64.cpp void Assembler::JG( S n, NIns* t) { emit_target32(n,X64_jg, t); asm_output("jg %p", t); } asm_output 528 nanojit/NativeX64.cpp void Assembler::JGE(S n, NIns* t) { emit_target32(n,X64_jge, t); asm_output("jge %p",t); } asm_output 529 nanojit/NativeX64.cpp void Assembler::JB( S n, NIns* t) { emit_target32(n,X64_jb, t); asm_output("jb %p", t); } asm_output 530 nanojit/NativeX64.cpp void Assembler::JBE(S n, NIns* t) { emit_target32(n,X64_jbe, t); asm_output("jbe %p",t); } asm_output 531 nanojit/NativeX64.cpp void Assembler::JA( S n, NIns* t) { emit_target32(n,X64_ja, t); asm_output("ja %p", t); } asm_output 532 nanojit/NativeX64.cpp void Assembler::JAE(S n, NIns* t) { emit_target32(n,X64_jae, t); asm_output("jae %p",t); } asm_output 533 nanojit/NativeX64.cpp void Assembler::JP( S n, NIns* t) { emit_target32(n,X64_jp, t); asm_output("jp %p",t); } asm_output 535 nanojit/NativeX64.cpp void Assembler::JNO( S n, NIns* t) { emit_target32(n,X64_jo ^X64_jneg, t); asm_output("jno %p", t); } asm_output 536 nanojit/NativeX64.cpp void Assembler::JNE( S n, NIns* t) { emit_target32(n,X64_je ^X64_jneg, t); asm_output("jne %p", t); } asm_output 537 nanojit/NativeX64.cpp void Assembler::JNL( S n, NIns* t) { emit_target32(n,X64_jl ^X64_jneg, t); asm_output("jnl %p", t); } asm_output 538 nanojit/NativeX64.cpp void Assembler::JNLE(S n, NIns* t) { emit_target32(n,X64_jle^X64_jneg, t); asm_output("jnle %p",t); } asm_output 539 nanojit/NativeX64.cpp void Assembler::JNG( S n, NIns* t) { emit_target32(n,X64_jg ^X64_jneg, t); asm_output("jng %p", t); } asm_output 540 nanojit/NativeX64.cpp void Assembler::JNGE(S n, NIns* t) { emit_target32(n,X64_jge^X64_jneg, t); asm_output("jnge %p",t); } asm_output 541 nanojit/NativeX64.cpp void Assembler::JNB( S n, NIns* t) { emit_target32(n,X64_jb ^X64_jneg, t); asm_output("jnb %p", t); } asm_output 542 nanojit/NativeX64.cpp void Assembler::JNBE(S n, NIns* t) { emit_target32(n,X64_jbe^X64_jneg, t); asm_output("jnbe %p",t); } asm_output 543 nanojit/NativeX64.cpp void Assembler::JNA( S n, NIns* t) { emit_target32(n,X64_ja ^X64_jneg, t); asm_output("jna %p", t); } asm_output 544 nanojit/NativeX64.cpp void Assembler::JNAE(S n, NIns* t) { emit_target32(n,X64_jae^X64_jneg, t); asm_output("jnae %p",t); } asm_output 546 nanojit/NativeX64.cpp void Assembler::JO8( S n, NIns* t) { emit_target8(n,X64_jo8, t); asm_output("jo %p", t); } asm_output 547 nanojit/NativeX64.cpp void Assembler::JE8( S n, NIns* t) { emit_target8(n,X64_je8, t); asm_output("je %p", t); } asm_output 548 nanojit/NativeX64.cpp void Assembler::JL8( S n, NIns* t) { emit_target8(n,X64_jl8, t); asm_output("jl %p", t); } asm_output 549 nanojit/NativeX64.cpp void Assembler::JLE8(S n, NIns* t) { emit_target8(n,X64_jle8, t); asm_output("jle %p",t); } asm_output 550 nanojit/NativeX64.cpp void Assembler::JG8( S n, NIns* t) { emit_target8(n,X64_jg8, t); asm_output("jg %p", t); } asm_output 551 nanojit/NativeX64.cpp void Assembler::JGE8(S n, NIns* t) { emit_target8(n,X64_jge8, t); asm_output("jge %p",t); } asm_output 552 nanojit/NativeX64.cpp void Assembler::JB8( S n, NIns* t) { emit_target8(n,X64_jb8, t); asm_output("jb %p", t); } asm_output 553 nanojit/NativeX64.cpp void Assembler::JBE8(S n, NIns* t) { emit_target8(n,X64_jbe8, t); asm_output("jbe %p",t); } asm_output 554 nanojit/NativeX64.cpp void Assembler::JA8( S n, NIns* t) { emit_target8(n,X64_ja8, t); asm_output("ja %p", t); } asm_output 555 nanojit/NativeX64.cpp void Assembler::JAE8(S n, NIns* t) { emit_target8(n,X64_jae8, t); asm_output("jae %p",t); } asm_output 556 nanojit/NativeX64.cpp void Assembler::JP8( S n, NIns* t) { emit_target8(n,X64_jp8, t); asm_output("jp %p",t); } asm_output 558 nanojit/NativeX64.cpp void Assembler::JNO8( S n, NIns* t) { emit_target8(n,X64_jo8 ^X64_jneg8, t); asm_output("jno %p", t); } asm_output 559 nanojit/NativeX64.cpp void Assembler::JNE8( S n, NIns* t) { emit_target8(n,X64_je8 ^X64_jneg8, t); asm_output("jne %p", t); } asm_output 560 nanojit/NativeX64.cpp void Assembler::JNL8( S n, NIns* t) { emit_target8(n,X64_jl8 ^X64_jneg8, t); asm_output("jnl %p", t); } asm_output 561 nanojit/NativeX64.cpp void Assembler::JNLE8(S n, NIns* t) { emit_target8(n,X64_jle8^X64_jneg8, t); asm_output("jnle %p",t); } asm_output 562 nanojit/NativeX64.cpp void Assembler::JNG8( S n, NIns* t) { emit_target8(n,X64_jg8 ^X64_jneg8, t); asm_output("jng %p", t); } asm_output 563 nanojit/NativeX64.cpp void Assembler::JNGE8(S n, NIns* t) { emit_target8(n,X64_jge8^X64_jneg8, t); asm_output("jnge %p",t); } asm_output 564 nanojit/NativeX64.cpp void Assembler::JNB8( S n, NIns* t) { emit_target8(n,X64_jb8 ^X64_jneg8, t); asm_output("jnb %p", t); } asm_output 565 nanojit/NativeX64.cpp void Assembler::JNBE8(S n, NIns* t) { emit_target8(n,X64_jbe8^X64_jneg8, t); asm_output("jnbe %p",t); } asm_output 566 nanojit/NativeX64.cpp void Assembler::JNA8( S n, NIns* t) { emit_target8(n,X64_ja8 ^X64_jneg8, t); asm_output("jna %p", t); } asm_output 567 nanojit/NativeX64.cpp void Assembler::JNAE8(S n, NIns* t) { emit_target8(n,X64_jae8^X64_jneg8, t); asm_output("jnae %p",t); } asm_output 569 nanojit/NativeX64.cpp void Assembler::CALL( S n, NIns* t) { emit_target32(n,X64_call,t); asm_output("call %p",t); } asm_output 571 nanojit/NativeX64.cpp void Assembler::CALLRAX() { emit(X64_callrax); asm_output("call (rax)"); } asm_output 572 nanojit/NativeX64.cpp void Assembler::RET() { emit(X64_ret); asm_output("ret"); } asm_output 574 nanojit/NativeX64.cpp void Assembler::MOVQSPR(I d, R r) { emit(X64_movqspr | U64(d) << 56 | U64((r&7)<<3) << 40 | U64((r&8)>>1) << 24); asm_output("movq %d(rsp), %s", d, RQ(r)); } // insert r into mod/rm and rex bytes asm_output 576 nanojit/NativeX64.cpp void Assembler::XORPSA(R r, I32 i32) { emitxm_abs(X64_xorpsa, r, i32); asm_output("xorps %s, (0x%x)",RQ(r), i32); } asm_output 577 nanojit/NativeX64.cpp void Assembler::XORPSM(R r, NIns* a64) { emitxm_rel(X64_xorpsm, r, a64); asm_output("xorps %s, (%p)", RQ(r), a64); } asm_output 579 nanojit/NativeX64.cpp void Assembler::X86_AND8R(R r) { emit(X86_and8r | U64(r<<3|(r|4))<<56); asm_output("andb %s, %s", RB(r), RBhi(r)); } asm_output 580 nanojit/NativeX64.cpp void Assembler::X86_SETNP(R r) { emit(X86_setnp | U64(r|4)<<56); asm_output("setnp %s", RBhi(r)); } asm_output 581 nanojit/NativeX64.cpp void Assembler::X86_SETE(R r) { emit(X86_sete | U64(r)<<56); asm_output("sete %s", RB(r)); } asm_output 1696 nanojit/NativeX64.cpp verbose_only( asm_output("[patch entry]"); ) asm_output 139 nanojit/Nativei386.cpp verbose_only( asm_output("[frag entry]"); ) asm_output 356 nanojit/Nativei386.h #define LAHF() do { count_alu(); ALU0(0x9F); asm_output("lahf"); } while(0) asm_output 357 nanojit/Nativei386.h #define SAHF() do { count_alu(); ALU0(0x9E); asm_output("sahf"); } while(0) asm_output 358 nanojit/Nativei386.h #define OR(l,r) do { count_alu(); ALU(0x0b, (l),(r)); asm_output("or %s,%s",gpn(l),gpn(r)); } while(0) asm_output 359 nanojit/Nativei386.h #define AND(l,r) do { count_alu(); ALU(0x23, (l),(r)); asm_output("and %s,%s",gpn(l),gpn(r)); } while(0) asm_output 360 nanojit/Nativei386.h #define XOR(l,r) do { count_alu(); ALU(0x33, (l),(r)); asm_output("xor %s,%s",gpn(l),gpn(r)); } while(0) asm_output 361 nanojit/Nativei386.h #define ADD(l,r) do { count_alu(); ALU(0x03, (l),(r)); asm_output("add %s,%s",gpn(l),gpn(r)); } while(0) asm_output 362 nanojit/Nativei386.h #define SUB(l,r) do { count_alu(); ALU(0x2b, (l),(r)); asm_output("sub %s,%s",gpn(l),gpn(r)); } while(0) asm_output 363 nanojit/Nativei386.h #define MUL(l,r) do { count_alu(); ALU2(0x0faf,(l),(r)); asm_output("mul %s,%s",gpn(l),gpn(r)); } while(0) asm_output 364 nanojit/Nativei386.h #define DIV(r) do { count_alu(); ALU(0xf7, (Register)7,(r)); asm_output("idiv edx:eax, %s",gpn(r)); } while(0) asm_output 365 nanojit/Nativei386.h #define NOT(r) do { count_alu(); ALU(0xf7, (Register)2,(r)); asm_output("not %s",gpn(r)); } while(0) asm_output 366 nanojit/Nativei386.h #define NEG(r) do { count_alu(); ALU(0xf7, (Register)3,(r)); asm_output("neg %s",gpn(r)); } while(0) asm_output 367 nanojit/Nativei386.h #define SHR(r,s) do { count_alu(); ALU(0xd3, (Register)5,(r)); asm_output("shr %s,%s",gpn(r),gpn(s)); } while(0) asm_output 368 nanojit/Nativei386.h #define SAR(r,s) do { count_alu(); ALU(0xd3, (Register)7,(r)); asm_output("sar %s,%s",gpn(r),gpn(s)); } while(0) asm_output 369 nanojit/Nativei386.h #define SHL(r,s) do { count_alu(); ALU(0xd3, (Register)4,(r)); asm_output("shl %s,%s",gpn(r),gpn(s)); } while(0) asm_output 377 nanojit/Nativei386.h #define SHLi(r,i) do { count_alu(); SHIFT(4,r,i); asm_output("shl %s,%d", gpn(r),i); } while(0) asm_output 378 nanojit/Nativei386.h #define SHRi(r,i) do { count_alu(); SHIFT(5,r,i); asm_output("shr %s,%d", gpn(r),i); } while(0) asm_output 379 nanojit/Nativei386.h #define SARi(r,i) do { count_alu(); SHIFT(7,r,i); asm_output("sar %s,%d", gpn(r),i); } while(0) asm_output 381 nanojit/Nativei386.h #define MOVZX8(d,s) do { count_alu(); ALU2(0x0fb6,d,s); asm_output("movzx %s,%s", gpn(d),gpn(s)); } while(0) asm_output 383 nanojit/Nativei386.h #define SUBi(r,i) do { count_alu(); ALUi(0x2d,r,i); asm_output("sub %s,%d",gpn(r),i); } while(0) asm_output 384 nanojit/Nativei386.h #define ADDi(r,i) do { count_alu(); ALUi(0x05,r,i); asm_output("add %s,%d",gpn(r),i); } while(0) asm_output 385 nanojit/Nativei386.h #define ANDi(r,i) do { count_alu(); ALUi(0x25,r,i); asm_output("and %s,%d",gpn(r),i); } while(0) asm_output 386 nanojit/Nativei386.h #define ORi(r,i) do { count_alu(); ALUi(0x0d,r,i); asm_output("or %s,%d",gpn(r),i); } while(0) asm_output 387 nanojit/Nativei386.h #define XORi(r,i) do { count_alu(); ALUi(0x35,r,i); asm_output("xor %s,%d",gpn(r),i); } while(0) asm_output 389 nanojit/Nativei386.h #define ADDmi(d,b,i) do { count_alust(); ALUmi(0x05, d, b, i); asm_output("add %d(%s), %d", d, gpn(b), i); } while(0) asm_output 391 nanojit/Nativei386.h #define TEST(d,s) do { count_alu(); ALU(0x85,d,s); asm_output("test %s,%s",gpn(d),gpn(s)); } while(0) asm_output 392 nanojit/Nativei386.h #define CMP(l,r) do { count_alu(); ALU(0x3b, (l),(r)); asm_output("cmp %s,%s",gpn(l),gpn(r)); } while(0) asm_output 393 nanojit/Nativei386.h #define CMPi(r,i) do { count_alu(); ALUi(0x3d,r,i); asm_output("cmp %s,%d",gpn(r),i); } while(0) asm_output 395 nanojit/Nativei386.h #define MR(d,s) do { count_mov(); ALU(0x8b,d,s); asm_output("mov %s,%s",gpn(d),gpn(s)); } while(0) asm_output 396 nanojit/Nativei386.h #define LEA(r,d,b) do { count_alu(); ALUm(0x8d, r,d,b); asm_output("lea %s,%d(%s)",gpn(r),d,gpn(b)); } while(0) asm_output 399 nanojit/Nativei386.h #define LEAmi4(r,d,i) do { count_alu(); IMM32(d); *(--_nIns) = (2<<6)|((uint8_t)i<<3)|5; *(--_nIns) = (0<<6)|((uint8_t)r<<3)|4; *(--_nIns) = 0x8d; asm_output("lea %s, %p(%s*4)", gpn(r), (void*)d, gpn(i)); } while(0) asm_output 406 nanojit/Nativei386.h asm_output("incl (%p)", (void*)p); } while (0) asm_output 408 nanojit/Nativei386.h #define SETE(r) do { count_alu(); ALU2(0x0f94,(r),(r)); asm_output("sete %s",gpn(r)); } while(0) asm_output 409 nanojit/Nativei386.h #define SETNP(r) do { count_alu(); ALU2(0x0f9B,(r),(r)); asm_output("setnp %s",gpn(r)); } while(0) asm_output 410 nanojit/Nativei386.h #define SETL(r) do { count_alu(); ALU2(0x0f9C,(r),(r)); asm_output("setl %s",gpn(r)); } while(0) asm_output 411 nanojit/Nativei386.h #define SETLE(r) do { count_alu(); ALU2(0x0f9E,(r),(r)); asm_output("setle %s",gpn(r)); } while(0) asm_output 412 nanojit/Nativei386.h #define SETG(r) do { count_alu(); ALU2(0x0f9F,(r),(r)); asm_output("setg %s",gpn(r)); } while(0) asm_output 413 nanojit/Nativei386.h #define SETGE(r) do { count_alu(); ALU2(0x0f9D,(r),(r)); asm_output("setge %s",gpn(r)); } while(0) asm_output 414 nanojit/Nativei386.h #define SETB(r) do { count_alu(); ALU2(0x0f92,(r),(r)); asm_output("setb %s",gpn(r)); } while(0) asm_output 415 nanojit/Nativei386.h #define SETBE(r) do { count_alu(); ALU2(0x0f96,(r),(r)); asm_output("setbe %s",gpn(r)); } while(0) asm_output 416 nanojit/Nativei386.h #define SETA(r) do { count_alu(); ALU2(0x0f97,(r),(r)); asm_output("seta %s",gpn(r)); } while(0) asm_output 417 nanojit/Nativei386.h #define SETAE(r) do { count_alu(); ALU2(0x0f93,(r),(r)); asm_output("setae %s",gpn(r)); } while(0) asm_output 418 nanojit/Nativei386.h #define SETO(r) do { count_alu(); ALU2(0x0f92,(r),(r)); asm_output("seto %s",gpn(r)); } while(0) asm_output 420 nanojit/Nativei386.h #define MREQ(dr,sr) do { count_alu(); ALU2(0x0f44,dr,sr); asm_output("cmove %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 421 nanojit/Nativei386.h #define MRNE(dr,sr) do { count_alu(); ALU2(0x0f45,dr,sr); asm_output("cmovne %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 422 nanojit/Nativei386.h #define MRL(dr,sr) do { count_alu(); ALU2(0x0f4C,dr,sr); asm_output("cmovl %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 423 nanojit/Nativei386.h #define MRLE(dr,sr) do { count_alu(); ALU2(0x0f4E,dr,sr); asm_output("cmovle %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 424 nanojit/Nativei386.h #define MRG(dr,sr) do { count_alu(); ALU2(0x0f4F,dr,sr); asm_output("cmovg %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 425 nanojit/Nativei386.h #define MRGE(dr,sr) do { count_alu(); ALU2(0x0f4D,dr,sr); asm_output("cmovge %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 426 nanojit/Nativei386.h #define MRB(dr,sr) do { count_alu(); ALU2(0x0f42,dr,sr); asm_output("cmovb %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 427 nanojit/Nativei386.h #define MRBE(dr,sr) do { count_alu(); ALU2(0x0f46,dr,sr); asm_output("cmovbe %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 428 nanojit/Nativei386.h #define MRA(dr,sr) do { count_alu(); ALU2(0x0f47,dr,sr); asm_output("cmova %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 429 nanojit/Nativei386.h #define MRAE(dr,sr) do { count_alu(); ALU2(0x0f43,dr,sr); asm_output("cmovae %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 430 nanojit/Nativei386.h #define MRNO(dr,sr) do { count_alu(); ALU2(0x0f41,dr,sr); asm_output("cmovno %s,%s", gpn(dr),gpn(sr)); } while(0) asm_output 439 nanojit/Nativei386.h asm_output("mov %s,%d(%s)",gpn(reg),disp,gpn(base)); } while(0) asm_output 444 nanojit/Nativei386.h asm_output("mov %s,0(%lx)",gpn(reg),(unsigned long)addr); \ asm_output 453 nanojit/Nativei386.h asm_output("mov %s,%d(%s+%s*%c)",gpn(reg),disp,gpn(base),gpn(index),SIBIDX(scale)); \ asm_output 462 nanojit/Nativei386.h #define LD16S(r,d,b) do { count_ld(); ALU2m(0x0fbf,r,d,b); asm_output("movsx16 %s,%d(%s)", gpn(r),d,gpn(b)); } while(0) asm_output 464 nanojit/Nativei386.h #define LD16Sdm(r,addr) do { count_ld(); ALU2dm(0x0fbf,r,addr); asm_output("movsx16 %s,0(%lx)", gpn(r),(unsigned long)addr); } while (0) asm_output 469 nanojit/Nativei386.h asm_output("movsx16 %s,%d(%s+%s*%c)",gpn(r),disp,gpn(base),gpn(index),SIBIDX(scale)); \ asm_output 473 nanojit/Nativei386.h #define LD16Z(r,d,b) do { count_ld(); ALU2m(0x0fb7,r,d,b); asm_output("movzx16 %s,%d(%s)", gpn(r),d,gpn(b)); } while(0) asm_output 475 nanojit/Nativei386.h #define LD16Zdm(r,addr) do { count_ld(); ALU2dm(0x0fb7,r,addr); asm_output("movzx16 %s,0(%lx)", gpn(r),(unsigned long)addr); } while (0) asm_output 480 nanojit/Nativei386.h asm_output("movzx16 %s,%d(%s+%s*%c)",gpn(r),disp,gpn(base),gpn(index),SIBIDX(scale)); \ asm_output 484 nanojit/Nativei386.h #define LD8Z(r,d,b) do { count_ld(); ALU2m(0x0fb6,r,d,b); asm_output("movzx8 %s,%d(%s)", gpn(r),d,gpn(b)); } while(0) asm_output 489 nanojit/Nativei386.h asm_output("movzx8 %s,0(%lx)", gpn(r),(long unsigned)addr); \ asm_output 495 nanojit/Nativei386.h asm_output("movzx8 %s,%d(%s+%s*%c)",gpn(r),disp,gpn(base),gpn(index),SIBIDX(scale)); \ asm_output 499 nanojit/Nativei386.h #define LD8S(r,d,b) do { count_ld(); ALU2m(0x0fbe,r,d,b); asm_output("movsx8 %s,%d(%s)", gpn(r),d,gpn(b)); } while(0) asm_output 504 nanojit/Nativei386.h asm_output("movsx8 %s,0(%lx)", gpn(r),(long unsigned)addr); \ asm_output 510 nanojit/Nativei386.h asm_output("movsx8 %s,%d(%s+%s*%c)",gpn(r),disp,gpn(base),gpn(index),SIBIDX(scale)); \ asm_output 519 nanojit/Nativei386.h asm_output("mov %s,%d",gpn(r),i); } while(0) asm_output 526 nanojit/Nativei386.h asm_output("mov8 %d(%s),%s",disp,base==UnknownReg?"0":gpn(base),gpn(reg)); } while(0) asm_output 531 nanojit/Nativei386.h asm_output("mov16 %d(%s),%s",disp,base==UnknownReg?"0":gpn(base),gpn(reg)); } while(0) asm_output 536 nanojit/Nativei386.h asm_output("mov %d(%s),%s",disp,base==UnknownReg?"0":gpn(base),gpn(reg)); } while(0) asm_output 544 nanojit/Nativei386.h asm_output("mov8 %d(%s),%d",disp,gpn(base),imm); } while(0) asm_output 553 nanojit/Nativei386.h asm_output("mov16 %d(%s),%d",disp,gpn(base),imm); } while(0) asm_output 561 nanojit/Nativei386.h asm_output("mov %d(%s),%d",disp,gpn(base),imm); } while(0) asm_output 563 nanojit/Nativei386.h #define RET() do { count_ret(); ALU0(0xc3); asm_output("ret"); } while(0) asm_output 564 nanojit/Nativei386.h #define NOP() do { count_alu(); ALU0(0x90); asm_output("nop"); } while(0) asm_output 565 nanojit/Nativei386.h #define INT3() do { ALU0(0xcc); asm_output("int3"); } while(0) asm_output 572 nanojit/Nativei386.h asm_output("push %d",i); \ asm_output 581 nanojit/Nativei386.h asm_output("push %d",i); } while(0) asm_output 588 nanojit/Nativei386.h asm_output("push %s",gpn(r)); } while(0) asm_output 593 nanojit/Nativei386.h asm_output("push %d(%s)",d,gpn(b)); } while(0) asm_output 600 nanojit/Nativei386.h asm_output("pop %s",gpn(r)); } while(0) asm_output 615 nanojit/Nativei386.h asm_output("%-5s %p",(n),(next+tt)); \ asm_output 622 nanojit/Nativei386.h asm_output("%-5s %p",(n),(next+tt)); \ asm_output 642 nanojit/Nativei386.h asm_output("jmp %p",(next+tt)); \ asm_output 652 nanojit/Nativei386.h asm_output("jmp %p",(next+(o))); } while(0) asm_output 658 nanojit/Nativei386.h asm_output("jmp *(%s)", gpn(r)); } while (0) asm_output 667 nanojit/Nativei386.h asm_output("jmp *(%s*%d+%p)", gpn(x), 1<<(ss), (void*)(addr)); } while (0) asm_output 717 nanojit/Nativei386.h asm_output("movsd %s,%d(%s)",gpn(r),(d),gpn(b)); \ asm_output 729 nanojit/Nativei386.h asm_output("movsd %s,(#%p) // =%f",gpn(r),(void*)daddr,*daddr); \ asm_output 735 nanojit/Nativei386.h asm_output("movsd %d(%s),%s",(d),gpn(b),gpn(r)); \ asm_output 741 nanojit/Nativei386.h asm_output("movq %s,%d(%s)",gpn(r),d,gpn(b)); \ asm_output 747 nanojit/Nativei386.h asm_output("movq %d(%s),%s",(d),gpn(b),gpn(r)); \ asm_output 753 nanojit/Nativei386.h asm_output("movss %s,%d(%s)",gpn(r),d,gpn(b)); \ asm_output 759 nanojit/Nativei386.h asm_output("movss %d(%s),%s",(d),gpn(b),gpn(r)); \ asm_output 765 nanojit/Nativei386.h asm_output("cvtsi2sd %s,%s",gpn(xr),gpn(gr)); \ asm_output 771 nanojit/Nativei386.h asm_output("cvtsd2ss %s,%s",gpn(xr),gpn(gr)); \ asm_output 777 nanojit/Nativei386.h asm_output("cvtss2sd %s,%s",gpn(xr),gpn(gr)); \ asm_output 783 nanojit/Nativei386.h asm_output("cvtdq2pd %s,%s",gpn(dstr),gpn(srcr)); \ asm_output 797 nanojit/Nativei386.h asm_output("movd %s,%s",gpn(d),gpn(s)); \ asm_output 804 nanojit/Nativei386.h asm_output("movsd %s,%s",gpn(rd),gpn(rs)); \ asm_output 811 nanojit/Nativei386.h asm_output("movd %d(%s),%s", d, gpn(b), gpn(xrs));\ asm_output 818 nanojit/Nativei386.h asm_output("addsd %s,%s",gpn(rd),gpn(rs)); \ asm_output 831 nanojit/Nativei386.h asm_output("addsd %s,%p // =%f",gpn(r),(void*)daddr,*daddr); \ asm_output 838 nanojit/Nativei386.h asm_output("subsd %s,%s",gpn(rd),gpn(rs)); \ asm_output 844 nanojit/Nativei386.h asm_output("mulsd %s,%s",gpn(rd),gpn(rs)); \ asm_output 850 nanojit/Nativei386.h asm_output("divsd %s,%s",gpn(rd),gpn(rs)); \ asm_output 856 nanojit/Nativei386.h asm_output("ucomisd %s,%s",gpn(rl),gpn(rr)); \ asm_output 863 nanojit/Nativei386.h asm_output("cvtsi2sd %s,%d(%s)",gpn(xr),(d),gpn(b)); \ asm_output 874 nanojit/Nativei386.h asm_output("xorpd %s,[0x%p]",gpn(r),(void*)(maskaddr));\ asm_output 880 nanojit/Nativei386.h asm_output("xorpd %s,%s",gpn(rd),gpn(rs)); \ asm_output 905 nanojit/Nativei386.h asm_output("test ah, %d",i); } while(0) asm_output 915 nanojit/Nativei386.h asm_output("test ax, %d",i); } while(0) asm_output 917 nanojit/Nativei386.h #define FNSTSW_AX() do { count_fpu(); FPUc(0xdfe0); asm_output("fnstsw_ax"); } while(0) asm_output 918 nanojit/Nativei386.h #define FCHS() do { count_fpu(); FPUc(0xd9e0); asm_output("fchs"); } while(0) asm_output 919 nanojit/Nativei386.h #define FLD1() do { count_fpu(); FPUc(0xd9e8); asm_output("fld1"); fpu_push(); } while(0) asm_output 920 nanojit/Nativei386.h #define FLDZ() do { count_fpu(); FPUc(0xd9ee); asm_output("fldz"); fpu_push(); } while(0) asm_output 921 nanojit/Nativei386.h #define FFREE(r) do { count_fpu(); FPU(0xddc0, r); asm_output("ffree %s",fpn(r)); } while(0) asm_output 922 nanojit/Nativei386.h #define FST32(p,d,b) do { count_stq(); FPUm(0xd902|(p), d, b); asm_output("fst%s32 %d(%s)",((p)?"p":""),d,gpn(b)); if (p) fpu_pop(); } while(0) asm_output 923 nanojit/Nativei386.h #define FSTQ(p,d,b) do { count_stq(); FPUm(0xdd02|(p), d, b); asm_output("fst%sq %d(%s)",((p)?"p":""),d,gpn(b)); if (p) fpu_pop(); } while(0) asm_output 925 nanojit/Nativei386.h #define FCOM(p,d,b) do { count_fpuld(); FPUm(0xdc02|(p), d, b); asm_output("fcom%s %d(%s)",((p)?"p":""),d,gpn(b)); if (p) fpu_pop(); } while(0) asm_output 926 nanojit/Nativei386.h #define FLD32(d,b) do { count_ldq(); FPUm(0xd900, d, b); asm_output("fld32 %d(%s)",d,gpn(b)); fpu_push();} while(0) asm_output 927 nanojit/Nativei386.h #define FLDQ(d,b) do { count_ldq(); FPUm(0xdd00, d, b); asm_output("fldq %d(%s)",d,gpn(b)); fpu_push();} while(0) asm_output 928 nanojit/Nativei386.h #define FILDQ(d,b) do { count_fpuld(); FPUm(0xdf05, d, b); asm_output("fildq %d(%s)",d,gpn(b)); fpu_push(); } while(0) asm_output 929 nanojit/Nativei386.h #define FILD(d,b) do { count_fpuld(); FPUm(0xdb00, d, b); asm_output("fild %d(%s)",d,gpn(b)); fpu_push(); } while(0) asm_output 930 nanojit/Nativei386.h #define FADD(d,b) do { count_fpu(); FPUm(0xdc00, d, b); asm_output("fadd %d(%s)",d,gpn(b)); } while(0) asm_output 931 nanojit/Nativei386.h #define FSUB(d,b) do { count_fpu(); FPUm(0xdc04, d, b); asm_output("fsub %d(%s)",d,gpn(b)); } while(0) asm_output 932 nanojit/Nativei386.h #define FSUBR(d,b) do { count_fpu(); FPUm(0xdc05, d, b); asm_output("fsubr %d(%s)",d,gpn(b)); } while(0) asm_output 933 nanojit/Nativei386.h #define FMUL(d,b) do { count_fpu(); FPUm(0xdc01, d, b); asm_output("fmul %d(%s)",d,gpn(b)); } while(0) asm_output 934 nanojit/Nativei386.h #define FDIV(d,b) do { count_fpu(); FPUm(0xdc06, d, b); asm_output("fdiv %d(%s)",d,gpn(b)); } while(0) asm_output 935 nanojit/Nativei386.h #define FDIVR(d,b) do { count_fpu(); FPUm(0xdc07, d, b); asm_output("fdivr %d(%s)",d,gpn(b)); } while(0) asm_output 936 nanojit/Nativei386.h #define FINCSTP() do { count_fpu(); FPUc(0xd9f7); asm_output("fincstp"); } while(0) asm_output 937 nanojit/Nativei386.h #define FSTP(r) do { count_fpu(); FPU(0xddd8, r&7); asm_output("fstp %s",fpn(r)); fpu_pop();} while(0) asm_output 938 nanojit/Nativei386.h #define FCOMP() do { count_fpu(); FPUc(0xD8D9); asm_output("fcomp"); fpu_pop();} while(0) asm_output 939 nanojit/Nativei386.h #define FCOMPP() do { count_fpu(); FPUc(0xDED9); asm_output("fcompp"); fpu_pop();fpu_pop();} while(0) asm_output 940 nanojit/Nativei386.h #define FLDr(r) do { count_ldq(); FPU(0xd9c0,r); asm_output("fld %s",fpn(r)); fpu_push(); } while(0) asm_output 941 nanojit/Nativei386.h #define EMMS() do { count_fpu(); FPUc(0x0f77); asm_output("emms"); } while (0) asm_output 950 nanojit/Nativei386.h verbose_only(asm_output("call %s",(c->_name));) \ asm_output 959 nanojit/Nativei386.h verbose_only(asm_output("call %s",gpn(r));) \