• Home
  • Raw
  • Download

Lines Matching refs:Iex

109           && e->Iex.Const.con->tag == Ico_U8  in isZeroU8()
110 && e->Iex.Const.con->Ico.U8 == 0; in isZeroU8()
116 && e->Iex.Const.con->tag == Ico_U32 in isZeroU32()
117 && e->Iex.Const.con->Ico.U32 == 0; in isZeroU32()
646 && guard->Iex.Const.con->tag == Ico_U1 in doHelperCall()
647 && guard->Iex.Const.con->Ico.U1 == True) { in doHelperCall()
862 return lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselIntExpr_R_wrk()
868 X86AMode* amode = iselIntExpr_AMode ( env, e->Iex.Load.addr ); in iselIntExpr_R_wrk()
871 if (e->Iex.Load.end != Iend_LE) in iselIntExpr_R_wrk()
892 IRTriop *triop = e->Iex.Triop.details; in iselIntExpr_R_wrk()
904 e->Iex.Binop.op==Iop_PRemC3210F64 in iselIntExpr_R_wrk()
925 if (e->Iex.Binop.op == Iop_Sub32 && isZeroU32(e->Iex.Binop.arg1)) { in iselIntExpr_R_wrk()
927 HReg reg = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
934 switch (e->Iex.Binop.op) { in iselIntExpr_R_wrk()
954 HReg reg = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
955 X86RMI* rmi = iselIntExpr_RMI(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
979 switch (e->Iex.Binop.op) { in iselIntExpr_R_wrk()
993 HReg regL = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
997 switch (e->Iex.Binop.op) { in iselIntExpr_R_wrk()
1019 if (e->Iex.Binop.arg2->tag == Iex_Const) { in iselIntExpr_R_wrk()
1022 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8); in iselIntExpr_R_wrk()
1023 nshift = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselIntExpr_R_wrk()
1030 HReg regR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1039 if (e->Iex.Binop.op == Iop_Max32U) { in iselIntExpr_R_wrk()
1040 HReg src1 = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1042 HReg src2 = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1049 if (e->Iex.Binop.op == Iop_8HLto16) { in iselIntExpr_R_wrk()
1052 HReg hi8s = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1053 HReg lo8s = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1062 if (e->Iex.Binop.op == Iop_16HLto32) { in iselIntExpr_R_wrk()
1065 HReg hi16s = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1066 HReg lo16s = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1075 if (e->Iex.Binop.op == Iop_MullS16 || e->Iex.Binop.op == Iop_MullS8 in iselIntExpr_R_wrk()
1076 || e->Iex.Binop.op == Iop_MullU16 || e->Iex.Binop.op == Iop_MullU8) { in iselIntExpr_R_wrk()
1079 HReg a16s = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1080 HReg b16s = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1081 Int shift = (e->Iex.Binop.op == Iop_MullS8 in iselIntExpr_R_wrk()
1082 || e->Iex.Binop.op == Iop_MullU8) in iselIntExpr_R_wrk()
1084 X86ShiftOp shr_op = (e->Iex.Binop.op == Iop_MullS8 in iselIntExpr_R_wrk()
1085 || e->Iex.Binop.op == Iop_MullS16) in iselIntExpr_R_wrk()
1098 if (e->Iex.Binop.op == Iop_CmpF64) { in iselIntExpr_R_wrk()
1099 HReg fL = iselDblExpr(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1100 HReg fR = iselDblExpr(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1109 if (e->Iex.Binop.op == Iop_F64toI32S in iselIntExpr_R_wrk()
1110 || e->Iex.Binop.op == Iop_F64toI16S) { in iselIntExpr_R_wrk()
1111 Int sz = e->Iex.Binop.op == Iop_F64toI16S ? 2 : 4; in iselIntExpr_R_wrk()
1112 HReg rf = iselDblExpr(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1128 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 ); in iselIntExpr_R_wrk()
1159 if (e->Iex.Unop.op == Iop_1Uto8) { in iselIntExpr_R_wrk()
1175 if (e->Iex.Unop.op == Iop_8Uto32) { in iselIntExpr_R_wrk()
1189 if (e->Iex.Unop.op == Iop_8Sto32) { in iselIntExpr_R_wrk()
1203 if (e->Iex.Unop.op == Iop_16Uto32) { in iselIntExpr_R_wrk()
1217 if (e->Iex.Unop.op == Iop_8Uto32) { in iselIntExpr_R_wrk()
1218 if (e->Iex.Unop.arg->tag == Iex_Get) { in iselIntExpr_R_wrk()
1221 vassert(e->Iex.Unop.arg->Iex.Get.ty == Ity_I8); in iselIntExpr_R_wrk()
1223 amode = X86AMode_IR(e->Iex.Unop.arg->Iex.Get.offset, in iselIntExpr_R_wrk()
1231 if (e->Iex.Unop.op == Iop_16Uto32) { in iselIntExpr_R_wrk()
1232 if (e->Iex.Unop.arg->tag == Iex_Get) { in iselIntExpr_R_wrk()
1235 vassert(e->Iex.Unop.arg->Iex.Get.ty == Ity_I16); in iselIntExpr_R_wrk()
1237 amode = X86AMode_IR(e->Iex.Unop.arg->Iex.Get.offset, in iselIntExpr_R_wrk()
1244 switch (e->Iex.Unop.op) { in iselIntExpr_R_wrk()
1249 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1250 UInt mask = e->Iex.Unop.op==Iop_16Uto32 ? 0xFFFF : 0xFF; in iselIntExpr_R_wrk()
1260 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1261 UInt amt = e->Iex.Unop.op==Iop_16Sto32 ? 16 : 24; in iselIntExpr_R_wrk()
1271 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1278 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1283 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1289 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1290 Int shift = e->Iex.Unop.op == Iop_16HIto8 ? 8 : 16; in iselIntExpr_R_wrk()
1298 X86CondCode cond = iselCondCode(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1307 X86CondCode cond = iselCondCode(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1316 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1326 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1337 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1349 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1358 HReg vec = iselVecExpr(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1372 HReg rf = iselFltExpr(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1394 return iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1404 iselInt64Expr(&xHi, &xLo, env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1426 X86RMI_Mem(X86AMode_IR(e->Iex.Get.offset, in iselIntExpr_R_wrk()
1436 X86AMode_IR(e->Iex.Get.offset,hregX86_EBP()), in iselIntExpr_R_wrk()
1446 env, e->Iex.GetI.descr, in iselIntExpr_R_wrk()
1447 e->Iex.GetI.ix, e->Iex.GetI.bias ); in iselIntExpr_R_wrk()
1463 vassert(ty == e->Iex.CCall.retty); in iselIntExpr_R_wrk()
1468 if (e->Iex.CCall.retty != Ity_I32) in iselIntExpr_R_wrk()
1475 e->Iex.CCall.cee, e->Iex.CCall.retty, e->Iex.CCall.args ); in iselIntExpr_R_wrk()
1496 && typeOfIRExpr(env->type_env,e->Iex.ITE.cond) == Ity_I1) { in iselIntExpr_R_wrk()
1497 HReg r1 = iselIntExpr_R(env, e->Iex.ITE.iftrue); in iselIntExpr_R_wrk()
1498 X86RM* r0 = iselIntExpr_RM(env, e->Iex.ITE.iffalse); in iselIntExpr_R_wrk()
1501 X86CondCode cc = iselCondCode(env, e->Iex.ITE.cond); in iselIntExpr_R_wrk()
1564 && e->Iex.Binop.op == Iop_Add32 in iselIntExpr_AMode_wrk()
1565 && e->Iex.Binop.arg2->tag == Iex_Const in iselIntExpr_AMode_wrk()
1566 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32 in iselIntExpr_AMode_wrk()
1567 && e->Iex.Binop.arg1->tag == Iex_Binop in iselIntExpr_AMode_wrk()
1568 && e->Iex.Binop.arg1->Iex.Binop.op == Iop_Add32 in iselIntExpr_AMode_wrk()
1569 && e->Iex.Binop.arg1->Iex.Binop.arg2->tag == Iex_Binop in iselIntExpr_AMode_wrk()
1570 && e->Iex.Binop.arg1->Iex.Binop.arg2->Iex.Binop.op == Iop_Shl32 in iselIntExpr_AMode_wrk()
1571 && e->Iex.Binop.arg1 in iselIntExpr_AMode_wrk()
1572 ->Iex.Binop.arg2->Iex.Binop.arg2->tag == Iex_Const in iselIntExpr_AMode_wrk()
1573 && e->Iex.Binop.arg1 in iselIntExpr_AMode_wrk()
1574 ->Iex.Binop.arg2->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8) { in iselIntExpr_AMode_wrk()
1575 UInt shift = e->Iex.Binop.arg1 in iselIntExpr_AMode_wrk()
1576 ->Iex.Binop.arg2->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselIntExpr_AMode_wrk()
1577 UInt imm32 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32; in iselIntExpr_AMode_wrk()
1579 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1->Iex.Binop.arg1); in iselIntExpr_AMode_wrk()
1580 HReg r2 = iselIntExpr_R(env, e->Iex.Binop.arg1 in iselIntExpr_AMode_wrk()
1581 ->Iex.Binop.arg2->Iex.Binop.arg1 ); in iselIntExpr_AMode_wrk()
1588 && e->Iex.Binop.op == Iop_Add32 in iselIntExpr_AMode_wrk()
1589 && e->Iex.Binop.arg2->tag == Iex_Binop in iselIntExpr_AMode_wrk()
1590 && e->Iex.Binop.arg2->Iex.Binop.op == Iop_Shl32 in iselIntExpr_AMode_wrk()
1591 && e->Iex.Binop.arg2->Iex.Binop.arg2->tag == Iex_Const in iselIntExpr_AMode_wrk()
1592 && e->Iex.Binop.arg2->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8) { in iselIntExpr_AMode_wrk()
1593 UInt shift = e->Iex.Binop.arg2->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselIntExpr_AMode_wrk()
1595 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_AMode_wrk()
1596 HReg r2 = iselIntExpr_R(env, e->Iex.Binop.arg2->Iex.Binop.arg1 ); in iselIntExpr_AMode_wrk()
1603 && e->Iex.Binop.op == Iop_Add32 in iselIntExpr_AMode_wrk()
1604 && e->Iex.Binop.arg2->tag == Iex_Const in iselIntExpr_AMode_wrk()
1605 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32) { in iselIntExpr_AMode_wrk()
1606 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_AMode_wrk()
1607 return X86AMode_IR(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32, r1); in iselIntExpr_AMode_wrk()
1652 switch (e->Iex.Const.con->tag) { in iselIntExpr_RMI_wrk()
1653 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break; in iselIntExpr_RMI_wrk()
1654 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break; in iselIntExpr_RMI_wrk()
1655 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break; in iselIntExpr_RMI_wrk()
1663 return X86RMI_Mem(X86AMode_IR(e->Iex.Get.offset, in iselIntExpr_RMI_wrk()
1669 && e->Iex.Load.end == Iend_LE) { in iselIntExpr_RMI_wrk()
1670 X86AMode* am = iselIntExpr_AMode(env, e->Iex.Load.addr); in iselIntExpr_RMI_wrk()
1712 switch (e->Iex.Const.con->tag) { in iselIntExpr_RI_wrk()
1713 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break; in iselIntExpr_RI_wrk()
1714 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break; in iselIntExpr_RI_wrk()
1715 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break; in iselIntExpr_RI_wrk()
1759 return X86RM_Mem(X86AMode_IR(e->Iex.Get.offset, in iselIntExpr_RM_wrk()
1795 HReg r32 = lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselCondCode_wrk()
1804 vassert(e->Iex.Const.con->tag == Ico_U1); in iselCondCode_wrk()
1805 vassert(e->Iex.Const.con->Ico.U1 == True in iselCondCode_wrk()
1806 || e->Iex.Const.con->Ico.U1 == False); in iselCondCode_wrk()
1810 return e->Iex.Const.con->Ico.U1 ? Xcc_Z : Xcc_NZ; in iselCondCode_wrk()
1814 if (e->tag == Iex_Unop && e->Iex.Unop.op == Iop_Not1) { in iselCondCode_wrk()
1816 return 1 ^ iselCondCode(env, e->Iex.Unop.arg); in iselCondCode_wrk()
1822 && e->Iex.Unop.op == Iop_32to1) { in iselCondCode_wrk()
1823 X86RM* rm = iselIntExpr_RM(env, e->Iex.Unop.arg); in iselCondCode_wrk()
1832 && e->Iex.Unop.op == Iop_CmpNEZ8) { in iselCondCode_wrk()
1833 X86RM* rm = iselIntExpr_RM(env, e->Iex.Unop.arg); in iselCondCode_wrk()
1842 && e->Iex.Unop.op == Iop_CmpNEZ16) { in iselCondCode_wrk()
1843 X86RM* rm = iselIntExpr_RM(env, e->Iex.Unop.arg); in iselCondCode_wrk()
1882 && e->Iex.Unop.op == Iop_CmpNEZ32 in iselCondCode_wrk()
1883 && e->Iex.Unop.arg->tag == Iex_Get) { in iselCondCode_wrk()
1884 X86AMode* am = X86AMode_IR(e->Iex.Unop.arg->Iex.Get.offset, in iselCondCode_wrk()
1892 && e->Iex.Unop.op == Iop_CmpNEZ32) { in iselCondCode_wrk()
1893 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg); in iselCondCode_wrk()
1921 && e->Iex.Unop.op == Iop_CmpNEZ64) { in iselCondCode_wrk()
1924 iselInt64Expr( &hi, &lo, env, e->Iex.Unop.arg ); in iselCondCode_wrk()
1934 && (e->Iex.Binop.op == Iop_CmpEQ8 in iselCondCode_wrk()
1935 || e->Iex.Binop.op == Iop_CmpNE8 in iselCondCode_wrk()
1936 || e->Iex.Binop.op == Iop_CasCmpEQ8 in iselCondCode_wrk()
1937 || e->Iex.Binop.op == Iop_CasCmpNE8)) { in iselCondCode_wrk()
1938 if (isZeroU8(e->Iex.Binop.arg2)) { in iselCondCode_wrk()
1939 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselCondCode_wrk()
1941 switch (e->Iex.Binop.op) { in iselCondCode_wrk()
1947 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselCondCode_wrk()
1948 X86RMI* rmi2 = iselIntExpr_RMI(env, e->Iex.Binop.arg2); in iselCondCode_wrk()
1953 switch (e->Iex.Binop.op) { in iselCondCode_wrk()
1963 && (e->Iex.Binop.op == Iop_CmpEQ16 in iselCondCode_wrk()
1964 || e->Iex.Binop.op == Iop_CmpNE16 in iselCondCode_wrk()
1965 || e->Iex.Binop.op == Iop_CasCmpEQ16 in iselCondCode_wrk()
1966 || e->Iex.Binop.op == Iop_CasCmpNE16 in iselCondCode_wrk()
1967 || e->Iex.Binop.op == Iop_ExpCmpNE16)) { in iselCondCode_wrk()
1968 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselCondCode_wrk()
1969 X86RMI* rmi2 = iselIntExpr_RMI(env, e->Iex.Binop.arg2); in iselCondCode_wrk()
1974 switch (e->Iex.Binop.op) { in iselCondCode_wrk()
1987 && e->Iex.Binop.op == Iop_CmpNE32 in iselCondCode_wrk()
1988 && e->Iex.Binop.arg1->tag == Iex_CCall in iselCondCode_wrk()
1989 && e->Iex.Binop.arg2->tag == Iex_Const) { in iselCondCode_wrk()
1990 IRExpr* cal = e->Iex.Binop.arg1; in iselCondCode_wrk()
1991 IRExpr* con = e->Iex.Binop.arg2; in iselCondCode_wrk()
1993 vassert(cal->Iex.CCall.retty == Ity_I32); /* else ill-typed IR */ in iselCondCode_wrk()
1994 vassert(con->Iex.Const.con->tag == Ico_U32); in iselCondCode_wrk()
1999 cal->Iex.CCall.cee, in iselCondCode_wrk()
2000 cal->Iex.CCall.retty, cal->Iex.CCall.args ); in iselCondCode_wrk()
2006 X86RMI_Imm(con->Iex.Const.con->Ico.U32), in iselCondCode_wrk()
2013 && (e->Iex.Binop.op == Iop_CmpEQ32 in iselCondCode_wrk()
2014 || e->Iex.Binop.op == Iop_CmpNE32 in iselCondCode_wrk()
2015 || e->Iex.Binop.op == Iop_CmpLT32S in iselCondCode_wrk()
2016 || e->Iex.Binop.op == Iop_CmpLT32U in iselCondCode_wrk()
2017 || e->Iex.Binop.op == Iop_CmpLE32S in iselCondCode_wrk()
2018 || e->Iex.Binop.op == Iop_CmpLE32U in iselCondCode_wrk()
2019 || e->Iex.Binop.op == Iop_CasCmpEQ32 in iselCondCode_wrk()
2020 || e->Iex.Binop.op == Iop_CasCmpNE32 in iselCondCode_wrk()
2021 || e->Iex.Binop.op == Iop_ExpCmpNE32)) { in iselCondCode_wrk()
2022 HReg r1 = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselCondCode_wrk()
2023 X86RMI* rmi2 = iselIntExpr_RMI(env, e->Iex.Binop.arg2); in iselCondCode_wrk()
2025 switch (e->Iex.Binop.op) { in iselCondCode_wrk()
2039 && (e->Iex.Binop.op == Iop_CmpNE64 in iselCondCode_wrk()
2040 || e->Iex.Binop.op == Iop_CmpEQ64)) { in iselCondCode_wrk()
2044 iselInt64Expr( &hi1, &lo1, env, e->Iex.Binop.arg1 ); in iselCondCode_wrk()
2045 iselInt64Expr( &hi2, &lo2, env, e->Iex.Binop.arg2 ); in iselCondCode_wrk()
2051 switch (e->Iex.Binop.op) { in iselCondCode_wrk()
2094 ULong w64 = e->Iex.Const.con->Ico.U64; in iselInt64Expr_wrk()
2099 vassert(e->Iex.Const.con->tag == Ico_U64); in iselInt64Expr_wrk()
2116 lookupIRTemp64( rHi, rLo, env, e->Iex.RdTmp.tmp); in iselInt64Expr_wrk()
2121 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) { in iselInt64Expr_wrk()
2124 vassert(e->Iex.Load.ty == Ity_I64); in iselInt64Expr_wrk()
2127 am0 = iselIntExpr_AMode(env, e->Iex.Load.addr); in iselInt64Expr_wrk()
2138 X86AMode* am = X86AMode_IR(e->Iex.Get.offset, hregX86_EBP()); in iselInt64Expr_wrk()
2152 = genGuestArrayOffset( env, e->Iex.GetI.descr, in iselInt64Expr_wrk()
2153 e->Iex.GetI.ix, e->Iex.GetI.bias ); in iselInt64Expr_wrk()
2169 iselInt64Expr(&e0Hi, &e0Lo, env, e->Iex.ITE.iffalse); in iselInt64Expr_wrk()
2170 iselInt64Expr(&e1Hi, &e1Lo, env, e->Iex.ITE.iftrue); in iselInt64Expr_wrk()
2173 X86CondCode cc = iselCondCode(env, e->Iex.ITE.cond); in iselInt64Expr_wrk()
2185 switch (e->Iex.Binop.op) { in iselInt64Expr_wrk()
2194 Bool syned = toBool(e->Iex.Binop.op == Iop_MullS32); in iselInt64Expr_wrk()
2195 X86RM* rmLeft = iselIntExpr_RM(env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2196 HReg rRight = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2215 Bool syned = toBool(e->Iex.Binop.op == Iop_DivModS64to32); in iselInt64Expr_wrk()
2216 X86RM* rmRight = iselIntExpr_RM(env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2217 iselInt64Expr(&sHi,&sLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2235 X86AluOp op = e->Iex.Binop.op==Iop_Or64 ? Xalu_OR in iselInt64Expr_wrk()
2236 : e->Iex.Binop.op==Iop_And64 ? Xalu_AND in iselInt64Expr_wrk()
2238 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2239 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2251 if (e->Iex.Binop.arg2->tag == Iex_Const) { in iselInt64Expr_wrk()
2253 ULong w64 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U64; in iselInt64Expr_wrk()
2259 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U64); in iselInt64Expr_wrk()
2260 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2274 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2277 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2278 if (e->Iex.Binop.op==Iop_Add64) { in iselInt64Expr_wrk()
2292 *rHi = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2293 *rLo = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2321 rAmt = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2322 iselInt64Expr(&sHi,&sLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2363 rAmt = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2364 iselInt64Expr(&sHi,&sLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2386 HReg rf = iselDblExpr(env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2407 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 ); in iselInt64Expr_wrk()
2538 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2541 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2579 X86RMI* y = iselIntExpr_RMI(env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2581 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2602 switch (e->Iex.Unop.op) { in iselInt64Expr_wrk()
2608 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2621 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2633 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2646 Int off = e->Iex.Unop.op==Iop_V128HIto64 ? 8 : 0; in iselInt64Expr_wrk()
2649 HReg vec = iselVecExpr(env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2669 X86CondCode cond = iselCondCode(env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2684 iselInt64Expr(&sHi, &sLo, env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2700 iselInt64Expr(&yHi, &yLo, env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2759 iselInt64Expr(&srcHi, &srcLo, env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2780 HReg rf = iselDblExpr(env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2820 iselInt64Expr(&xHi, &xLo, env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2848 e->Iex.CCall.cee, in iselInt64Expr_wrk()
2849 e->Iex.CCall.retty, e->Iex.CCall.args ); in iselInt64Expr_wrk()
2892 return lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselFltExpr_wrk()
2895 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) { in iselFltExpr_wrk()
2898 vassert(e->Iex.Load.ty == Ity_F32); in iselFltExpr_wrk()
2899 am = iselIntExpr_AMode(env, e->Iex.Load.addr); in iselFltExpr_wrk()
2905 && e->Iex.Binop.op == Iop_F64toF32) { in iselFltExpr_wrk()
2910 HReg src = iselDblExpr(env, e->Iex.Binop.arg2); in iselFltExpr_wrk()
2911 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 ); in iselFltExpr_wrk()
2918 X86AMode* am = X86AMode_IR( e->Iex.Get.offset, in iselFltExpr_wrk()
2926 && e->Iex.Unop.op == Iop_ReinterpI32asF32) { in iselFltExpr_wrk()
2930 X86RMI* rmi = iselIntExpr_RMI(env, e->Iex.Unop.arg); in iselFltExpr_wrk()
2940 if (e->tag == Iex_Binop && e->Iex.Binop.op == Iop_RoundF32toInt) { in iselFltExpr_wrk()
2941 HReg rf = iselFltExpr(env, e->Iex.Binop.arg2); in iselFltExpr_wrk()
2948 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 ); in iselFltExpr_wrk()
3010 return lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselDblExpr_wrk()
3021 if (e->Iex.Const.con->tag == Ico_F64) { in iselDblExpr_wrk()
3022 u.f64 = e->Iex.Const.con->Ico.F64; in iselDblExpr_wrk()
3024 else if (e->Iex.Const.con->tag == Ico_F64i) { in iselDblExpr_wrk()
3025 u.u64 = e->Iex.Const.con->Ico.F64i; in iselDblExpr_wrk()
3038 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) { in iselDblExpr_wrk()
3041 vassert(e->Iex.Load.ty == Ity_F64); in iselDblExpr_wrk()
3042 am = iselIntExpr_AMode(env, e->Iex.Load.addr); in iselDblExpr_wrk()
3048 X86AMode* am = X86AMode_IR( e->Iex.Get.offset, in iselDblExpr_wrk()
3058 env, e->Iex.GetI.descr, in iselDblExpr_wrk()
3059 e->Iex.GetI.ix, e->Iex.GetI.bias ); in iselDblExpr_wrk()
3067 IRTriop *triop = e->Iex.Triop.details; in iselDblExpr_wrk()
3095 if (e->tag == Iex_Binop && e->Iex.Binop.op == Iop_RoundF64toInt) { in iselDblExpr_wrk()
3096 HReg rf = iselDblExpr(env, e->Iex.Binop.arg2); in iselDblExpr_wrk()
3103 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 ); in iselDblExpr_wrk()
3114 if (e->tag == Iex_Binop && e->Iex.Binop.op == Iop_I64StoF64) { in iselDblExpr_wrk()
3117 iselInt64Expr( &rHi, &rLo, env, e->Iex.Binop.arg2); in iselDblExpr_wrk()
3122 set_FPU_rounding_mode( env, e->Iex.Binop.arg1 ); in iselDblExpr_wrk()
3137 switch (e->Iex.Binop.op) { in iselDblExpr_wrk()
3147 HReg src = iselDblExpr(env, e->Iex.Binop.arg2); in iselDblExpr_wrk()
3165 switch (e->Iex.Unop.op) { in iselDblExpr_wrk()
3172 HReg src = iselDblExpr(env, e->Iex.Unop.arg); in iselDblExpr_wrk()
3181 switch (e->Iex.Unop.op) { in iselDblExpr_wrk()
3184 HReg ri = iselIntExpr_R(env, e->Iex.Unop.arg); in iselDblExpr_wrk()
3198 iselInt64Expr( &rHi, &rLo, env, e->Iex.Unop.arg); in iselDblExpr_wrk()
3211 HReg res = iselFltExpr(env, e->Iex.Unop.arg); in iselDblExpr_wrk()
3222 && typeOfIRExpr(env->type_env,e->Iex.ITE.cond) == Ity_I1) { in iselDblExpr_wrk()
3223 HReg r1 = iselDblExpr(env, e->Iex.ITE.iftrue); in iselDblExpr_wrk()
3224 HReg r0 = iselDblExpr(env, e->Iex.ITE.iffalse); in iselDblExpr_wrk()
3227 X86CondCode cc = iselCondCode(env, e->Iex.ITE.cond); in iselDblExpr_wrk()
3283 return lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselVecExpr_wrk()
3291 X86AMode_IR(e->Iex.Get.offset, hregX86_EBP()) in iselVecExpr_wrk()
3297 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) { in iselVecExpr_wrk()
3299 X86AMode* am = iselIntExpr_AMode(env, e->Iex.Load.addr); in iselVecExpr_wrk()
3306 vassert(e->Iex.Const.con->tag == Ico_V128); in iselVecExpr_wrk()
3307 addInstr(env, X86Instr_SseConst(e->Iex.Const.con->Ico.V128, dst)); in iselVecExpr_wrk()
3327 switch (e->Iex.Unop.op) { in iselVecExpr_wrk()
3330 HReg arg = iselVecExpr(env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3350 HReg arg = iselVecExpr(env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3373 HReg arg = iselVecExpr(env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3398 = e->Iex.Unop.op==Iop_CmpNEZ16x8 ? Xsse_CMPEQ16 in iselVecExpr_wrk()
3406 arg = iselVecExpr(env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3421 HReg arg = iselVecExpr(env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3432 HReg arg = iselVecExpr(env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3450 HReg arg = iselVecExpr(env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3468 HReg arg = iselVecExpr(env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3479 X86RMI* rmi = iselIntExpr_RMI(env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3490 iselInt64Expr(&rHi, &rLo, env, e->Iex.Unop.arg); in iselVecExpr_wrk()
3504 switch (e->Iex.Binop.op) { in iselVecExpr_wrk()
3508 HReg srcV = iselVecExpr(env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3509 HReg srcI = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3521 HReg srcV = iselVecExpr(env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3525 iselInt64Expr(&srcIhi, &srcIlo, env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3545 iselInt64Expr(&r1, &r0, env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3549 iselInt64Expr(&r3, &r2, env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3566 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3567 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3582 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3583 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3602 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3603 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3621 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3622 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3690 HReg arg1 = iselVecExpr(env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3691 HReg arg2 = iselVecExpr(env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3714 HReg greg = iselVecExpr(env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3715 X86RMI* rmi = iselIntExpr_RMI(env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3742 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1); in iselVecExpr_wrk()
3743 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2); in iselVecExpr_wrk()
3792 IRTriop *triop = e->Iex.Triop.details; in iselVecExpr_wrk()
3835 HReg r1 = iselVecExpr(env, e->Iex.ITE.iftrue); in iselVecExpr_wrk()
3836 HReg r0 = iselVecExpr(env, e->Iex.ITE.iffalse); in iselVecExpr_wrk()
3839 X86CondCode cc = iselCondCode(env, e->Iex.ITE.cond); in iselVecExpr_wrk()
4028 && stmt->Ist.WrTmp.data->Iex.Binop.op == Iop_Add32) { in iselStmt()
4330 IRConst* cdst = next->Iex.Const.con; in iselNext()