Home | History | Annotate | Download | only in priv

Lines Matching full:addinstr

209 static void addInstr ( ISelEnv* env, X86Instr* instr )
311 addInstr(env,
318 addInstr(env,
349 addInstr(env, X86Instr_Push(iselIntExpr_RMI(env, arg)));
355 addInstr(env, X86Instr_Push(X86RMI_Reg(rHi)));
356 addInstr(env, X86Instr_Push(X86RMI_Reg(rLo)));
376 addInstr(env, X86Instr_Call( cc, toUInt(Ptr_to_ULong(cee->addr)),
528 addInstr( env, mk_iMOVsd_RR( tmpregs[argregX], argregs[argregX] ) );
538 addInstr(env, X86Instr_Alu32R(Xalu_MOV,
549 addInstr(env, mk_iMOVsd_RR( hregX86_EBP(), argregs[0]));
559 addInstr(env, X86Instr_Push(X86RMI_Reg(hregX86_EBP())));
626 addInstr(env, mk_iMOVsd_RR(roff, tmp));
628 addInstr(env,
631 addInstr(env,
648 addInstr(env, X86Instr_Push(X86RMI_Imm(DEFAULT_FPUCW)));
649 addInstr(env, X86Instr_FpLdCW(zero_esp));
674 addInstr(env, mk_iMOVsd_RR(rrm, rrm2));
675 addInstr(env, X86Instr_Alu32R(Xalu_AND, X86RMI_Imm(3), rrm2));
676 addInstr(env, X86Instr_Sh32(Xsh_SHL, 10, rrm2));
677 addInstr(env, X86Instr_Alu32R(Xalu_OR, X86RMI_Imm(DEFAULT_FPUCW), rrm2));
678 addInstr(env, X86Instr_Push(X86RMI_Reg(rrm2)));
679 addInstr(env, X86Instr_FpLdCW(zero_esp));
693 addInstr(env, X86Instr_SseReRg(Xsse_XOR, dst, dst));
695 addInstr(env, X86Instr_Sse32Fx4(Xsse_CMPEQF, dst, dst));
697 addInstr(env, X86Instr_SseReRg(Xsse_XOR, src, dst));
714 addInstr(env, X86Instr_FpLdSt(False/*store*/, 8, reg, zero_esp));
715 addInstr(env, X86Instr_FpLdSt(True/*load*/, 8, reg, zero_esp));
775 addInstr(env, X86Instr_Alu32R(Xalu_MOV,
780 addInstr(env, X86Instr_LoadEX(2,False,amode,dst));
784 addInstr(env, X86Instr_LoadEX(1,False,amode,dst));
803 addInstr(env, X86Instr_FpBinary(
810 addInstr(env, X86Instr_FpStSW_AX());
811 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), dst));
812 addInstr(env, X86Instr_Alu32R(Xalu_AND, X86RMI_Imm(0x4700), dst));
828 addInstr(env, mk_iMOVsd_RR(reg,dst));
829 addInstr(env, X86Instr_Unary32(Xun_NEG,dst));
856 addInstr(env, mk_iMOVsd_RR(reg,dst));
857 addInstr(env, X86Instr_Alu32R(aluOp, rmi, dst));
894 addInstr(env, mk_iMOVsd_RR(regL,dst));
899 addInstr(env, X86Instr_Alu32R(
903 addInstr(env, X86Instr_Alu32R(
907 addInstr(env, X86Instr_Sh32(Xsh_SHL, 24, dst));
908 addInstr(env, X86Instr_Sh32(Xsh_SAR, 24, dst));
911 addInstr(env, X86Instr_Sh32(Xsh_SHL, 16, dst));
912 addInstr(env, X86Instr_Sh32(Xsh_SAR, 16, dst));
927 addInstr(env, X86Instr_Sh32( shOp, nshift, dst ));
931 addInstr(env, mk_iMOVsd_RR(regR,hregX86_ECX()));
932 addInstr(env, X86Instr_Sh32(shOp, 0/* %cl */, dst));
943 addInstr(env, mk_iMOVsd_RR(src1,dst));
944 addInstr(env, X86Instr_Alu32R(Xalu_CMP, X86RMI_Reg(src2), dst));
945 addInstr(env, X86Instr_CMov32(Xcc_B, X86RM_Reg(src2), dst));
954 addInstr(env, mk_iMOVsd_RR(hi8s, hi8));
955 addInstr(env, mk_iMOVsd_RR(lo8s, lo8));
956 addInstr(env, X86Instr_Sh32(Xsh_SHL, 8, hi8));
957 addInstr(env, X86Instr_Alu32R(Xalu_AND, X86RMI_Imm(0xFF), lo8));
958 addInstr(env, X86Instr_Alu32R(Xalu_OR, X86RMI_Reg(lo8), hi8));
967 addInstr(env, mk_iMOVsd_RR(hi16s, hi16));
968 addInstr(env, mk_iMOVsd_RR(lo16s, lo16));
969 addInstr(env, X86Instr_Sh32(Xsh_SHL, 16, hi16));
970 addInstr(env, X86Instr_Alu32R(Xalu_AND, X86RMI_Imm(0xFFFF), lo16));
971 addInstr(env, X86Instr_Alu32R(Xalu_OR, X86RMI_Reg(lo16), hi16));
988 addInstr(env, mk_iMOVsd_RR(a16s, a16));
989 addInstr(env, mk_iMOVsd_RR(b16s, b16));
990 addInstr(env, X86Instr_Sh32(Xsh_SHL, shift, a16));
991 addInstr(env, X86Instr_Sh32(Xsh_SHL, shift, b16));
992 addInstr(env, X86Instr_Sh32(shr_op, shift, a16));
993 addInstr(env, X86Instr_Sh32(shr_op, shift, b16));
994 addInstr(env, X86Instr_Alu32R(Xalu_MUL, X86RMI_Reg(a16), b16));
1002 addInstr(env, X86Instr_FpCmp(fL,fR,dst));
1005 addInstr(env, X86Instr_Sh32(Xsh_SHR, 8, dst));
1031 addInstr(env, X86Instr_FpLdStI(False/*store*/,
1036 addInstr(env, X86Instr_LoadEX(2,False,zero_esp,dst));
1040 addInstr(env, X86Instr_Alu32R(
1067 addInstr(env, mk_iMOVsd_RR(src,dst) );
1068 addInstr(env, X86Instr_Alu32R(Xalu_AND,
1083 addInstr(env, X86Instr_LoadEX(1,False,amode,dst));
1097 addInstr(env, X86Instr_LoadEX(1,True,amode,dst));
1111 addInstr(env, X86Instr_LoadEX(2,False,amode,dst));
1125 addInstr(env, X86Instr_LoadEX(1,False,amode,dst));
1139 addInstr(env, X86Instr_LoadEX(2,False,amode,dst));
1151 addInstr(env, mk_iMOVsd_RR(src,dst) );
1152 addInstr(env, X86Instr_Alu32R(Xalu_AND,
1162 addInstr(env, mk_iMOVsd_RR(src,dst) );
1163 addInstr(env, X86Instr_Sh32(Xsh_SHL, amt, dst));
1164 addInstr(env, X86Instr_Sh32(Xsh_SAR, amt, dst));
1172 addInstr(env, mk_iMOVsd_RR(src,dst) );
1173 addInstr(env, X86Instr_Unary32(Xun_NOT,dst));
1191 addInstr(env, mk_iMOVsd_RR(src,dst) );
1192 addInstr(env, X86Instr_Sh32(Xsh_SHR, shift, dst));
1199 addInstr(env, X86Instr_Set32(cond,dst));
1208 addInstr(env, X86Instr_Set32(cond,dst));
1209 addInstr(env, X86Instr_Sh32(Xsh_SHL, 31, dst));
1210 addInstr(env, X86Instr_Sh32(Xsh_SAR, 31, dst));
1217 addInstr(env, X86Instr_Bsfr32(True,src,dst));
1227 addInstr(env, X86Instr_Bsfr32(False,src,tmp));
1228 addInstr(env, X86Instr_Alu32R(Xalu_MOV,
1230 addInstr(env, X86Instr_Alu32R(Xalu_SUB,
1238 addInstr(env, mk_iMOVsd_RR(src,dst));
1239 addInstr(env, X86Instr_Unary32(Xun_NEG,dst));
1240 addInstr(env, X86Instr_Alu32R(Xalu_OR,
1242 addInstr(env, X86Instr_Sh32(Xsh_SAR, 31, dst));
1250 addInstr(env, mk_iMOVsd_RR(src, dst));
1251 addInstr(env, X86Instr_Unary32(Xun_NEG, dst));
1252 addInstr(env, X86Instr_Alu32R(Xalu_OR, X86RMI_Reg(src), dst));
1261 addInstr(env, X86Instr_SseLdSt(False/*store*/, vec, esp0));
1262 addInstr(env, X86Instr_Alu32R( Xalu_MOV, X86RMI_Mem(esp0), dst ));
1280 addInstr(env,
1283 addInstr(env,
1306 addInstr(env, X86Instr_Alu32R(
1315 addInstr(env, X86Instr_LoadEX(
1332 addInstr(env, X86Instr_LoadEX( 1, False, am, dst ));
1336 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Mem(am), dst));
1355 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), dst));
1364 addInstr(env, X86Instr_Alu32R(Xalu_MOV, rmi, r));
1376 addInstr(env, mk_iMOVsd_RR(rX,dst));
1378 addInstr(env, X86Instr_Test32(0xFF, r8));
1379 addInstr(env, X86Instr_CMov32(Xcc_Z,r0,dst));
1674 addInstr(env, X86Instr_Test32(1,X86RM_Reg(r32)));
1685 addInstr(env, X86Instr_Alu32R(Xalu_MOV,X86RMI_Imm(0),r));
1686 addInstr(env, X86Instr_Alu32R(Xalu_XOR,X86RMI_Reg(r),r));
1701 addInstr(env, X86Instr_Test32(1,rm));
1711 addInstr(env, X86Instr_Test32(0xFF,rm));
1721 addInstr(env, X86Instr_Test32(0xFFFF,rm));
1736 addInstr(env, mk_iMOVsd_RR(r0, tmp));
1737 addInstr(env, X86Instr_Alu32R(Xalu_AND,rmi1,tmp));
1751 addInstr(env, mk_iMOVsd_RR(r0, tmp));
1752 addInstr(env, X86Instr_Alu32R(Xalu_OR,rmi1,tmp));
1763 addInstr(env, X86Instr_Alu32M(Xalu_CMP, X86RI_Imm(0), am));
1772 addInstr(env, X86Instr_Alu32R(Xalu_CMP,rmi2,r1));
1787 addInstr(env, mk_iMOVsd_RR(hi1, tmp));
1788 addInstr(env, X86Instr_Alu32R(Xalu_OR,X86RMI_Reg(lo1),tmp));
1790 addInstr(env, X86Instr_Alu32R(Xalu_OR,X86RMI_Reg(hi2),tmp));
1791 addInstr(env, X86Instr_Alu32R(Xalu_OR,X86RMI_Reg(lo2),tmp));
1802 addInstr(env, mk_iMOVsd_RR(hi, tmp));
1803 addInstr(env, X86Instr_Alu32R(Xalu_OR,X86RMI_Reg(lo), tmp));
1817 addInstr(env, X86Instr_Test32(0xFF,X86RM_Reg(r1)));
1827 addInstr(env, mk_iMOVsd_RR(r1,r));
1828 addInstr(env, X86Instr_Alu32R(Xalu_XOR,rmi2,r));
1829 addInstr(env, X86Instr_Test32(0xFF,X86RM_Reg(r)));
1847 addInstr(env, mk_iMOVsd_RR(r1,r));
1848 addInstr(env, X86Instr_Alu32R(Xalu_XOR,rmi2,r));
1849 addInstr(env, X86Instr_Test32(0xFFFF,X86RM_Reg(r)));
1870 addInstr(env, X86Instr_Alu32R(Xalu_CMP,
1888 addInstr(env, X86Instr_Alu32R(Xalu_CMP,rmi2,r1));
1909 addInstr(env, mk_iMOVsd_RR(hi1, tHi));
1910 addInstr(env, X86Instr_Alu32R(Xalu_XOR,X86RMI_Reg(hi2), tHi));
1911 addInstr(env, mk_iMOVsd_RR(lo1, tLo));
1912 addInstr(env, X86Instr_Alu32R(Xalu_XOR,X86RMI_Reg(lo2), tLo));
1913 addInstr
1965 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Imm(wLo), tLo));
1969 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Imm(wHi), tHi));
1970 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Imm(wLo), tLo));
1992 addInstr(env, X86Instr_Alu32R( Xalu_MOV, X86RMI_Mem(am0), tLo ));
1993 addInstr(env, X86Instr_Alu32R( Xalu_MOV, X86RMI_Mem(am4), tHi ));
2005 addInstr(env, X86Instr_Alu32R( Xalu_MOV, X86RMI_Mem(am), tLo ));
2006 addInstr(env, X86Instr_Alu32R( Xalu_MOV, X86RMI_Mem(am4), tHi ));
2020 addInstr(env, X86Instr_Alu32R( Xalu_MOV, X86RMI_Mem(am), tLo ));
2021 addInstr(env, X86Instr_Alu32R( Xalu_MOV, X86RMI_Mem(am4), tHi ));
2036 addInstr(env, mk_iMOVsd_RR( e0Hi, tHi ) );
2037 addInstr(env, mk_iMOVsd_RR( e0Lo, tLo ) );
2038 addInstr(env, X86Instr_Push(X86RMI_Imm(0)));
2039 addInstr(env, X86Instr_Test32(0xFF, r8));
2040 addInstr(env, X86Instr_CMov32(Xcc_NZ,X86RM_Mem(zero_esp),tHi));
2041 addInstr(env, X86Instr_CMov32(Xcc_NZ,X86RM_Mem(zero_esp),tLo));
2056 addInstr(env, mk_iMOVsd_RR( e0Hi, tHi ) );
2057 addInstr(env, mk_iMOVsd_RR( e0Lo, tLo ) );
2058 addInstr(env, X86Instr_Push(X86RMI_Imm(0)));
2059 addInstr(env, X86Instr_Test32(0xFF, r8));
2060 addInstr(env, X86Instr_CMov32(Xcc_Z,X86RM_Mem(zero_esp),tHi));
2061 addInstr(env, X86Instr_CMov32(Xcc_Z,X86RM_Mem(zero_esp),tLo));
2076 addInstr(env, mk_iMOVsd_RR(eXHi, tHi));
2077 addInstr(env, mk_iMOVsd_RR(eXLo, tLo));
2079 addInstr(env, X86Instr_Test32(0xFF, r8));
2082 addInstr(env, X86Instr_CMov32(Xcc_Z,X86RM_Reg(e0Hi),tHi));
2083 addInstr(env, X86Instr_CMov32(Xcc_Z,X86RM_Reg(e0Lo),tLo));
2103 addInstr(env, mk_iMOVsd_RR(rRight, hregX86_EAX()));
2104 addInstr(env, X86Instr_MulL(syned, rmLeft));
2106 addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
2107 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
2124 addInstr(env, mk_iMOVsd_RR(sHi, hregX86_EDX()));
2125 addInstr(env, mk_iMOVsd_RR(sLo, hregX86_EAX()));
2126 addInstr(env, X86Instr_Div(syned, rmRight));
2127 addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
2128 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
2146 addInstr(env, mk_iMOVsd_RR(xHi, tHi));
2147 addInstr(env, X86Instr_Alu32R(op, X86RMI_Reg(yHi), tHi));
2148 addInstr(env, mk_iMOVsd_RR(xLo, tLo));
2149 addInstr(env, X86Instr_Alu32R(op, X86RMI_Reg(yLo), tLo));
2167 addInstr(env, mk_iMOVsd_RR(xHi, tHi));
2168 addInstr(env, mk_iMOVsd_RR(xLo, tLo));
2169 addInstr(env, X86Instr_Alu32R(Xalu_ADD, X86RMI_Imm(wLo), tLo));
2170 addInstr(env, X86Instr_Alu32R(Xalu_ADC, X86RMI_Imm(wHi), tHi));
2181 addInstr(env, mk_iMOVsd_RR(xHi, tHi));
2182 addInstr(env, mk_iMOVsd_RR(xLo, tLo));
2185 addInstr(env, X86Instr_Alu32R(Xalu_ADD, X86RMI_Reg(yLo), tLo));
2186 addInstr(env, X86Instr_Alu32R(Xalu_ADC, X86RMI_Reg(yHi), tHi));
2188 addInstr(env, X86Instr_Alu32R(Xalu_SUB, X86RMI_Reg(yLo), tLo));
2189 addInstr(env, X86Instr_Alu32R(Xalu_SBB, X86RMI_Reg(yHi), tHi));
2229 addInstr(env, mk_iMOVsd_RR(rAmt, hregX86_ECX()));
2230 addInstr(env, mk_iMOVsd_RR(sHi, tHi));
2231 addInstr(env, mk_iMOVsd_RR(sLo, tLo));
2234 addInstr(env, X86Instr_Sh3232(Xsh_SHL, 0/*%cl*/, tLo, tHi));
2235 addInstr(env, X86Instr_Sh32(Xsh_SHL, 0/*%cl*/, tLo));
2236 addInstr(env, X86Instr_Test32(32, X86RM_Reg(hregX86_ECX())));
2237 addInstr(env, X86Instr_CMov32(Xcc_NZ, X86RM_Reg(tLo), tHi));
2238 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Imm(0), tTemp));
2239 addInstr(env, X86Instr_CMov32(Xcc_NZ, X86RM_Reg(tTemp), tLo));
2271 addInstr(env, mk_iMOVsd_RR(rAmt, hregX86_ECX()));
2272 addInstr(env, mk_iMOVsd_RR(sHi, tHi));
2273 addInstr(env, mk_iMOVsd_RR(sLo, tLo));
2276 addInstr(env, X86Instr_Sh3232(Xsh_SHR, 0/*%cl*/, tHi, tLo));
2277 addInstr(env, X86Instr_Sh32(Xsh_SHR, 0/*%cl*/, tHi));
2278 addInstr(env, X86Instr_Test32(32, X86RM_Reg(hregX86_ECX())));
2279 addInstr(env, X86Instr_CMov32(Xcc_NZ, X86RM_Reg(tHi), tLo));
2280 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Imm(0), tTemp));
2281 addInstr(env, X86Instr_CMov32(Xcc_NZ, X86RM_Reg(tTemp), tHi));
2316 addInstr(env, X86Instr_FpLdStI(False/*store*/, 8, rf, zero_esp));
2320 addInstr(env, X86Instr_Alu32R(
2322 addInstr(env, X86Instr_Alu32R(
2445 addInstr(env, X86Instr_Push(X86RMI_Reg(yHi)));
2446 addInstr(env, X86Instr_Push(X86RMI_Reg(yLo)));
2448 addInstr(env, X86Instr_Push(X86RMI_Reg(xHi)));
2449 addInstr(env, X86Instr_Push(X86RMI_Reg(xLo)));
2450 addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn, 0 ));
2452 addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
2453 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
2485 addInstr(env, X86Instr_Push(y));
2487 addInstr(env, X86Instr_Push(X86RMI_Reg(xHi)));
2488 addInstr(env, X86Instr_Push(X86RMI_Reg(xLo)));
2489 addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn, 0 ));
2491 addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
2492 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
2513 addInstr(env, mk_iMOVsd_RR(src,tHi));
2514 addInstr(env, mk_iMOVsd_RR(src,tLo));
2515 addInstr(env, X86Instr_Sh32(Xsh_SAR, 31, tHi));
2526 addInstr(env, mk_iMOVsd_RR(src,tLo));
2527 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Imm(0), tHi));
2538 addInstr(env, mk_iMOVsd_RR(src,tLo));
2539 addInstr(env, X86Instr_Alu32R(Xalu_AND,
2541 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Imm(0), tHi));
2558 addInstr(env, X86Instr_SseLdSt(False/*store*/, vec, esp0));
2559 addInstr(env, X86Instr_Alu32R( Xalu_MOV,
2561 addInstr(env, X86Instr_Alu32R( Xalu_MOV,
2574 addInstr(env, X86Instr_Set32(cond,tLo));
2575 addInstr(env, X86Instr_Sh32(Xsh_SHL, 31, tLo));
2576 addInstr(env, X86Instr_Sh32(Xsh_SAR, 31, tLo));
2577 addInstr(env, mk_iMOVsd_RR(tLo, tHi));
2589 addInstr(env, mk_iMOVsd_RR(sHi, tHi));
2590 addInstr(env, mk_iMOVsd_RR(sLo, tLo));
2591 addInstr(env, X86Instr_Unary32(Xun_NOT,tHi));
2592 addInstr(env, X86Instr_Unary32(Xun_NOT,tLo));
2606 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Imm(0), tLo));
2607 addInstr(env, X86Instr_Alu32R(Xalu_SUB, X86RMI_Reg(yLo), tLo));
2609 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Imm(0), tHi));
2610 addInstr(env, X86Instr_Alu32R(Xalu_SBB, X86RMI_Reg(yHi), tHi));
2614 addInstr(env, X86Instr_Alu32R(Xalu_OR, X86RMI_Reg(yLo), tLo));
2615 addInstr(env, X86Instr_Alu32R(Xalu_OR, X86RMI_Reg(yHi), tHi));
2637 addInstr(env, mk_iMOVsd_RR(xHi,xBoth));
2638 addInstr(env, X86Instr_Alu32R(Xalu_OR,
2642 addInstr(env, mk_iMOVsd_RR(yHi,merged));
2643 addInstr(env, X86Instr_Alu32R(Xalu_OR,
2645 addInstr(env, X86Instr_Alu32R(Xalu_OR,
2649 addInstr(env, mk_iMOVsd_RR(merged,tmp2));
2650 addInstr(env, X86Instr_Unary32(Xun_NEG,tmp2));
2651 addInstr(env, X86Instr_Alu32R(Xalu_OR,
2653 addInstr(env, X86Instr_Sh32(Xsh_SAR, 31, tmp2));
2665 addInstr(env, mk_iMOVsd_RR(srcHi,tmp1));
2666 addInstr(env, X86Instr_Alu32R(Xalu_OR,
2669 addInstr(env, mk_iMOVsd_RR(tmp1,tmp2));
2670 addInstr(env, X86Instr_Unary32(Xun_NEG,tmp2));
2671 addInstr(env, X86Instr_Alu32R(Xalu_OR,
2673 addInstr(env, X86Instr_Sh32(Xsh_SAR, 31, tmp2));
2694 addInstr(env,
2697 addInstr(env,
2700 addInstr(env,
2725 addInstr(env, X86Instr_Push(X86RMI_Reg(xHi)));
2726 addInstr(env, X86Instr_Push(X86RMI_Reg(xLo)));
2727 addInstr(env, X86Instr_Call( Xcc_ALWAYS, (UInt)fn, 0 ));
2729 addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
2730 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
2750 addInstr(env, mk_iMOVsd_RR(hregX86_EDX(), tHi));
2751 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), tLo));
2795 addInstr(env, X86Instr_FpLdSt(True/*load*/, 4, res, am));
2807 addInstr(env, X86Instr_Fp64to32(src,dst));
2816 addInstr(env, X86Instr_FpLdSt( True/*load*/, 4, res, am ));
2827 addInstr(env, X86Instr_Push(rmi));
2828 addInstr(env, X86Instr_FpLdSt(
2846 addInstr(env, X86Instr_FpUnary(Xfp_ROUND, rf, dst));
2925 addInstr(env, X86Instr_Push(X86RMI_Imm(u.u32x2[1])));
2926 addInstr(env, X86Instr_Push(X86RMI_Imm(u.u32x2[0])));
2927 addInstr(env, X86Instr_FpLdSt(True/*load*/, 8, freg,
2938 addInstr(env, X86Instr_FpLdSt(True/*load*/, 8, res, am));
2946 addInstr(env, X86Instr_FpLdSt( True/*load*/, 8, res, am ));
2956 addInstr(env, X86Instr_FpLdSt( True/*load*/, 8, res, am ));
2982 addInstr(env, X86Instr_FpBinary(fpop,srcL,srcR,res));
3001 addInstr(env, X86Instr_FpUnary(Xfp_ROUND, rf, dst));
3013 addInstr(env, X86Instr_Push(X86RMI_Reg(rHi)));
3014 addInstr(env, X86Instr_Push(X86RMI_Reg(rLo)));
3019 addInstr(env, X86Instr_FpLdStI(
3045 addInstr(env, X86Instr_FpUnary(fpop,src,res));
3063 addInstr(env, X86Instr_FpUnary(fpop,src,res));
3075 addInstr(env, X86Instr_Push(X86RMI_Reg(ri)));
3077 addInstr(env, X86Instr_FpLdStI(
3091 addInstr(env, X86Instr_Push(X86RMI_Reg(rHi)));
3092 addInstr(env, X86Instr_Push(X86RMI_Reg(rLo)));
3093 addInstr(env, X86Instr_FpLdSt(
3117 addInstr(env, X86Instr_FpUnary(Xfp_MOV,rX,dst));
3118 addInstr(env, X86Instr_Test32(0xFF, r8));
3119 addInstr(env, X86Instr_FpCMov(Xcc_Z,r0,dst));
3178 addInstr(env, X86Instr_SseLdSt(
3190 addInstr(env, X86Instr_SseLdSt( True/*load*/, dst, am ));
3197 addInstr(env, X86Instr_SseConst(e->Iex.Const.con->Ico.V128, dst));
3212 addInstr(env, X86Instr_SseLdzLO(8, dst, am));
3244 addInstr(env, X86Instr_SseReRg(Xsse_XOR, tmp, tmp));
3245 addInstr(env, X86Instr_SseReRg(Xsse_CMPEQ32, arg, tmp));
3247 addInstr(env, X86Instr_SseShuf(0xB1, tmp, dst));
3248 addInstr(env, X86Instr_SseReRg(Xsse_OR, tmp, dst));
3267 addInstr(env, X86Instr_SseLdSt(False/*store*/, arg, esp0));
3270 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Mem(am), r32));
3271 addInstr(env, X86Instr_Unary32(Xun_NEG, r32));
3272 addInstr(env, X86Instr_Alu32R(Xalu_SBB, X86RMI_Reg(r32), r32));
3273 addInstr(env, X86Instr_Alu32M(Xalu_MOV, X86RI_Reg(r32), am));
3275 addInstr(env, X86Instr_SseLdSt(True/*load*/, dst, esp0));
3291 addInstr(env, X86Instr_SseReRg(Xsse_XOR, vec0, vec0));
3292 addInstr(env, mk_vMOVsd_RR(vec0, vec1));
3293 addInstr(env, X86Instr_Sse32Fx4(Xsse_CMPEQF, vec1, vec1));
3298 addInstr(env, mk_vMOVsd_RR(arg, dst));
3300 addInstr(env, X86Instr_SseReRg(cmpOp, vec0, dst));
3302 addInstr(env, X86Instr_SseReRg(Xsse_XOR, vec1, dst));
3313 addInstr(env, X86Instr_Sse32Fx4(op, arg, dst));
3325 addInstr(env, X86Instr_Sse64Fx2(op, arg, dst));
3342 addInstr(env, mk_vMOVsd_RR(arg, dst));
3343 addInstr(env, X86Instr_Sse32FLo(op, arg, dst));
3361 addInstr(env, mk_vMOVsd_RR(arg, dst));
3362 addInstr(env, X86Instr_Sse64FLo(op, arg, dst));
3370 addInstr(env, X86Instr_Push(rmi));
3371 addInstr(env, X86Instr_SseLdzLO(4, dst, esp0));
3381 addInstr(env, X86Instr_Push(X86RMI_Reg(rHi)));
3382 addInstr(env, X86Instr_Push(X86RMI_Reg(rLo)));
3383 addInstr(env, X86Instr_SseLdzLO(8, dst, esp0));
3402 addInstr(env, X86Instr_SseLdSt(False/*store*/, srcV, esp0));
3403 addInstr(env, X86Instr_Alu32M(Xalu_MOV, X86RI_Reg(srcI), esp0));
3404 addInstr(env, X86Instr_SseLdSt(True/*load*/, dst, esp0));
3417 addInstr(env, X86Instr_SseLdSt(False/*store*/, srcV, esp0));
3418 addInstr(env, X86Instr_Alu32M(Xalu_MOV, X86RI_Reg(srcIlo), esp0));
3419 addInstr(env, X86Instr_Alu32M(Xalu_MOV, X86RI_Reg(srcIhi), esp4));
3420 addInstr(env, X86Instr_SseLdSt(True/*load*/, dst, esp0));
3436 addInstr(env, X86Instr_Alu32M(Xalu_MOV, X86RI_Reg(r0), esp0));
3437 addInstr(env, X86Instr_Alu32M(Xalu_MOV, X86RI_Reg(r1), esp4));
3440 addInstr(env, X86Instr_Alu32M(Xalu_MOV, X86RI_Reg(r2), esp8));
3441 addInstr(env, X86Instr_Alu32M(Xalu_MOV, X86RI_Reg(r3), esp12));
3443 addInstr(env, X86Instr_SseLdSt(True/*load*/, dst, esp0));
3463 addInstr(env, mk_vMOVsd_RR(argL, dst));
3464 addInstr(env, X86Instr_Sse32Fx4(op, argR, dst));
3484 addInstr(env, mk_vMOVsd_RR(argL, dst));
3485 addInstr(env, X86Instr_Sse64Fx2(op, argR, dst));
3503 addInstr(env, mk_vMOVsd_RR(argL, dst));
3504 addInstr(env, X86Instr_Sse32FLo(op, argR, dst));
3523 addInstr(env, mk_vMOVsd_RR(argL, dst));
3524 addInstr(env, X86Instr_Sse64FLo(op, argR, dst));
3594 addInstr(env, mk_vMOVsd_RR(arg2, dst));
3595 addInstr(env, X86Instr_SseReRg(op, arg1, dst));
3597 addInstr(env, mk_vMOVsd_RR(arg1, dst));
3598 addInstr(env, X86Instr_SseReRg(op, arg2, dst));
3618 addInstr(env, X86Instr_Push(X86RMI_Imm(0)));
3619 addInstr(env, X86Instr_Push(X86RMI_Imm(0)));
3620 addInstr(env, X86Instr_Push(X86RMI_Imm(0)));
3621 addInstr(env, X86Instr_Push(rmi));
3622 addInstr(env, X86Instr_SseLdSt(True/*load*/, ereg, esp0));
3623 addInstr(env, mk_vMOVsd_RR(greg, dst));
3624 addInstr(env, X86Instr_SseReRg(op, ereg, dst));
3646 addInstr(env, X86Instr_Lea32(X86AMode_IR(48, hregX86_ESP()),
3649 addInstr(env, X86Instr_Alu32R(Xalu_AND,
3657 addInstr(env, X86Instr_Lea32(X86AMode_IR(0, argp),
3659 addInstr(env, X86Instr_Lea32(X86AMode_IR(16, argp),
3661 addInstr(env, X86Instr_Lea32(X86AMode_IR(32, argp),
3667 addInstr(env, X86Instr_SseLdSt(False/*!isLoad*/, argL,
3669 addInstr(env, X86Instr_SseLdSt(False/*!isLoad*/, argR,
3672 addInstr(env, X86Instr_Call( Xcc_ALWAYS, (Addr32)fn, 3 ));
3675 addInstr(env, X86Instr_SseLdSt(True/*isLoad*/, dst,
3692 addInstr(env, mk_vMOVsd_RR(rX,dst));
3693 addInstr(env, X86Instr_Test32(0xFF, r8));
3694 addInstr(env, X86Instr_SseCMov(Xcc_Z,r0,dst));
3736 addInstr(env, X86Instr_Alu32M(Xalu_MOV,ri,am));
3742 addInstr(env, X86Instr_Store( toUChar(tyd==Ity_I8 ? 1 : 2),
3749 addInstr(env, X86Instr_FpLdSt(False/*store*/, 8, r, am));
3755 addInstr(env, X86Instr_FpLdSt(False/*store*/, 4, r, am));
3762 addInstr(env, X86Instr_Alu32M(
3764 addInstr(env, X86Instr_Alu32M(
3771 addInstr(env, X86Instr_SseLdSt(False/*store*/, r, am));
3784 addInstr(env,
3794 addInstr(env, X86Instr_Store(
3806 addInstr(env, X86Instr_Alu32M( Xalu_MOV, X86RI_Reg(vLo), am ));
3807 addInstr(env, X86Instr_Alu32M( Xalu_MOV, X86RI_Reg(vHi), am4 ));
3813 addInstr(env, X86Instr_SseLdSt(False/*store*/, vec, am));
3820 addInstr(env, X86Instr_FpLdSt( False/*store*/, 4, f32, am ));
3827 addInstr(env, X86Instr_FpLdSt( False/*store*/, 8, f64, am ));
3845 addInstr(env, X86Instr_FpLdSt( False/*store*/, 8, val, am ));
3850 addInstr(env, X86Instr_Store( 1, r, am ));
3855 addInstr(env, X86Instr_Alu32M( Xalu_MOV, X86RI_Reg(r), am ));
3862 addInstr(env, X86Instr_Alu32M( Xalu_MOV, X86RI_Reg(rLo), am ));
3863 addInstr(env, X86Instr_Alu32M( Xalu_MOV, X86RI_Reg(rHi), am4 ));
3890 addInstr(env, X86Instr_Alu32R(Xalu_MOV, X86RMI_Reg(src), dst));
3892 addInstr(env, X86Instr_Lea32(am,dst));
3900 addInstr(env, X86Instr_Alu32R(Xalu_MOV,rmi,dst));
3907 addInstr(env, mk_iMOVsd_RR(rHi,dstHi) );
3908 addInstr(env, mk_iMOVsd_RR(rLo,dstLo) );
3914 addInstr(env, X86Instr_Set32(cond, dst));
3920 addInstr(env, X86Instr_FpUnary(Xfp_MOV,src,dst));
3926 addInstr(env, X86Instr_FpUnary(Xfp_MOV,src,dst));
3932 addInstr(env, mk_vMOVsd_RR(src,dst));
3963 addInstr(env, mk_iMOVsd_RR(hregX86_EDX(),dstHi) );
3964 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(),dstLo) );
3971 addInstr(env, mk_iMOVsd_RR(hregX86_EAX(),dst) );
3981 addInstr(env, X86Instr_MFence(env->hwcaps));
4002 addInstr(env, mk_iMOVsd_RR(rExpdLo, rOldLo));
4003 addInstr(env, mk_iMOVsd_RR(rExpdLo, hregX86_EAX()));
4004 addInstr(env, mk_iMOVsd_RR(rDataLo, hregX86_EBX()));
4011 addInstr(env, X86Instr_ACAS(am, sz));
4012 addInstr(env,
4032 addInstr(env, mk_iMOVsd_RR(rExpdHi, rOldHi));
4033 addInstr(env, mk_iMOVsd_RR(rExpdLo, rOldLo));
4034 addInstr(env, mk_iMOVsd_RR(rExpdHi, hregX86_EDX()));
4035 addInstr(env, mk_iMOVsd_RR(rExpdLo, hregX86_EAX()));
4036 addInstr(env, mk_iMOVsd_RR(rDataHi, hregX86_ECX()));
4037 addInstr(env, mk_iMOVsd_RR(rDataLo, hregX86_EBX()));
4038 addInstr(env, X86Instr_DACAS(am));
4039 addInstr(env,
4042 addInstr(env,
4078 addInstr(env, X86Instr_XDirect(stmt->Ist.Exit.dst->Ico.U32,
4085 addInstr(env, X86Instr_XAssisted(r, amEIP, cc, Ijk_Boring));
4108 addInstr(env, X86Instr_XAssisted(r, amEIP, cc, stmt->Ist.Exit.jk));
4156 addInstr(env, X86Instr_XDirect(cdst->Ico.U32,
4164 addInstr(env, X86Instr_XAssisted(r, amEIP, Xcc_ALWAYS,
4177 addInstr(env, X86Instr_XIndir(r, amEIP, Xcc_ALWAYS));
4179 addInstr(env, X86Instr_XAssisted(r, amEIP, Xcc_ALWAYS,
4207 addInstr(env, X86Instr_XAssisted(r, amEIP, Xcc_ALWAYS, jk));
4302 addInstr(env, X86Instr_EvCheck(amCounter, amFailAddr));
4309 addInstr(env, X86Instr_ProfInc());