Lines Matching refs:Iex
373 IRConst* con = e->Iex.Const.con;
420 && env->previous_rm->Iex.RdTmp.tmp == mode->Iex.RdTmp.tmp) {
638 && guard->Iex.Const.con->tag == Ico_U1
639 && guard->Iex.Const.con->Ico.U1 == True) {
744 && guard->Iex.Const.con->tag == Ico_U1
745 && guard->Iex.Const.con->Ico.U1 == True) {
901 && (e->Iex.Binop.op == Iop_Add64 || e->Iex.Binop.op == Iop_Sub64)
902 && e->Iex.Binop.arg2->tag == Iex_Const
903 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U64) {
904 Long simm = (Long)e->Iex.Binop.arg2->Iex.Const.con->Ico.U64;
911 HReg reg = iselIntExpr_R(env, e->Iex.Binop.arg1);
912 if (e->Iex.Binop.op == Iop_Sub64) simm = -simm;
919 && e->Iex.Binop.op == Iop_Add64
920 && e->Iex.Binop.arg2->tag == Iex_Const
921 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U64) {
922 ULong uimm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U64;
926 HReg reg = iselIntExpr_R(env, e->Iex.Binop.arg1);
933 && e->Iex.Binop.op == Iop_Add64) {
934 HReg reg1 = iselIntExpr_R(env, e->Iex.Binop.arg1);
935 HReg reg2 = iselIntExpr_R(env, e->Iex.Binop.arg2);
974 //ZZ && (e->Iex.Binop.op == Iop_Add32 || e->Iex.Binop.op == Iop_Sub32)
975 //ZZ && e->Iex.Binop.arg2->tag == Iex_Const
976 //ZZ && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32) {
977 //ZZ Int simm = (Int)e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
980 //ZZ if (e->Iex.Binop.op == Iop_Sub32)
982 //ZZ reg = iselIntExpr_R(env, e->Iex.Binop.arg1);
1051 //ZZ switch (e->Iex.Const.con->tag) {
1052 //ZZ case Ico_U32: u = e->Iex.Const.con->Ico.U32; break;
1053 //ZZ case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break;
1054 //ZZ case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break;
1107 switch (e->Iex.Const.con->tag) {
1108 case Ico_U64: u = e->Iex.Const.con->Ico.U64; break;
1109 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break;
1372 vassert(e->Iex.Const.con->tag == Ico_U64);
1373 maybe = mb_mkARM64RIL_I(e->Iex.Const.con->Ico.U64);
1376 vassert(e->Iex.Const.con->tag == Ico_U32);
1377 UInt u32 = e->Iex.Const.con->Ico.U32;
1429 switch (e->Iex.Const.con->tag) {
1431 UInt u = e->Iex.Const.con->Ico.U8;
1470 HReg rTmp = lookupIRTemp(env, e->Iex.RdTmp.tmp);
1479 if (e->tag == Iex_Unop && e->Iex.Unop.op == Iop_Not1) {
1481 ARM64CondCode cc = iselCondCode(env, e->Iex.Unop.arg);
1492 && e->Iex.Unop.op == Iop_64to1) {
1493 HReg rTmp = iselIntExpr_R(env, e->Iex.Unop.arg);
1503 && e->Iex.Unop.op == Iop_CmpNEZ8) {
1504 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1513 && e->Iex.Unop.op == Iop_CmpNEZ64) {
1514 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1523 && e->Iex.Unop.op == Iop_CmpNEZ32) {
1524 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1532 && (e->Iex.Binop.op == Iop_CmpEQ64
1533 || e->Iex.Binop.op == Iop_CmpNE64
1534 || e->Iex.Binop.op == Iop_CmpLT64S
1535 || e->Iex.Binop.op == Iop_CmpLT64U
1536 || e->Iex.Binop.op == Iop_CmpLE64S
1537 || e->Iex.Binop.op == Iop_CmpLE64U)) {
1538 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1539 ARM64RIA* argR = iselIntExpr_RIA(env, e->Iex.Binop.arg2);
1541 switch (e->Iex.Binop.op) {
1554 && (e->Iex.Binop.op == Iop_CmpEQ32
1555 || e->Iex.Binop.op == Iop_CmpNE32
1556 || e->Iex.Binop.op == Iop_CmpLT32S
1557 || e->Iex.Binop.op == Iop_CmpLT32U
1558 || e->Iex.Binop.op == Iop_CmpLE32S
1559 || e->Iex.Binop.op == Iop_CmpLE32U)) {
1560 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1561 ARM64RIA* argR = iselIntExpr_RIA(env, e->Iex.Binop.arg2);
1563 switch (e->Iex.Binop.op) {
1578 //ZZ vassert(e->Iex.Const.con->tag == Ico_U1);
1579 //ZZ vassert(e->Iex.Const.con->Ico.U1 == True
1580 //ZZ || e->Iex.Const.con->Ico.U1 == False);
1584 //ZZ return e->Iex.Const.con->Ico.U1 ? ARMcc_EQ : ARMcc_NE;
1592 //ZZ // && (e->Iex.Binop.op == Iop_CasCmpEQ32
1593 //ZZ // || e->Iex.Binop.op == Iop_CasCmpEQ16
1594 //ZZ // || e->Iex.Binop.op == Iop_CasCmpEQ8)) {
1627 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
1634 if (e->Iex.Load.end != Iend_LE)
1638 ARM64AMode* amode = iselIntExpr_AMode ( env, e->Iex.Load.addr, ty );
1643 ARM64AMode* amode = iselIntExpr_AMode ( env, e->Iex.Load.addr, ty );
1648 ARM64AMode* amode = iselIntExpr_AMode ( env, e->Iex.Load.addr, ty );
1653 ARM64AMode* amode = iselIntExpr_AMode ( env, e->Iex.Load.addr, ty );
1670 switch (e->Iex.Binop.op) {
1672 if (isZeroU64(e->Iex.Binop.arg1)) {
1673 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1684 switch (e->Iex.Binop.op) {
1687 Bool isAdd = e->Iex.Binop.op == Iop_Add64
1688 || e->Iex.Binop.op == Iop_Add32;
1690 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1691 ARM64RIA* argR = iselIntExpr_RIA(env, e->Iex.Binop.arg2);
1700 switch (e->Iex.Binop.op) {
1706 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1707 ARM64RIL* argR = iselIntExpr_RIL(env, e->Iex.Binop.arg2);
1716 switch (e->Iex.Binop.op) {
1722 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1723 ARM64RI6* argR = iselIntExpr_RI6(env, e->Iex.Binop.arg2);
1729 Bool zx = e->Iex.Binop.op == Iop_Shr32;
1730 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1731 ARM64RI6* argR = iselIntExpr_RI6(env, e->Iex.Binop.arg2);
1741 if (e->Iex.Binop.op == Iop_Mul64 || e->Iex.Binop.op == Iop_Mul32) {
1742 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1743 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1750 if (e->Iex.Binop.op == Iop_MullU32 || e->Iex.Binop.op == Iop_MullS32) {
1751 Bool isS = e->Iex.Binop.op == Iop_MullS32;
1752 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1754 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1763 if (e->Iex.Binop.op == Iop_Max32U) {
1764 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1765 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1772 if (e->Iex.Binop.op == Iop_32HLto64) {
1773 HReg hi32s = iselIntExpr_R(env, e->Iex.Binop.arg1);
1774 HReg lo32s = iselIntExpr_R(env, e->Iex.Binop.arg2);
1784 if (e->Iex.Binop.op == Iop_CmpF64 || e->Iex.Binop.op == Iop_CmpF32) {
1785 Bool isD = e->Iex.Binop.op == Iop_CmpF64;
1786 HReg dL = (isD ? iselDblExpr : iselFltExpr)(env, e->Iex.Binop.arg1);
1787 HReg dR = (isD ? iselDblExpr : iselFltExpr)(env, e->Iex.Binop.arg2);
1808 switch (e->Iex.Binop.op) {
1839 IRExpr* arg1 = e->Iex.Binop.arg1;
1841 IRConst* arg1con = arg1->Iex.Const.con;
1854 (env, e->Iex.Binop.arg2);
1861 //ZZ if (e->Iex.Binop.op == Iop_GetElem8x8
1862 //ZZ || e->Iex.Binop.op == Iop_GetElem16x4
1863 //ZZ || e->Iex.Binop.op == Iop_GetElem32x2) {
1865 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1);
1867 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
1868 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
1872 //ZZ index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
1873 //ZZ switch (e->Iex.Binop.op) {
1886 //ZZ if (e->Iex.Binop.op == Iop_GetElem8x16
1887 //ZZ || e->Iex.Binop.op == Iop_GetElem16x8
1888 //ZZ || e->Iex.Binop.op == Iop_GetElem32x4) {
1890 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1);
1892 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
1893 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
1897 //ZZ index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
1898 //ZZ switch (e->Iex.Binop.op) {
1913 switch (e->Iex.Binop.op) {
1973 HReg regL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1974 HReg regR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1990 switch (e->Iex.Unop.op) {
1994 IRExpr* arg = e->Iex.Unop.arg;
2000 IRExpr* arg = e->Iex.Unop.arg;
2006 = iselIntExpr_AMode(env, arg->Iex.Load.addr, Ity_I32);
2017 IRExpr* arg = e->Iex.Unop.arg;
2023 = iselIntExpr_AMode(env, arg->Iex.Load.addr, Ity_I8);
2034 iselInt128Expr(&rHi,&rLo, env, e->Iex.Unop.arg);
2038 IRExpr* arg = e->Iex.Unop.arg;
2044 IRExpr* arg = e->Iex.Unop.arg;
2050 IRExpr* arg = e->Iex.Unop.arg;
2058 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
2064 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
2074 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
2084 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
2096 HReg pre = iselIntExpr_R(env, e->Iex.Unop.arg);
2107 HReg src = iselV128Expr(env, e->Iex.Unop.arg);
2108 UInt laneNo = (e->Iex.Unop.op == Iop_V128HIto64) ? 1 : 0;
2121 ARM64CondCode cc = iselCondCode(env, e->Iex.Unop.arg);
2132 HReg src = iselV128Expr(env, e->Iex.Unop.arg);
2136 switch (e->Iex.Unop.op) {
2148 //ZZ iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg);
2153 //ZZ iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg);
2161 //ZZ HReg tmp = iselNeon64Expr(env, e->Iex.Unop.arg);
2166 //ZZ iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg);
2174 if (e->Iex.Unop.arg->tag == Iex_RdTmp) {
2176 HReg src = lookupIRTemp(env, e->Iex.Unop.arg->Iex.RdTmp.tmp);
2185 ARM64CondCode cc = iselCondCode(env, e->Iex.Unop.arg);
2192 //ZZ ARMCondCode cond = iselCondCode(env, e->Iex.Unop.arg);
2200 //ZZ ARMCondCode cond = iselCondCode(env, e->Iex.Unop.arg);
2215 //ZZ HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
2222 //ZZ HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
2231 //ZZ HReg src = iselFltExpr(env, e->Iex.Unop.arg);
2240 return iselIntExpr_R(env, e->Iex.Unop.arg);
2248 //ZZ switch (e->Iex.Unop.op) {
2258 //ZZ HReg arg = iselIntExpr_R(env, e->Iex.Unop.arg);
2273 && 0 == (e->Iex.Get.offset & 7) && e->Iex.Get.offset < (8<<12)-8) {
2276 = mk_baseblock_64bit_access_amode(e->Iex.Get.offset);
2281 && 0 == (e->Iex.Get.offset & 3) && e->Iex.Get.offset < (4<<12)-4) {
2284 = mk_baseblock_32bit_access_amode(e->Iex.Get.offset);
2289 && 0 == (e->Iex.Get.offset & 1) && e->Iex.Get.offset < (2<<12)-2) {
2292 = mk_baseblock_16bit_access_amode(e->Iex.Get.offset);
2297 /* && no alignment check */ && e->Iex.Get.offset < (1<<12)-1) {
2300 = mk_baseblock_8bit_access_amode(e->Iex.Get.offset);
2310 vassert(ty == e->Iex.CCall.retty);
2315 if (e->Iex.CCall.retty != Ity_I64)
2322 e->Iex.CCall.cee, e->Iex.CCall.retty,
2323 e->Iex.CCall.args );
2340 switch (e->Iex.Const.con->tag) {
2341 case Ico_U64: u = e->Iex.Const.con->Ico.U64; break;
2342 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break;
2343 case Ico_U16: u = e->Iex.Const.con->Ico.U16; break;
2344 case Ico_U8: u = e->Iex.Const.con->Ico.U8; break;
2356 HReg r1 = iselIntExpr_R(env, e->Iex.ITE.iftrue);
2357 HReg r0 = iselIntExpr_R(env, e->Iex.ITE.iffalse);
2359 cc = iselCondCode(env, e->Iex.ITE.cond);
2408 switch (e->Iex.Binop.op) {
2412 Bool syned = toBool(e->Iex.Binop.op == Iop_MullS64);
2413 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
2414 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2427 *rHi = iselIntExpr_R(env, e->Iex.Binop.arg1);
2428 *rLo = iselIntExpr_R(env, e->Iex.Binop.arg2);
2467 //ZZ ULong w64 = e->Iex.Const.con->Ico.U64;
2472 //ZZ vassert(e->Iex.Const.con->tag == Ico_U64);
2490 //ZZ lookupIRTemp64( rHi, rLo, env, e->Iex.RdTmp.tmp);
2496 //ZZ if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
2498 //ZZ vassert(e->Iex.Load.ty == Ity_I64);
2499 //ZZ rA = iselIntExpr_R(env, e->Iex.Load.addr);
2513 //ZZ ARMAMode1* am0 = ARMAMode1_RI(hregARM_R8(), e->Iex.Get.offset + 0);
2514 //ZZ ARMAMode1* am4 = ARMAMode1_RI(hregARM_R8(), e->Iex.Get.offset + 4);
2526 //ZZ switch (e->Iex.Binop.op) {
2531 //ZZ HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
2532 //ZZ HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2535 //ZZ ARMMulOp mop = e->Iex.Binop.op == Iop_MullS32
2551 //ZZ iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
2552 //ZZ iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2);
2564 //ZZ iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1);
2565 //ZZ iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2);
2575 //ZZ *rHi = iselIntExpr_R(env, e->Iex.Binop.arg1);
2576 //ZZ *rLo = iselIntExpr_R(env, e->Iex.Binop.arg2);
2587 //ZZ switch (e->Iex.Unop.op) {
2593 //ZZ HReg src = iselDblExpr(env, e->Iex.Unop.arg);
2607 //ZZ iselInt64Expr(&yHi, &yLo, env, e->Iex.Unop.arg);
2632 //ZZ iselInt64Expr(&srcHi, &srcLo, env, e->Iex.Unop.arg);
2649 //ZZ ARMCondCode cond = iselCondCode(env, e->Iex.Unop.arg);
2673 //ZZ tyC = typeOfIRExpr(env->type_env,e->Iex.ITE.cond);
2675 //ZZ iselInt64Expr(&r1hi, &r1lo, env, e->Iex.ITE.iftrue);
2676 //ZZ iselInt64Expr(&r0hi, &r0lo, env, e->Iex.ITE.iffalse);
2681 //ZZ cc = iselCondCode(env, e->Iex.ITE.cond);
2728 //ZZ return lookupIRTemp(env, e->Iex.RdTmp.tmp);
2740 //ZZ if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
2742 //ZZ ARMAModeN* am = iselIntExpr_AModeN(env, e->Iex.Load.addr);
2753 //ZZ addInstr(env, ARMInstr_Add32(addr, hregARM_R8(), e->Iex.Get.offset));
2760 //ZZ switch (e->Iex.Binop.op) {
2774 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2775 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2782 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2783 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2790 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2791 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2799 //ZZ HReg rHi = iselIntExpr_R(env, e->Iex.Binop.arg1);
2800 //ZZ HReg rLo = iselIntExpr_R(env, e->Iex.Binop.arg2);
2811 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2812 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2814 //ZZ switch (e->Iex.Binop.op) {
2827 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2828 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2836 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2837 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2845 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2846 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2862 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2863 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2866 //ZZ switch (e->Iex.Binop.op) {
2888 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2889 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2892 //ZZ switch (e->Iex.Binop.op) {
2912 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2913 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2916 //ZZ switch (e->Iex.Binop.op) {
2934 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2935 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2937 //ZZ switch (e->Iex.Binop.op) {
2953 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2954 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2956 //ZZ switch (e->Iex.Binop.op) {
2972 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2973 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2975 //ZZ switch (e->Iex.Binop.op) {
2988 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2989 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3000 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3001 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3003 Iex.Binop.op) {
3019 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3020 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3022 //ZZ switch (e->Iex.Binop.op) {
3037 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3038 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3040 //ZZ switch (e->Iex.Binop.op) {
3054 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3055 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3057 //ZZ switch (e->Iex.Binop.op) {
3071 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3072 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3074 //ZZ switch (e->Iex.Binop.op) {
3088 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3089 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3091 //ZZ switch (e->Iex.Binop.op) {
3105 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3106 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3110 //ZZ switch (e->Iex.Binop.op) {
3129 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3130 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3132 //ZZ switch (e->Iex.Binop.op) {
3147 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3148 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3152 //ZZ switch (e->Iex.Binop.op) {
3169 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3170 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3172 //ZZ switch (e->Iex.Binop.op) {
3187 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3188 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3190 //ZZ switch (e->Iex.Binop.op) {
3206 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3207 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3209 //ZZ switch (e->Iex.Binop.op) {
3225 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3227 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
3228 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
3232 //ZZ imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
3233 //ZZ switch (e->Iex.Binop.op) {
3249 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3251 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
3252 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
3256 //ZZ imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
3257 //ZZ switch (e->Iex.Binop.op) {
3273 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3275 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
3276 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
3280 //ZZ imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
3281 //ZZ switch (e->Iex.Binop.op) {
3298 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3299 //ZZ HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
3302 //ZZ switch (e->Iex.Binop.op) {
3321 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3324 //ZZ if (e->Iex.Binop.op == Iop_Shl64
3325 //ZZ && e->Iex.Binop.arg2->tag == Iex_Const) {
3326 //ZZ vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
3327 //ZZ Int nshift = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
3334 //ZZ HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
3336 //ZZ switch (e->Iex.Binop.op) {
3355 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3356 //ZZ HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
3359 //ZZ switch (e->Iex.Binop.op) {
3376 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3377 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3379 //ZZ switch (e->Iex.Binop.op) {
3393 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3394 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3396 //ZZ switch (e->Iex.Binop.op) {
3410 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3411 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3413 //ZZ switch (e->Iex.Binop.op) {
3427 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3428 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3430 //ZZ switch(e->Iex.Binop.op) {
3442 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3443 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3452 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3453 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3455 //ZZ switch(e->Iex.Binop.op) {
3468 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3469 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3471 //ZZ switch(e->Iex.Binop.op) {
3485 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3486 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3488 //ZZ switch(e->Iex.Binop.op) {
3500 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3501 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3511 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3512 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3514 //ZZ switch(e->Iex.Binop.op) {
3528 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3529 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3531 //ZZ switch(e->Iex.Binop.op) {
3545 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3546 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3548 //ZZ switch(e->Iex.Binop.op) {
3562 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3563 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3565 //ZZ switch(e->Iex.Binop.op) {
3577 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3578 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3585 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3586 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3594 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3595 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3602 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3603 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3610 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3611 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3618 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3619 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3626 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3627 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3634 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3635 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3642 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3643 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3653 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1);
3656 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
3657 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
3661 //ZZ imm6 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
3664 //ZZ switch(e->Iex.Binop.op) {
3680 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3684 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
3685 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
3689 //ZZ index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
3690 //ZZ switch(e->Iex.Binop.op) {
3712 //ZZ switch (e->Iex.Unop.op) {
3716 //ZZ HReg rLo = iselIntExpr_R(env, e->Iex.Unop.arg);
3726 //ZZ HReg rLo = iselIntExpr_R(env, e->Iex.Unop.arg);
3836 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3860 //ZZ index = mi.bindee[1]->Iex.Const.con->Ico.U8;
3879 //ZZ index = mi.bindee[1]->Iex.Const.con->Ico.U8;
3898 //ZZ index = mi.bindee[1]->Iex.Const.con->Ico.U8;
3913 //ZZ arg = iselIntExpr_R(env, e->Iex.Unop.arg);
3915 //ZZ switch (e->Iex.Unop.op) {
3928 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3930 //ZZ switch(e->Iex.Binop.op) {
3943 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3945 //ZZ switch(e->Iex.Binop.op) {
3958 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3960 //ZZ switch(e->Iex.Binop.op) {
3971 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3987 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4009 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4011 //ZZ switch (e->Iex.Unop.op) {
4025 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4027 //ZZ switch(e->Iex.Binop.op) {
4041 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4043 //ZZ switch(e->Iex.Binop.op) {
4057 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4059 //ZZ switch(e->Iex.Binop.op) {
4073 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4075 //ZZ switch(e->Iex.Binop.op) {
4089 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4091 //ZZ switch(e->Iex.Binop.op) {
4105 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4107 //ZZ switch(e->Iex.Binop.op) {
4119 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4129 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4131 //ZZ switch(e->Iex.Binop.op) {
4145 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4147 //ZZ switch(e->Iex.Binop.op) {
4159 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4166 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4173 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4180 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4187 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4194 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
4201 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
4222 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4230 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4237 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4244 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4255 //ZZ IRTriop *triop = e->Iex.Triop.details;
4268 //ZZ imm4 = triop->arg3->Iex.Const.con->Ico.U8;
4289 //ZZ index = triop->arg2->Iex.Const.con->Ico.U8;
4342 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
4347 vassert(e->Iex.Const.con->tag == Ico_V128);
4348 UShort con = e->Iex.Const.con->Ico.V128;
4360 HReg rN = iselIntExpr_R(env, e->Iex.Load.addr);
4367 UInt offs = (UInt)e->Iex.Get.offset;
4382 switch (e->Iex.Unop.op) {
4390 HReg src = iselV128Expr(env, e->Iex.Unop.arg);
4399 switch (e->Iex.Unop.op) {
4413 HReg arg = iselV128Expr(env, e->Iex.Unop.arg);
4415 switch (e->Iex.Unop.op) {
4437 HReg arg = iselV128Expr(env, e->Iex.Unop.arg);
4441 switch (e->Iex.Unop.op) {
4463 HReg arg = iselIntExpr_R(env, e->Iex.Unop.arg);
4465 switch (e->Iex.Unop.op) {
4564 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4588 //ZZ index = mi.bindee[1]->Iex.Const.con->Ico.U8;
4607 //ZZ index = mi.bindee[1]->Iex.Const.con->Ico.U8;
4626 //ZZ index = mi.bindee[1]->Iex.Const.con->Ico.U8;
4641 //ZZ arg = iselIntExpr_R(env, e->Iex.Unop.arg);
4643 //ZZ switch (e->Iex.Unop.op) {
4656 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4658 //ZZ switch(e->Iex.Binop.op) {
4671 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4673 //ZZ switch(e->Iex.Binop.op) {
4686 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4688 //ZZ switch(e->Iex.Binop.op) {
4699 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4715 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4736 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4738 //ZZ switch (e->Iex.Unop.op) {
4752 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4754 //ZZ switch(e->Iex.Binop.op) {
4768 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4770 //ZZ switch(e->Iex.Binop.op) {
4782 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4791 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4793 //ZZ switch(e->Iex.Binop.op) {
4806 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4808 //ZZ switch(e->Iex.Binop.op) {
4819 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4826 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4833 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4840 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4847 //ZZ HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4854 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4861 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4868 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4875 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4887 switch (e->Iex.Binop.op) {
4890 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
4891 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4897 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4898 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4905 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4906 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4913 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4914 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4969 HReg argL = iselV128Expr(env, e->Iex.Binop.arg1);
4970 HReg argR = iselV128Expr(env, e->Iex.Binop.arg2);
4973 switch (e->Iex.Binop.op) {
5030 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5031 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5039 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5040 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5048 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5049 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5065 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5066 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5069 //ZZ switch (e->Iex.Binop.op) {
5093 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5094 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5097 //ZZ switch (e->Iex.Binop.op) {
5121 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5122 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5125 //ZZ switch (e->Iex.Binop.op) {
5145 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5146 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5148 //ZZ switch (e->Iex.Binop.op) {
5154 //ZZ ppIROp(e->Iex.Binop.op);
5166 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5167 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5169 //ZZ switch (e->Iex.Binop.op) {
5175 //ZZ ppIROp(e->Iex.Binop.op);
5187 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5188 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5190 //ZZ switch (e->Iex.Binop.op) {
5196 //ZZ ppIROp(e->Iex.Binop.op);
5205 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5206 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5217 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5218 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5220 //ZZ switch (e->Iex.Binop.op) {
5226 //ZZ ppIROp(e->Iex.Binop.op);
5238 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5239 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5241 //ZZ switch (e->Iex.Binop.op) {
5247 //ZZ ppIROp(e->Iex.Binop.op);
5258 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5259 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5261 //ZZ switch (e->Iex.Binop.op) {
5275 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5276 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5278 //ZZ switch (e->Iex.Binop.op) {
5292 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5293 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5295 //ZZ switch (e->Iex.Binop.op) {
5309 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5310 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5312 //ZZ switch (e->Iex.Binop.op) {
5327 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5328 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5332 //ZZ switch (e->Iex.Binop.op) {
5351 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5352 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5354 //ZZ switch (e->Iex.Binop.op) {
5370 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5371 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5375 //ZZ switch (e->Iex.Binop.op) {
5394 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5395 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5397 //ZZ switch (e->Iex.Binop.op) {
5413 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5414 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5416 //ZZ switch (e->Iex.Binop.op) {
5432 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5433 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5435 //ZZ switch (e->Iex.Binop.op) {
5451 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5453 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
5454 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
5458 //ZZ imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
5459 //ZZ switch (e->Iex.Binop.op) {
5475 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5477 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
5478 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
5482 //ZZ imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
5483 //ZZ switch (e->Iex.Binop.op) {
5499 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5501 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
5502 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
5506 //ZZ imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
5507 //ZZ switch (e->Iex.Binop.op) {
5531 IRExpr* argL = e->Iex.Binop.arg1;
5532 IRExpr* argR = e->Iex.Binop.arg2;
5533 if (argR->tag == Iex_Const && argR->Iex.Const.con->tag == Ico_U8) {
5534 UInt amt = argR->Iex.Const.con->Ico.U8;
5537 switch (e->Iex.Binop.op) {
5583 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5584 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5586 //ZZ switch (e->Iex.Binop.op) {
5600 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5601 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5603 //ZZ switch (e->Iex.Binop.op) {
5617 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5618 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5620 //ZZ switch (e->Iex.Binop.op) {
5634 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5635 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5637 //ZZ switch(e->Iex.Binop.op) {
5649 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5650 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5660 HReg argL = iselDblExpr(env, e->Iex.Binop.arg1);
5661 HReg argR = iselDblExpr(env, e->Iex.Binop.arg2);
5665 switch(e->Iex.Binop.op) {
5679 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5680 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5682 //ZZ switch(e->Iex.Binop.op) {
5696 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5697 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5699 //ZZ switch(e->Iex.Binop.op) {
5712 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5713 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5715 //ZZ switch(e->Iex.Binop.op) {
5728 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5729 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5731 //ZZ switch(e->Iex.Binop.op) {
5742 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5743 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5751 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5752 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5759 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5760 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5767 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5768 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5775 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5776 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5783 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5784 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5791 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5792 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5799 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5800 //ZZ HReg argR = iselNeonExpr(env, e->Iex
5808 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5809 //ZZ HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5820 //ZZ HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1);
5823 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
5824 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
5828 //ZZ imm6 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
5831 //ZZ switch(e->Iex.Binop.op) {
5847 //ZZ HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5850 //ZZ if (e->Iex.Binop.arg2->tag != Iex_Const ||
5851 //ZZ typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) {
5855 //ZZ index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8;
5856 //ZZ switch(e->Iex.Binop.op) {
5875 //ZZ HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5876 //ZZ HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5878 //ZZ switch(e->Iex.Binop.op) {
5895 IRTriop* triop = e->Iex.Triop.details;
5928 //ZZ imm4 = triop->arg3->Iex.Const.con->Ico.U8;
5944 //ZZ HReg r1 = iselNeonExpr(env, e->Iex.ITE.iftrue);
5945 //ZZ HReg r0 = iselNeonExpr(env, e->Iex.ITE.iffalse);
5948 //ZZ cc = iselCondCode(env, e->Iex.ITE.cond);
5987 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
5991 IRConst* con = e->Iex.Const.con;
6001 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
6002 vassert(e->Iex.Load.ty == Ity_F64 || e->Iex.Load.ty == Ity_I64);
6003 HReg addr = iselIntExpr_R(env, e->Iex.Load.addr);
6010 Int offs = e->Iex.Get.offset;
6020 switch (e->Iex.Unop.op) {
6023 //ZZ return iselNeon64Expr(env, e->Iex.Unop.arg);
6027 //ZZ iselInt64Expr(&srcHi, &srcLo, env, e->Iex.Unop.arg);
6033 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
6039 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
6045 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
6055 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
6057 Bool syned = e->Iex.Unop.op == Iop_I32StoF64;
6068 switch (e->Iex.Binop.op) {
6070 HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
6072 set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
6077 HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
6079 set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
6085 ARM64CvtOp cvt_op = e->Iex.Binop.op == Iop_I64StoF64
6087 HReg srcI = iselIntExpr_R(env, e->Iex.Binop.arg2);
6088 set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
6099 IRTriop* triop = e->Iex.Triop.details;
6120 //ZZ && typeOfIRExpr(env->type_env,e->Iex.ITE.cond) == Ity_I1) {
6121 //ZZ HReg r1 = iselDblExpr(env, e->Iex.ITE.iftrue);
6122 //ZZ HReg r0 = iselDblExpr(env, e->Iex.ITE.iffalse);
6125 //ZZ ARMCondCode cc = iselCondCode(env, e->Iex.ITE.cond);
6165 return lookupIRTemp(env, e->Iex.RdTmp.tmp);
6173 IRConst* con = e->Iex.Const.con;
6183 //ZZ if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) {
6186 //ZZ vassert(e->Iex.Load.ty == Ity_F32);
6187 //ZZ am = iselIntExpr_AModeV(env, e->Iex.Load.addr);
6193 Int offs = e->Iex.Get.offset;
6203 switch (e->Iex.Unop.op) {
6206 //ZZ HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
6211 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
6217 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
6228 switch (e->Iex.Binop.op) {
6230 HReg src = iselFltExpr(env, e->Iex.Binop.arg2);
6232 set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
6237 HReg src = iselFltExpr(env, e->Iex.Binop.arg2);
6239 set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
6244 HReg srcD = iselDblExpr(env, e->Iex.Binop.arg2);
6245 set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
6255 switch (e->Iex.Binop.op) {
6262 HReg srcI = iselIntExpr_R(env, e->Iex.Binop.arg2);
6263 set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
6274 IRTriop* triop = e->Iex.Triop.details;
6296 //ZZ && typeOfIRExpr(env->type_env,e->Iex.ITE.cond) == Ity_I1) {
6298 //ZZ HReg r1 = iselFltExpr(env, e->Iex.ITE.iftrue);
6299 //ZZ HReg r0 = iselFltExpr(env, e->Iex.ITE.iffalse);
6302 //ZZ cc = iselCondCode(env, e->Iex.ITE.cond);
6897 IRConst* cdst = next->Iex.Const.con;