Home | History | Annotate | Download | only in priv

Lines Matching refs:Iex

450           && guard->Iex.Const.con->tag == Ico_U1
451 && guard->Iex.Const.con->Ico.U1 == True) {
561 && guard->Iex.Const.con->tag == Ico_U1
562 && guard->Iex.Const.con->Ico.U1 == True) {
676 && (e->Iex.Binop.op == Iop_Add32 || e->Iex.Binop.op == Iop_Sub32)
677 && e->Iex.Binop.arg2->tag == Iex_Const
678 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32) {
679 Int simm = (Int)e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
682 if (e->Iex.Binop.op == Iop_Sub32)
684 reg = iselIntExpr_R(env, e->Iex.Binop.arg1);
742 && (e->Iex.Binop.op == Iop_Add32 || e->Iex.Binop.op == Iop_Sub32)
743 && e->Iex.Binop.arg2->tag == Iex_Const
744 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32) {
745 Int simm = (Int)e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
748 if (e->Iex.Binop.op == Iop_Sub32)
750 reg = iselIntExpr_R(env, e->Iex.Binop.arg1);
794 && (e->Iex.Binop.op == Iop_Add32 || e->Iex.Binop.op == Iop_Sub32)
795 && e->Iex.Binop.arg2->tag == Iex_Const
796 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32) {
797 Int simm = (Int)e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
800 if (e->Iex.Binop.op == Iop_Sub32)
802 reg = iselIntExpr_R(env, e->Iex.Binop.arg1);
871 switch (e->Iex.Const.con->tag) {
872 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break;
873 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break;
874 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break;
925 switch (e->Iex.Const.con->tag) {
926 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break;
927 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break;
928 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break;
965 HReg rTmp = lookupIRTemp(env, e->Iex.RdTmp.tmp);
973 if (e->tag == Iex_Unop && e->Iex.Unop.op == Iop_Not1) {
975 return 1 ^ iselCondCode(env, e->Iex.Unop.arg);
981 && e->Iex.Unop.op == Iop_32to1) {
982 HReg rTmp = iselIntExpr_R(env, e->Iex.Unop.arg);
991 && e->Iex.Unop.op == Iop_CmpNEZ8) {
992 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1001 && e->Iex.Unop.op == Iop_CmpNEZ32) {
1002 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1011 && e->Iex.Unop.op == Iop_CmpNEZ64) {
1015 iselInt64Expr(&tHi, &tLo, env, e->Iex.Unop.arg);
1023 && (e->Iex.Binop.op == Iop_CmpEQ32
1024 || e->Iex.Binop.op == Iop_CmpNE32
1025 || e->Iex.Binop.op == Iop_CmpLT32S
1026 || e->Iex.Binop.op == Iop_CmpLT32U
1027 || e->Iex.Binop.op == Iop_CmpLE32S
1028 || e->Iex.Binop.op == Iop_CmpLE32U)) {
1029 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1031 env, e->Iex.Binop.arg2);
1033 switch (e->Iex.Binop.op) {
1048 && (e->Iex.Binop.op == Iop_CasCmpEQ32
1049 || e->Iex.Binop.op == Iop_CasCmpEQ16
1050 || e->Iex.Binop.op == Iop_CasCmpEQ8)) {
1084 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
1091 if (e->Iex.Load.end != Iend_LE)
1095 ARMAMode1* amode = iselIntExpr_AMode1 ( env, e->Iex.Load.addr );
1100 ARMAMode2* amode = iselIntExpr_AMode2 ( env, e->Iex.Load.addr );
1106 ARMAMode1* amode = iselIntExpr_AMode1 ( env, e->Iex.Load.addr );
1126 //zz if (e->Iex.Triop.op == Iop_PRemC3210F64
1127 //zz || e->Iex.Triop.op == Iop_PRem1C3210F64) {
1130 //zz HReg srcL = iselDblExpr(env, e->Iex.Triop.arg2);
1131 //zz HReg srcR = iselDblExpr(env, e->Iex.Triop.arg3);
1135 //zz e->Iex.Binop.op==Iop_PRemC3210F64
1157 switch (e->Iex.Binop.op) {
1161 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1163 env, e->Iex.Binop.arg2);
1174 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1176 env, e->Iex.Binop.arg2);
1184 switch (e->Iex.Binop.op) {
1190 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1191 ARMRI5* argR = iselIntExpr_RI5(env, e->Iex.Binop.arg2);
1200 if (e->Iex.Binop.op == Iop_Mul32) {
1201 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1202 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1213 if (e->Iex.Binop.op == Iop_Max32U) {
1214 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1215 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1224 if (e->Iex.Binop.op == Iop_CmpF64) {
1225 HReg dL = iselDblExpr(env, e->Iex.Binop.arg1);
1226 HReg dR = iselDblExpr(env, e->Iex.Binop.arg2);
1240 if (e->Iex.Binop.op == Iop_F64toI32S
1241 || e->Iex.Binop.op == Iop_F64toI32U) {
1247 Bool syned = e->Iex.Binop.op == Iop_F64toI32S;
1248 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
1249 set_VFP_rounding_mode(env, e->Iex.Binop.arg1);
1261 if (e->Iex.Binop.op == Iop_GetElem8x8
1262 || e->Iex.Binop.op == Iop_GetElem16x4
1263 || e->Iex.Binop.op == Iop_GetElem32x2) {
1265 HReg arg = iselNeon64Expr(env, e->Iex.Triop.arg1);
1267 if (e->Iex.Binop.arg2->tag != Iex_Const ||
1268 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
1272 index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
1273 switch (e->Iex.Binop.op) {
1286 if (e->Iex.Binop.op == Iop_GetElem8x16
1287 || e->Iex.Binop.op == Iop_GetElem16x8
1288 || e->Iex.Binop.op == Iop_GetElem32x4) {
1290 HReg arg = iselNeonExpr(env, e->Iex.Triop.arg1);
1292 if (e->Iex.Binop.arg2->tag != Iex_Const ||
1293 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
1297 index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
1298 switch (e->Iex.Binop.op) {
1313 switch (e->Iex.Binop.op) {
1357 HReg regL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1358 HReg regR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1374 //zz if (e->Iex.Unop.op == Iop_1Uto8) {
1390 //zz if (e->Iex.Unop.op == Iop_8Uto32) {
1404 //zz if (e->Iex.Unop.op == Iop_8Sto32) {
1418 //zz if (e->Iex.Unop.op == Iop_16Uto32) {
1432 //zz if (e->Iex.Unop.op == Iop_8Uto32) {
1433 //zz if (e->Iex.Unop.arg->tag == Iex_Get) {
1436 //zz vassert(e->Iex.Unop.arg->Iex.Get.ty == Ity_I8);
1438 //zz amode = X86AMode_IR(e->Iex.Unop.arg->Iex.Get.offset,
1446 //zz if (e->Iex.Unop.op == Iop_16Uto32) {
1447 //zz if (e->Iex.Unop.arg->tag == Iex_Get) {
1450 //zz vassert(e->Iex.Unop.arg->Iex.Get.ty == Ity_I16);
1452 //zz amode = X86AMode_IR(e->Iex.Unop.arg->Iex.Get.offset,
1459 switch (e->Iex.Unop.op) {
1462 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1471 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1472 //zz UInt mask = e->Iex.Unop.op==Iop_16Uto32 ? 0xFFFF : 0xFF;
1482 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1491 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1492 ARMRI5* amt = ARMRI5_I5(e->Iex.Unop.op==Iop_16Sto32 ? 16 : 24);
1501 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1507 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg);
1512 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg);
1520 HReg tmp = iselNeon64Expr(env, e->Iex.Unop.arg);
1525 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg);
1532 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1533 //zz Int shift = e->Iex.Unop.op == Iop_16HIto8 ? 8 : 16;
1541 ARMCondCode cond = iselCondCode(env, e->Iex.Unop.arg);
1549 ARMCondCode cond = iselCondCode(env, e->Iex.Unop.arg);
1567 //zz X86CondCode cond = iselCondCode(env, e->Iex.Unop.arg);
1576 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1583 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1590 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1599 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1607 //zz HReg vec = iselVecExpr(env, e->Iex.Unop.arg);
1618 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
1628 return iselIntExpr_R(env, e->Iex.Unop.arg);
1636 switch (e->Iex.Unop.op) {
1646 HReg arg = iselIntExpr_R(env, e->Iex.Unop.arg);
1660 && 0 == (e->Iex.Get.offset & 3)
1661 && e->Iex.Get.offset < 4096-4) {
1666 ARMAMode1_RI(hregARM_R8(), e->Iex.Get.offset)));
1674 //zz X86AMode_IR(e->Iex.Get.offset,hregX86_EBP()),
1684 //zz env, e->Iex.GetI.descr,
1685 //zz e->Iex.GetI.ix, e->Iex.GetI.bias );
1701 vassert(ty == e->Iex.CCall.retty);
1705 if (e->Iex.CCall.retty != Ity_I32)
1710 NULL, e->Iex.CCall.cee, e->Iex.CCall.args );
1723 switch (e->Iex.Const.con->tag) {
1724 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break;
1725 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break;
1726 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break;
1735 IRExpr* cond = e->Iex.Mux0X.cond;
1740 && cond->Iex.Unop.op == Iop_32to8
1741 && cond->Iex.Unop.arg->tag == Iex_Unop
1742 && cond->Iex.Unop.arg->Iex.Unop.op == Iop_1Uto32) {
1744 HReg rX = iselIntExpr_R(env, e->Iex.Mux0X.exprX);
1745 ARMRI84* r0 = iselIntExpr_RI84(NULL, False, env, e->Iex.Mux0X.expr0);
1748 cc = iselCondCode(env, cond->Iex.Unop.arg->Iex.Unop.arg);
1756 HReg rX = iselIntExpr_R(env, e->Iex.Mux0X.exprX);
1757 ARMRI84* r0 = iselIntExpr_RI84(NULL, False, env, e->Iex.Mux0X.expr0);
1807 ULong w64 = e->Iex.Const.con->Ico.U64;
1812 vassert(e->Iex.Const.con->tag == Ico_U64);
1830 lookupIRTemp64( rHi, rLo, env, e->Iex.RdTmp.tmp);
1836 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
1838 vassert(e->Iex.Load.ty == Ity_I64);
1839 rA = iselIntExpr_R(env, e->Iex.Load.addr);
1851 ARMAMode1* am0 = ARMAMode1_RI(hregARM_R8(), e->Iex.Get.offset + 0);
1852 ARMAMode1* am4 = ARMAMode1_RI(hregARM_R8(), e->Iex.Get.offset + 4);
1864 switch (e->Iex.Binop.op) {
1869 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1870 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1873 ARMMulOp mop = e->Iex.Binop.op == Iop_MullS32
1889 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
1890 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2);
1902 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
1903 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2);
1913 *rHi = iselIntExpr_R(env, e->Iex.Binop.arg1);
1914 *rLo = iselIntExpr_R(env, e->Iex.Binop.arg2);
1925 switch (e->Iex.Unop.op) {
1931 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
1945 iselInt64Expr(&yHi, &yLo, env, e->Iex.Unop.arg);
1970 iselInt64Expr(&srcHi, &srcLo, env, e->Iex.Unop.arg);
1987 ARMCondCode cond = iselCondCode(env, e->Iex.Unop.arg);
2010 ty8 = typeOfIRExpr(env->type_env,e->Iex.Mux0X.cond);
2012 iselInt64Expr(&rXhi, &rXlo, env, e->Iex.Mux0X.exprX);
2013 iselInt64Expr(&r0hi, &r0lo, env, e->Iex.Mux0X.expr0);
2018 r8 = iselIntExpr_R(env, e->Iex.Mux0X.cond);
2067 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
2079 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
2081 ARMAModeN* am = iselIntExpr_AModeN(env, e->Iex.Load.addr);
2092 addInstr(env, ARMInstr_Add32(addr, hregARM_R8(), e->Iex.Get.offset));
2099 switch (e->Iex.Binop.op) {
2113 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2114 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2121 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2122 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2129 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2130 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2138 HReg rHi = iselIntExpr_R(env, e->Iex.Binop.arg1);
2139 HReg rLo = iselIntExpr_R(env, e->Iex.Binop.arg2);
2150 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2151 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2153 switch (e->Iex.Binop.op) {
2166 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2167 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2175 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2176 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2184 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2185 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2199 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2200 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2203 switch (e->Iex.Binop.op) {
2235 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2236 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2239 switch (e->Iex.Binop.op) {
2269 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2270 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2273 switch (e->Iex.Binop.op) {
2302 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2303 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2305 switch (e->Iex.Binop.op) {
2321 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2322 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2324 switch (e->Iex.Binop.op) {
2340 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2341 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2343 switch (e->Iex.Binop.op) {
2356 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2357 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2368 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2369 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2371 switch (e->Iex.Binop.op) {
2387 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2388 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2390 switch (e->Iex.Binop.op) {
2405 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2406 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2408 switch (e->Iex.Binop.op) {
2422 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2423 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2425 switch (e->Iex.Binop.op) {
2439 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2440 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2442 switch (e->Iex.Binop.op) {
2456 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2457 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2459 switch (e->Iex.Binop.op) {
2473 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2474 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2478 switch (e->Iex.Binop.op) {
2497 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2498 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2500 switch (e->Iex.Binop.op) {
2515 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2516 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2520 switch (e->Iex.Binop.op) {
2537 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2538 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2540 switch (e->Iex.Binop.op) {
2555 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2556 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2558 switch (e->Iex.Binop.op) {
2574 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2575 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2577 switch (e->Iex.Binop.op) {
2593 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2595 if (e->Iex.Binop.arg2->tag != Iex_Const ||
2596 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
2600 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
2601 switch (e->Iex.Binop.op) {
2617 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2619 if (e->Iex.Binop.arg2->tag != Iex_Const ||
2620 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
2624 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
2625 switch (e->Iex.Binop.op) {
2641 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2643 if (e->Iex.Binop.arg2->tag != Iex_Const ||
2644 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
2648 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
2649 switch (e->Iex.Binop.op) {
2666 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2667 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2670 switch (e->Iex.Binop.op) {
2689 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2690 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2692 switch (e->Iex.Binop.op) {
2710 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2711 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2714 switch (e->Iex.Binop.op) {
2731 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2732 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2734 switch (e->Iex.Binop.op) {
2748 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2749 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2751 switch (e->Iex.Binop.op) {
2765 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2766 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2768 switch (e->Iex.Binop.op) {
2782 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2783 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2785 switch(e->Iex.Binop.op) {
2797 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2798 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2807 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2808 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2810 switch(e->Iex.Binop.op) {
2823 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2824 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2826 switch(e->Iex.Binop.op) {
2840 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2841 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2843 switch(e->Iex.Binop.op) {
2855 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2856 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2866 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2867 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2869 switch(e->Iex.Binop.op) {
2883 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2884 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2886 switch(e->Iex.Binop.op) {
2900 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2901 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2903 switch(e->Iex.Binop.op) {
2917 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2918 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2920 switch(e->Iex.Binop.op) {
2932 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2933 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2940 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2941 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2949 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2950 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2957 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2958 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2965 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2966 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2973 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2974 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2981 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2982 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2989 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2990 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2997 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2998 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3008 HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1);
3011 if (e->Iex.Binop.arg2->tag != Iex_Const ||
3012 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
3016 imm6 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
3019 switch(e->Iex.Binop.op) {
3035 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3039 if (e->Iex.Binop.arg2->tag != Iex_Const ||
3040 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
3044 index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
3045 switch(e->Iex.Binop.op) {
3067 switch (e->Iex.Unop.op) {
3169 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3193 index = mi.bindee[1]->Iex.Const.con->Ico.U8;
3212 index = mi.bindee[1]->Iex.Const.con->Ico.U8;
3231 index = mi.bindee[1]->Iex.Const.con->Ico.U8;
3246 arg = iselIntExpr_R(env, e->Iex.Unop.arg);
3248 switch (e->Iex.Unop.op) {
3261 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3263 switch(e->Iex.Binop.op) {
3276 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3278 switch(e->Iex.Binop.op) {
3291 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3293 switch(e->Iex.Binop.op) {
3304 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3320 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3342 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3344 switch (e->Iex.Unop.op) {
3358 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3360 switch(e->Iex.Binop.op) {
3374 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3376 switch(e->Iex.Binop.op) {
3390 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3392 switch(e->Iex.Binop.op) {
3406 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3408 switch(e->Iex.Binop.op) {
3422 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3424 switch(e->Iex.Binop.op) {
3438 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3440 switch(e->Iex.Binop.op) {
3452 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3462 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3464 switch(e->Iex.Binop.op) {
3478 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3480 switch(e->Iex.Binop.op) {
3492 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3499 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3506 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3513 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3520 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3527 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3534 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3555 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3563 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3570 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3577 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3588 switch (e->Iex.Triop.op) {
3591 HReg argL = iselNeon64Expr(env, e->Iex.Triop.arg1);
3592 HReg argR = iselNeon64Expr(env, e->Iex.Triop.arg2);
3594 if (e->Iex.Triop.arg3->tag != Iex_Const ||
3595 typeOfIRExpr(env->type_env, e->Iex.Triop.arg3) != Ity_I8) {
3599 imm4 = e->Iex.Triop.arg3->Iex.Const.con->Ico.U8;
3612 HReg dreg = iselNeon64Expr(env, e->Iex.Triop.arg1);
3613 HReg arg = iselIntExpr_R(env, e->Iex.Triop.arg3);
3615 if (e->Iex.Triop.arg2->tag != Iex_Const ||
3616 typeOfIRExpr(env->type_env, e->Iex.Triop.arg2) != Ity_I8) {
3620 index = e->Iex.Triop.arg2->Iex.Const.con->Ico.U8;
3621 switch (e->Iex.Triop.op) {
3669 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
3677 if (e->Iex.Const.con->Ico.V128 == 0) {
3688 ARMAModeN* am = iselIntExpr_AModeN(env, e->Iex.Load.addr);
3698 addInstr(env, ARMInstr_Add32(addr, hregARM_R8(), e->Iex.Get.offset));
3704 switch (e->Iex.Unop.op) {
3792 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3816 index = mi.bindee[1]->Iex.Const.con->Ico.U8;
3835 index = mi.bindee[1]->Iex.Const.con->Ico.U8;
3854 index = mi.bindee[1]->Iex.Const.con->Ico.U8;
3869 arg = iselIntExpr_R(env, e->Iex.Unop.arg);
3871 switch (e->Iex.Unop.op) {
3884 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3886 switch(e->Iex.Binop.op) {
3899 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3901 switch(e->Iex.Binop.op) {
3914 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3916 switch(e->Iex.Binop.op) {
3927 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3943 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3965 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3967 switch (e->Iex.Unop.op) {
3981 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3983 switch (e->Iex.Unop.op) {
3997 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3999 switch (e->Iex.Unop.op) {
4013 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4015 switch(e->Iex.Binop.op) {
4029 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4031 switch(e->Iex.Binop.op) {
4043 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4052 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4054 switch(e->Iex.Binop.op) {
4067 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4069 switch(e->Iex.Binop.op) {
4080 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4087 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4094 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4101 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4108 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4115 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4122 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4143 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4151 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4158 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4165 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4177 switch (e->Iex.Binop.op) {
4180 if (e->Iex.Binop.arg1->tag == Iex_Const &&
4181 e->Iex.Binop.arg2->tag == Iex_Const &&
4182 typeOfIRExpr(env->type_env, e->Iex.Binop.arg1) == Ity_I64 &&
4183 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) == Ity_I64 &&
4184 e->Iex.Binop.arg1->Iex.Const.con->Ico.U64 ==
4185 e->Iex.Binop.arg2->Iex.Const.con->Ico.U64) {
4186 ULong imm64 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U64;
4238 iselInt64Expr(&w1, &w0, env, e->Iex.Binop.arg2);
4243 iselInt64Expr(&w3, &w2, env, e->Iex.Binop.arg1);
4259 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4260 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4267 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4268 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4275 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4276 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4311 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4312 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4314 switch (e->Iex.Binop.op) {
4320 ppIROp(e->Iex.Binop.op);
4329 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4330 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4338 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4339 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4347 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4348 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4362 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4363 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4366 switch (e->Iex.Binop.op) {
4374 ppIROp(e->Iex.Binop.op);
4402 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4403 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4406 switch (e->Iex.Binop.op) {
4414 ppIROp(e->Iex.Binop.op);
4442 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4443 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4446 switch (e->Iex.Binop.op) {
4454 ppIROp(e->Iex.Binop.op);
4479 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4480 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4482 switch (e->Iex.Binop.op) {
4488 ppIROp(e->Iex.Binop.op);
4500 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4501 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4503 switch (e->Iex.Binop.op) {
4509 ppIROp(e->Iex.Binop.op);
4521 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4522 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4524 switch (e->Iex.Binop.op) {
4530 ppIROp(e->Iex.Binop.op);
4539 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4540 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4551 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4552 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4554 switch (e->Iex.Binop.op) {
4560 ppIROp(e->Iex.Binop.op);
4572 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4573 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4575 Iex.Binop.op) {
4581 ppIROp(e->Iex.Binop.op);
4592 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4593 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4595 switch (e->Iex.Binop.op) {
4609 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4610 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4612 switch (e->Iex.Binop.op) {
4626 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4627 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4629 switch (e->Iex.Binop.op) {
4643 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4644 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4646 switch (e->Iex.Binop.op) {
4661 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4662 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4666 switch (e->Iex.Binop.op) {
4685 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4686 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4688 switch (e->Iex.Binop.op) {
4704 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4705 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4709 switch (e->Iex.Binop.op) {
4728 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4729 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4731 switch (e->Iex.Binop.op) {
4747 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4748 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4750 switch (e->Iex.Binop.op) {
4766 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4767 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4769 switch (e->Iex.Binop.op) {
4785 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4787 if (e->Iex.Binop.arg2->tag != Iex_Const ||
4788 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
4792 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
4793 switch (e->Iex.Binop.op) {
4809 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4811 if (e->Iex.Binop.arg2->tag != Iex_Const ||
4812 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
4816 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
4817 switch (e->Iex.Binop.op) {
4833 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4835 if (e->Iex.Binop.arg2->tag != Iex_Const ||
4836 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
4840 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
4841 switch (e->Iex.Binop.op) {
4858 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4859 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4862 switch (e->Iex.Binop.op) {
4882 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4883 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4885 switch (e->Iex.Binop.op) {
4903 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4904 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4907 switch (e->Iex.Binop.op) {
4924 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4925 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4927 switch (e->Iex.Binop.op) {
4941 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4942 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4944 switch (e->Iex.Binop.op) {
4958 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4959 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4961 switch (e->Iex.Binop.op) {
4975 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4976 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4978 switch(e->Iex.Binop.op) {
4990 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4991 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5001 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5002 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5004 switch(e->Iex.Binop.op) {
5019 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5020 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5022 switch(e->Iex.Binop.op) {
5036 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5037 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5039 switch(e->Iex.Binop.op) {
5052 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5053 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5055 switch(e->Iex.Binop.op) {
5068 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5069 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5071 switch(e->Iex.Binop.op) {
5082 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5083 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5091 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5092 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5099 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5100 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5107 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5108 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5115 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5116 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5123 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5124 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5131 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5132 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5139 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5140 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5148 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5149 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5160 HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1);
5163 if (e->Iex.Binop.arg2->tag != Iex_Const ||
5164 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
5168 imm6 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
5171 switch(e->Iex.Binop.op) {
5187 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5190 if (e->Iex.Binop.arg2->tag != Iex_Const ||
5191 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
5195 index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
5196 switch(e->Iex.Binop.op) {
5215 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5216 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5218 switch(e->Iex.Binop.op) {
5235 switch (e->Iex.Triop.op) {
5238 HReg argL = iselNeonExpr(env, e->Iex.Triop.arg1);
5239 HReg argR = iselNeonExpr(env, e->Iex.Triop.arg2);
5241 if (e->Iex.Triop.arg3->tag != Iex_Const ||
5242 typeOfIRExpr(env->type_env, e->Iex.Triop.arg3) != Ity_I8) {
5246 imm4 = e->Iex.Triop.arg3->Iex.Const.con->Ico.U8;
5262 HReg rX = iselNeonExpr(env, e->Iex.Mux0X.exprX);
5263 HReg r0 = iselNeonExpr(env, e->Iex.Mux0X.expr0);
5266 r8 = iselIntExpr_R(env, e->Iex.Mux0X.cond);
5306 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
5311 IRConst* con = e->Iex.Const.con;
5321 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
5324 vassert(e->Iex.Load.ty == Ity_F64);
5325 am = iselIntExpr_AModeV(env, e->Iex.Load.addr);
5333 ARMAModeV* am = mkARMAModeV(hregARM_R8(), e->Iex.Get.offset);
5340 switch (e->Iex.Unop.op) {
5343 return iselNeon64Expr(env, e->Iex.Unop.arg);
5347 iselInt64Expr(&srcHi, &srcLo, env, e->Iex.Unop.arg);
5353 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5359 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5365 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5372 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5375 Bool syned = e->Iex.Unop.op == Iop_I32StoF64;
5389 switch (e->Iex.Binop.op) {
5392 HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
5403 switch (e->Iex.Triop.op) {
5409 HReg argL = iselDblExpr(env, e->Iex.Triop.arg2);
5410 HReg argR = iselDblExpr(env, e->Iex.Triop.arg3);
5412 switch (e->Iex.Triop.op) {
5429 && typeOfIRExpr(env->type_env,e->Iex.Mux0X.cond) == Ity_I8) {
5431 HReg rX = iselDblExpr(env, e->Iex.Mux0X.exprX);
5432 HReg r0 = iselDblExpr(env, e->Iex.Mux0X.expr0);
5435 r8 = iselIntExpr_R(env, e->Iex.Mux0X.cond);
5476 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
5479 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
5482 vassert(e->Iex.Load.ty == Ity_F32);
5483 am = iselIntExpr_AModeV(env, e->Iex.Load.addr);
5491 ARMAModeV* am = mkARMAModeV(hregARM_R8(), e->Iex.Get.offset);
5498 switch (e->Iex.Unop.op) {
5501 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5506 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5512 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5523 switch (e->Iex.Binop.op) {
5526 HReg src = iselFltExpr(env, e->Iex.Binop.arg2);
5532 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
5533 set_VFP_rounding_mode(env, e->Iex.Binop.arg1);
5546 switch (e->Iex.Triop.op) {
5552 HReg argL = iselFltExpr(env, e->Iex.Triop.arg2);
5553 HReg argR = iselFltExpr(env, e->Iex.Triop.arg3);
5555 switch (e->Iex.Triop.op) {
5572 && typeOfIRExpr(env->type_env,e->Iex.Mux0X.cond) == Ity_I8) {
5574 HReg rX = iselFltExpr(env, e->Iex.Mux0X.exprX);
5575 HReg r0 = iselFltExpr(env, e->Iex.Mux0X.expr0);
5578 r8 = iselIntExpr_R(env, e->Iex.Mux0X.cond);