Lines Matching refs:Iex

109           && e->Iex.Const.con->tag == Ico_U8
110 && e->Iex.Const.con->Ico.U8 == 0;
116 && e->Iex.Const.con->tag == Ico_U32
117 && e->Iex.Const.con->Ico.U32 == 0;
123 && e->Iex.Const.con->tag == Ico_U64
124 && e->Iex.Const.con->Ico.U64 == 0ULL;
560 && guard->Iex.Const.con->tag == Ico_U1
561 && guard->Iex.Const.con->Ico.U1 == True) {
745 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
751 X86AMode* amode = iselIntExpr_AMode ( env, e->Iex.Load.addr );
754 if (e->Iex.Load.end != Iend_LE)
777 if (e->Iex.Triop.op == Iop_PRemC3210F64
778 || e->Iex.Triop.op == Iop_PRem1C3210F64) {
781 HReg srcL = iselDblExpr(env, e->Iex.Triop.arg2);
782 HReg srcR = iselDblExpr(env, e->Iex.Triop.arg3);
786 e->Iex.Binop.op==Iop_PRemC3210F64
807 if (e->Iex.Binop.op == Iop_Sub32 && isZeroU32(e->Iex.Binop.arg1)) {
809 HReg reg = iselIntExpr_R(env, e->Iex.Binop.arg2);
816 switch (e->Iex.Binop.op) {
836 HReg reg = iselIntExpr_R(env, e->Iex.Binop.arg1);
837 X86RMI* rmi = iselIntExpr_RMI(env, e->Iex.Binop.arg2);
861 switch (e->Iex.Binop.op) {
875 HReg regL = iselIntExpr_R(env, e->Iex.Binop.arg1);
879 switch (e->Iex.Binop.op) {
901 if (e->Iex.Binop.arg2->tag == Iex_Const) {
904 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
905 nshift = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
912 HReg regR = iselIntExpr_R(env, e->Iex.Binop.arg2);
921 if (e->Iex.Binop.op == Iop_Max32U) {
922 HReg src1 = iselIntExpr_R(env, e->Iex.Binop.arg1);
924 HReg src2 = iselIntExpr_R(env, e->Iex.Binop.arg2);
931 if (e->Iex.Binop.op == Iop_8HLto16) {
934 HReg hi8s = iselIntExpr_R(env, e->Iex.Binop.arg1);
935 HReg lo8s = iselIntExpr_R(env, e->Iex.Binop.arg2);
944 if (e->Iex.Binop.op == Iop_16HLto32) {
947 HReg hi16s = iselIntExpr_R(env, e->Iex.Binop.arg1);
948 HReg lo16s = iselIntExpr_R(env, e->Iex.Binop.arg2);
957 if (e->Iex.Binop.op == Iop_MullS16 || e->Iex.Binop.op == Iop_MullS8
958 || e->Iex.Binop.op == Iop_MullU16 || e->Iex.Binop.op == Iop_MullU8) {
961 HReg a16s = iselIntExpr_R(env, e->Iex.Binop.arg1);
962 HReg b16s = iselIntExpr_R(env, e->Iex.Binop.arg2);
963 Int shift = (e->Iex.Binop.op == Iop_MullS8
964 || e->Iex.Binop.op == Iop_MullU8)
966 X86ShiftOp shr_op = (e->Iex.Binop.op == Iop_MullS8
967 || e->Iex.Binop.op == Iop_MullS16)
980 if (e->Iex.Binop.op == Iop_CmpF64) {
981 HReg fL = iselDblExpr(env, e->Iex.Binop.arg1);
982 HReg fR = iselDblExpr(env, e->Iex.Binop.arg2);
991 if (e->Iex.Binop.op == Iop_F64toI32S
992 || e->Iex.Binop.op == Iop_F64toI16S) {
993 Int sz = e->Iex.Binop.op == Iop_F64toI16S ? 2 : 4;
994 HReg rf = iselDblExpr(env, e->Iex.Binop.arg2);
1010 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 );
1041 if (e->Iex.Unop.op == Iop_1Uto8) {
1057 if (e->Iex.Unop.op == Iop_8Uto32) {
1071 if (e->Iex.Unop.op == Iop_8Sto32) {
1085 if (e->Iex.Unop.op == Iop_16Uto32) {
1099 if (e->Iex.Unop.op == Iop_8Uto32) {
1100 if (e->Iex.Unop.arg->tag == Iex_Get) {
1103 vassert(e->Iex.Unop.arg->Iex.Get.ty == Ity_I8);
1105 amode = X86AMode_IR(e->Iex.Unop.arg->Iex.Get.offset,
1113 if (e->Iex.Unop.op == Iop_16Uto32) {
1114 if (e->Iex.Unop.arg->tag == Iex_Get) {
1117 vassert(e->Iex.Unop.arg->Iex.Get.ty == Ity_I16);
1119 amode = X86AMode_IR(e->Iex.Unop.arg->Iex.Get.offset,
1126 switch (e->Iex.Unop.op) {
1131 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1132 UInt mask = e->Iex.Unop.op==Iop_16Uto32 ? 0xFFFF : 0xFF;
1142 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1143 UInt amt = e->Iex.Unop.op==Iop_16Sto32 ? 16 : 24;
1153 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1160 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg);
1165 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg);
1171 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1172 Int shift = e->Iex.Unop.op == Iop_16HIto8 ? 8 : 16;
1180 X86CondCode cond = iselCondCode(env, e->Iex.Unop.arg);
1189 X86CondCode cond = iselCondCode(env, e->Iex.Unop.arg);
1198 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1208 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1219 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1231 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1240 HReg vec = iselVecExpr(env, e->Iex.Unop.arg);
1254 HReg rf = iselFltExpr(env, e->Iex.Unop.arg);
1276 return iselIntExpr_R(env, e->Iex.Unop.arg);
1290 X86RMI_Mem(X86AMode_IR(e->Iex.Get.offset,
1300 X86AMode_IR(e->Iex.Get.offset,hregX86_EBP()),
1310 env, e->Iex.GetI.descr,
1311 e->Iex.GetI.ix, e->Iex.GetI.bias );
1327 vassert(ty == e->Iex.CCall.retty);
1331 if (e->Iex.CCall.retty != Ity_I32)
1335 doHelperCall( env, False, NULL, e->Iex.CCall.cee, e->Iex.CCall.args );
1353 && typeOfIRExpr(env->type_env,e->Iex.Mux0X.cond) == Ity_I8) {
1355 HReg rX = iselIntExpr_R(env, e->Iex.Mux0X.exprX);
1356 X86RM* r0 = iselIntExpr_RM(env, e->Iex.Mux0X.expr0);
1359 r8 = iselIntExpr_RM(env, e->Iex.Mux0X.cond);
1423 && e->Iex.Binop.op == Iop_Add32
1424 && e->Iex.Binop.arg2->tag == Iex_Const
1425 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32
1426 && e->Iex.Binop.arg1->tag == Iex_Binop
1427 && e->Iex.Binop.arg1->Iex.Binop.op == Iop_Add32
1428 && e->Iex.Binop.arg1->Iex.Binop.arg2->tag == Iex_Binop
1429 && e->Iex.Binop.arg1->Iex.Binop.arg2->Iex.Binop.op == Iop_Shl32
1430 && e->Iex.Binop.arg1
1431 ->Iex.Binop.arg2->Iex.Binop.arg2->tag == Iex_Const
1432 && e->Iex.Binop.arg1
1433 ->Iex.Binop.arg2->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8) {
1434 UInt shift = e->Iex.Binop.arg1
1435 ->Iex.Binop.arg2->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
1436 UInt imm32 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
1438 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1->Iex.Binop.arg1);
1439 HReg r2 = iselIntExpr_R(env, e->Iex.Binop.arg1
1440 ->Iex.Binop.arg2->Iex.Binop.arg1 );
1447 && e->Iex.Binop.op == Iop_Add32
1448 && e->Iex.Binop.arg2->tag == Iex_Binop
1449 && e->Iex.Binop.arg2->Iex.Binop.op == Iop_Shl32
1450 && e->Iex.Binop.arg2->Iex.Binop.arg2->tag == Iex_Const
1451 && e->Iex.Binop.arg2->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8) {
1452 UInt shift = e->Iex.Binop.arg2->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
1454 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1);
1455 HReg r2 = iselIntExpr_R(env, e->Iex.Binop.arg2->Iex.Binop.arg1 );
1462 && e->Iex.Binop.op == Iop_Add32
1463 && e->Iex.Binop.arg2->tag == Iex_Const
1464 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32) {
1465 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1);
1466 return X86AMode_IR(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32, r1);
1511 switch (e->Iex.Const.con->tag) {
1512 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break;
1513 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break;
1514 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break;
1522 return X86RMI_Mem(X86AMode_IR(e->Iex.Get.offset,
1528 && e->Iex.Load.end == Iend_LE) {
1529 X86AMode* am = iselIntExpr_AMode(env, e->Iex.Load.addr);
1571 switch (e->Iex.Const.con->tag) {
1572 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break;
1573 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break;
1574 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break;
1618 return X86RM_Mem(X86AMode_IR(e->Iex.Get.offset,
1654 HReg r32 = lookupIRTemp(env, e->Iex.RdTmp.tmp);
1663 vassert(e->Iex.Const.con->tag == Ico_U1);
1664 vassert(e->Iex.Const.con->Ico.U1 == True
1665 || e->Iex.Const.con->Ico.U1 == False);
1669 return e->Iex.Const.con->Ico.U1 ? Xcc_Z : Xcc_NZ;
1673 if (e->tag == Iex_Unop && e->Iex.Unop.op == Iop_Not1) {
1675 return 1 ^ iselCondCode(env, e->Iex.Unop.arg);
1681 && e->Iex.Unop.op == Iop_32to1) {
1682 X86RM* rm = iselIntExpr_RM(env, e->Iex.Unop.arg);
1691 && e->Iex.Unop.op == Iop_CmpNEZ8) {
1692 X86RM* rm = iselIntExpr_RM(env, e->Iex.Unop.arg);
1701 && e->Iex.Unop.op == Iop_CmpNEZ16) {
1702 X86RM* rm = iselIntExpr_RM(env, e->Iex.Unop.arg);
1741 && e->Iex.Unop.op == Iop_CmpNEZ32
1742 && e->Iex.Unop.arg->tag == Iex_Get) {
1743 X86AMode* am = X86AMode_IR(e->Iex.Unop.arg->Iex.Get.offset,
1751 && e->Iex.Unop.op == Iop_CmpNEZ32) {
1752 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1780 && e->Iex.Unop.op == Iop_CmpNEZ64) {
1783 iselInt64Expr( &hi, &lo, env, e->Iex.Unop.arg );
1793 && (e->Iex.Binop.op == Iop_CmpEQ8
1794 || e->Iex.Binop.op == Iop_CmpNE8
1795 || e->Iex.Binop.op == Iop_CasCmpEQ8
1796 || e->Iex.Binop.op == Iop_CasCmpNE8)) {
1797 if (isZeroU8(e->Iex.Binop.arg2)) {
1798 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1);
1800 switch (e->Iex.Binop.op) {
1806 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1);
1807 X86RMI* rmi2 = iselIntExpr_RMI(env, e->Iex.Binop.arg2);
1812 switch (e->Iex.Binop.op) {
1822 && (e->Iex.Binop.op == Iop_CmpEQ16
1823 || e->Iex.Binop.op == Iop_CmpNE16
1824 || e->Iex.Binop.op == Iop_CasCmpEQ16
1825 || e->Iex.Binop.op == Iop_CasCmpNE16)) {
1826 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1);
1827 X86RMI* rmi2 = iselIntExpr_RMI(env, e->Iex.Binop.arg2);
1832 switch (e->Iex.Binop.op) {
1842 && e->Iex.Binop.op == Iop_CmpNE32
1843 && e->Iex.Binop.arg1->tag == Iex_CCall
1844 && e->Iex.Binop.arg2->tag == Iex_Const) {
1845 IRExpr* cal = e->Iex.Binop.arg1;
1846 IRExpr* con = e->Iex.Binop.arg2;
1848 vassert(cal->Iex.CCall.retty == Ity_I32); /* else ill-typed IR */
1849 vassert(con->Iex.Const.con->tag == Ico_U32);
1851 doHelperCall( env, False, NULL, cal->Iex.CCall.cee, cal->Iex.CCall.args );
1853 X86RMI_Imm(con->Iex.Const.con->Ico.U32),
1860 && (e->Iex.Binop.op == Iop_CmpEQ32
1861 || e->Iex.Binop.op == Iop_CmpNE32
1862 || e->Iex.Binop.op == Iop_CmpLT32S
1863 || e->Iex.Binop.op == Iop_CmpLT32U
1864 || e->Iex.Binop.op == Iop_CmpLE32S
1865 || e->Iex.Binop.op == Iop_CmpLE32U
1866 || e->Iex.Binop.op == Iop_CasCmpEQ32
1867 || e->Iex.Binop.op == Iop_CasCmpNE32)) {
1868 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1);
1869 X86RMI* rmi2 = iselIntExpr_RMI(env, e->Iex.Binop.arg2);
1871 switch (e->Iex.Binop.op) {
1884 && (e->Iex.Binop.op == Iop_CmpNE64
1885 || e->Iex.Binop.op == Iop_CmpEQ64)) {
1889 iselInt64Expr( &hi1, &lo1, env, e->Iex.Binop.arg1 );
1890 iselInt64Expr( &hi2, &lo2, env, e->Iex.Binop.arg2 );
1896 switch (e->Iex.Binop.op) {
1939 ULong w64 = e->Iex.Const.con->Ico.U64;
1944 vassert(e->Iex.Const.con->tag == Ico_U64);
1961 lookupIRTemp64( rHi, rLo, env, e->Iex.RdTmp.tmp);
1966 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
1969 vassert(e->Iex.Load.ty == Ity_I64);
1972 am0 = iselIntExpr_AMode(env, e->Iex.Load.addr);
1983 X86AMode* am = X86AMode_IR(e->Iex.Get.offset, hregX86_EBP());
1997 = genGuestArrayOffset( env, e->Iex.GetI.descr,
1998 e->Iex.GetI.ix, e->Iex.GetI.bias );
2010 if (e->tag == Iex_Mux0X && isZeroU64(e->Iex.Mux0X.exprX)) {
2016 iselInt64Expr(&e0Hi, &e0Lo, env, e->Iex.Mux0X.expr0);
2017 r8 = iselIntExpr_RM(env, e->Iex.Mux0X.cond);
2030 if (e->tag == Iex_Mux0X && isZeroU64(e->Iex.Mux0X.expr0)) {
2036 iselInt64Expr(&e0Hi, &e0Lo, env, e->Iex.Mux0X.exprX);
2037 r8 = iselIntExpr_RM(env, e->Iex.Mux0X.cond);
2056 iselInt64Expr(&e0Hi, &e0Lo, env, e->Iex.Mux0X.expr0);
2057 iselInt64Expr(&eXHi, &eXLo, env, e->Iex.Mux0X.exprX);
2060 r8 = iselIntExpr_RM(env, e->Iex.Mux0X.cond);
2073 switch (e->Iex.Binop.op) {
2082 Bool syned = toBool(e->Iex.Binop.op == Iop_MullS32);
2083 X86RM* rmLeft = iselIntExpr_RM(env, e->Iex.Binop.arg1);
2084 HReg rRight = iselIntExpr_R(env, e->Iex.Binop.arg2);
2103 Bool syned = toBool(e->Iex.Binop.op == Iop_DivModS64to32);
2104 X86RM* rmRight = iselIntExpr_RM(env, e->Iex.Binop.arg2);
2105 iselInt64Expr(&sHi,&sLo, env, e->Iex.Binop.arg1);
2123 X86AluOp op = e->Iex.Binop.op==Iop_Or64 ? Xalu_OR
2124 : e->Iex.Binop.op==Iop_And64 ? Xalu_AND
2126 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
2127 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2);
2139 if (e->Iex.Binop.arg2->tag == Iex_Const) {
2141 ULong w64 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U64;
2147 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U64);
2148 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
2162 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
2165 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2);
2166 if (e->Iex.Binop.op==Iop_Add64) {
2180 *rHi = iselIntExpr_R(env, e->Iex.Binop.arg1);
2181 *rLo = iselIntExpr_R(env, e->Iex.Binop.arg2);
2209 rAmt = iselIntExpr_R(env, e->Iex.Binop.arg2);
2210 iselInt64Expr(&sHi,&sLo, env, e->Iex.Binop.arg1);
2251 rAmt = iselIntExpr_R(env, e->Iex.Binop.arg2);
2252 iselInt64Expr(&sHi,&sLo, env, e->Iex.Binop.arg1);
2274 HReg rf = iselDblExpr(env, e->Iex.Binop.arg2);
2295 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 );
2426 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2);
2429 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
2466 X86RMI* y = iselIntExpr_RMI(env, e->Iex.Binop.arg2);
2468 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
2488 switch (e->Iex.Unop.op) {
2494 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
2507 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
2519 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
2532 Int off = e->Iex.Unop.op==Iop_V128HIto64 ? 8 : 0;
2535 HReg vec = iselVecExpr(env, e->Iex.Unop.arg);
2555 X86CondCode cond = iselCondCode(env, e->Iex.Unop.arg);
2570 iselInt64Expr(&sHi, &sLo, env, e->Iex.Unop.arg);
2586 iselInt64Expr(&yHi, &yLo, env, e->Iex.Unop.arg);
2645 iselInt64Expr(&srcHi, &srcLo, env, e->Iex.Unop.arg);
2666 HReg rf = iselDblExpr(env, e->Iex.Unop.arg);
2706 iselInt64Expr(&xHi, &xLo, env, e->Iex.Unop.arg);
2730 doHelperCall( env, False, NULL, e->Iex.CCall.cee, e->Iex.CCall.args );
2769 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
2772 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
2775 vassert(e->Iex.Load.ty == Ity_F32);
2776 am = iselIntExpr_AMode(env, e->Iex.Load.addr);
2782 && e->Iex.Binop.op == Iop_F64toF32) {
2787 HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
2788 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 );
2795 X86AMode* am = X86AMode_IR( e->Iex.Get.offset,
2803 && e->Iex.Unop.op == Iop_ReinterpI32asF32) {
2807 X86RMI* rmi = iselIntExpr_RMI(env, e->Iex.Unop.arg);
2817 if (e->tag == Iex_Binop && e->Iex.Binop.op == Iop_RoundF32toInt) {
2818 HReg rf = iselFltExpr(env, e->Iex.Binop.arg2);
2825 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 );
2887 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
2898 if (e->Iex.Const.con->tag == Ico_F64) {
2899 u.f64 = e->Iex.Const.con->Ico.F64;
2901 else if (e->Iex.Const.con->tag == Ico_F64i) {
2902 u.u64 = e->Iex.Const.con->Ico.F64i;
2915 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
2918 vassert(e->Iex.Load.ty == Ity_F64);
2919 am = iselIntExpr_AMode(env, e->Iex.Load.addr);
2925 X86AMode* am = X86AMode_IR( e->Iex.Get.offset,
2935 env, e->Iex.GetI.descr,
2936 e->Iex.GetI.ix, e->Iex.GetI.bias );
2944 switch (e->Iex.Triop.op) {
2959 HReg srcL = iselDblExpr(env, e->Iex.Triop.arg2);
2960 HReg srcR = iselDblExpr(env, e->Iex.Triop.arg3);
2971 if (e->tag == Iex_Binop && e->Iex.Binop.op == Iop_RoundF64toInt) {
2972 HReg rf = iselDblExpr(env, e->Iex.Binop.arg2);
2979 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 );
2990 if (e->tag == Iex_Binop && e->Iex.Binop.op == Iop_I64StoF64) {
2993 iselInt64Expr( &rHi, &rLo, env, e->Iex.Binop.arg2);
2998 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 );
3013 switch (e->Iex.Binop.op) {
3023 HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
3036 switch (e->Iex.Unop.op) {
3043 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
3052 switch (e->Iex.Unop.op) {
3055 HReg ri = iselIntExpr_R(env, e->Iex.Unop.arg);
3069 iselInt64Expr( &rHi, &rLo, env, e->Iex.Unop.arg);
3082 HReg res = iselFltExpr(env, e->Iex.Unop.arg);
3093 && typeOfIRExpr(env->type_env,e->Iex.Mux0X.cond) == Ity_I8) {
3094 X86RM* r8 = iselIntExpr_RM(env, e->Iex.Mux0X.cond);
3095 HReg rX = iselDblExpr(env, e->Iex.Mux0X.exprX);
3096 HReg r0 = iselDblExpr(env, e->Iex.Mux0X.expr0);
3154 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
3162 X86AMode_IR(e->Iex.Get.offset, hregX86_EBP())
3168 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
3170 X86AMode* am = iselIntExpr_AMode(env, e->Iex.Load.addr);
3177 vassert(e->Iex.Const.con->tag == Ico_V128);
3178 addInstr(env, X86Instr_SseConst(e->Iex.Const.con->Ico.V128, dst));
3198 switch (e->Iex.Unop.op) {
3201 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
3221 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
3244 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
3269 = e->Iex.Unop.op==Iop_CmpNEZ16x8 ? Xsse_CMPEQ16
3277 arg = iselVecExpr(env, e->Iex.Unop.arg);
3292 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
3303 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
3321 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
3339 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
3350 X86RMI* rmi = iselIntExpr_RMI(env, e->Iex.Unop.arg);
3361 iselInt64Expr(&rHi, &rLo, env, e->Iex.Unop.arg);
3371 } /* switch (e->Iex.Unop.op) */
3375 switch (e->Iex.Binop.op) {
3379 HReg srcV = iselVecExpr(env, e->Iex.Binop.arg1);
3380 HReg srcI = iselIntExpr_R(env, e->Iex.Binop.arg2);
3392 HReg srcV = iselVecExpr(env, e->Iex.Binop.arg1);
3396 iselInt64Expr(&srcIhi, &srcIlo, env, e->Iex.Binop.arg2);
3416 iselInt64Expr(&r1, &r0, env, e->Iex.Binop.arg2);
3420 iselInt64Expr(&r3, &r2, env, e->Iex.Binop.arg1);
3441 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1);
3442 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2);
3461 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1);
3462 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2);
3481 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1);
3482 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2);
3500 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1);
3501 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2);
3569 HReg arg1 = iselVecExpr(env, e->Iex.Binop.arg1);
3570 HReg arg2 = iselVecExpr(env, e->Iex.Binop.arg2);
3593 HReg greg = iselVecExpr(env, e->Iex.Binop.arg1);
3594 X86RMI* rmi = iselIntExpr_RMI(env, e->Iex.Binop.arg2);
3621 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1);
3622 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2);
3665 } /* switch (e->Iex.Binop.op) */
3669 X86RM* r8 = iselIntExpr_RM(env, e->Iex.Mux0X.cond);
3670 HReg rX = iselVecExpr(env, e->Iex.Mux0X.exprX);
3671 HReg r0 = iselVecExpr(env, e->Iex.Mux0X.expr0);
3861 && stmt->Ist.WrTmp.data->Iex.Binop.op == Iop_Add32) {