• Home
  • Raw
  • Download

Lines Matching refs:Iex

456           && guard->Iex.Const.con->tag == Ico_U1  in doHelperCallWithArgsOnStack()
457 && guard->Iex.Const.con->Ico.U1 == True) { in doHelperCallWithArgsOnStack()
632 && guard->Iex.Const.con->tag == Ico_U1 in doHelperCall()
633 && guard->Iex.Const.con->Ico.U1 == True) { in doHelperCall()
768 && guard->Iex.Const.con->tag == Ico_U1 in doHelperCall()
769 && guard->Iex.Const.con->Ico.U1 == True) { in doHelperCall()
917 && (e->Iex.Binop.op == Iop_Add32 || e->Iex.Binop.op == Iop_Sub32) in iselIntExpr_AMode1_wrk()
918 && e->Iex.Binop.arg2->tag == Iex_Const in iselIntExpr_AMode1_wrk()
919 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32) { in iselIntExpr_AMode1_wrk()
920 Int simm = (Int)e->Iex.Binop.arg2->Iex.Const.con->Ico.U32; in iselIntExpr_AMode1_wrk()
923 if (e->Iex.Binop.op == Iop_Sub32) in iselIntExpr_AMode1_wrk()
925 reg = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_AMode1_wrk()
983 && (e->Iex.Binop.op == Iop_Add32 || e->Iex.Binop.op == Iop_Sub32) in iselIntExpr_AMode2_wrk()
984 && e->Iex.Binop.arg2->tag == Iex_Const in iselIntExpr_AMode2_wrk()
985 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32) { in iselIntExpr_AMode2_wrk()
986 Int simm = (Int)e->Iex.Binop.arg2->Iex.Const.con->Ico.U32; in iselIntExpr_AMode2_wrk()
989 if (e->Iex.Binop.op == Iop_Sub32) in iselIntExpr_AMode2_wrk()
991 reg = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_AMode2_wrk()
1035 && (e->Iex.Binop.op == Iop_Add32 || e->Iex.Binop.op == Iop_Sub32) in iselIntExpr_AModeV_wrk()
1036 && e->Iex.Binop.arg2->tag == Iex_Const in iselIntExpr_AModeV_wrk()
1037 && e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U32) { in iselIntExpr_AModeV_wrk()
1038 Int simm = (Int)e->Iex.Binop.arg2->Iex.Const.con->Ico.U32; in iselIntExpr_AModeV_wrk()
1041 if (e->Iex.Binop.op == Iop_Sub32) in iselIntExpr_AModeV_wrk()
1043 reg = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_AModeV_wrk()
1112 switch (e->Iex.Const.con->tag) { in iselIntExpr_RI84_wrk()
1113 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break; in iselIntExpr_RI84_wrk()
1114 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break; in iselIntExpr_RI84_wrk()
1115 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break; in iselIntExpr_RI84_wrk()
1166 switch (e->Iex.Const.con->tag) { in iselIntExpr_RI5_wrk()
1167 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break; in iselIntExpr_RI5_wrk()
1168 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break; in iselIntExpr_RI5_wrk()
1169 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break; in iselIntExpr_RI5_wrk()
1206 HReg rTmp = lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselCondCode_wrk()
1214 if (e->tag == Iex_Unop && e->Iex.Unop.op == Iop_Not1) { in iselCondCode_wrk()
1216 return 1 ^ iselCondCode(env, e->Iex.Unop.arg); in iselCondCode_wrk()
1222 && e->Iex.Unop.op == Iop_32to1) { in iselCondCode_wrk()
1223 HReg rTmp = iselIntExpr_R(env, e->Iex.Unop.arg); in iselCondCode_wrk()
1232 && e->Iex.Unop.op == Iop_CmpNEZ8) { in iselCondCode_wrk()
1233 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg); in iselCondCode_wrk()
1242 && e->Iex.Unop.op == Iop_CmpNEZ32) { in iselCondCode_wrk()
1243 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg); in iselCondCode_wrk()
1252 && e->Iex.Unop.op == Iop_CmpNEZ64) { in iselCondCode_wrk()
1256 iselInt64Expr(&tHi, &tLo, env, e->Iex.Unop.arg); in iselCondCode_wrk()
1264 && (e->Iex.Binop.op == Iop_CmpEQ32 in iselCondCode_wrk()
1265 || e->Iex.Binop.op == Iop_CmpNE32 in iselCondCode_wrk()
1266 || e->Iex.Binop.op == Iop_CmpLT32S in iselCondCode_wrk()
1267 || e->Iex.Binop.op == Iop_CmpLT32U in iselCondCode_wrk()
1268 || e->Iex.Binop.op == Iop_CmpLE32S in iselCondCode_wrk()
1269 || e->Iex.Binop.op == Iop_CmpLE32U)) { in iselCondCode_wrk()
1270 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselCondCode_wrk()
1272 env, e->Iex.Binop.arg2); in iselCondCode_wrk()
1274 switch (e->Iex.Binop.op) { in iselCondCode_wrk()
1289 vassert(e->Iex.Const.con->tag == Ico_U1); in iselCondCode_wrk()
1290 vassert(e->Iex.Const.con->Ico.U1 == True in iselCondCode_wrk()
1291 || e->Iex.Const.con->Ico.U1 == False); in iselCondCode_wrk()
1295 return e->Iex.Const.con->Ico.U1 ? ARMcc_EQ : ARMcc_NE; in iselCondCode_wrk()
1338 return lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselIntExpr_R_wrk()
1345 if (e->Iex.Load.end != Iend_LE) in iselIntExpr_R_wrk()
1349 ARMAMode1* amode = iselIntExpr_AMode1 ( env, e->Iex.Load.addr ); in iselIntExpr_R_wrk()
1354 ARMAMode2* amode = iselIntExpr_AMode2 ( env, e->Iex.Load.addr ); in iselIntExpr_R_wrk()
1361 ARMAMode1* amode = iselIntExpr_AMode1 ( env, e->Iex.Load.addr ); in iselIntExpr_R_wrk()
1404 switch (e->Iex.Binop.op) { in iselIntExpr_R_wrk()
1408 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1410 env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1421 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1423 env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1431 switch (e->Iex.Binop.op) { in iselIntExpr_R_wrk()
1437 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1438 ARMRI5* argR = iselIntExpr_RI5(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1447 if (e->Iex.Binop.op == Iop_Mul32) { in iselIntExpr_R_wrk()
1448 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1449 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1460 if (e->Iex.Binop.op == Iop_Max32U) { in iselIntExpr_R_wrk()
1461 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1462 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1471 if (e->Iex.Binop.op == Iop_CmpF64) { in iselIntExpr_R_wrk()
1472 HReg dL = iselDblExpr(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1473 HReg dR = iselDblExpr(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1487 if (e->Iex.Binop.op == Iop_F64toI32S in iselIntExpr_R_wrk()
1488 || e->Iex.Binop.op == Iop_F64toI32U) { in iselIntExpr_R_wrk()
1494 Bool syned = e->Iex.Binop.op == Iop_F64toI32S; in iselIntExpr_R_wrk()
1495 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1496 set_VFP_rounding_mode(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1508 if (e->Iex.Binop.op == Iop_GetElem8x8 in iselIntExpr_R_wrk()
1509 || e->Iex.Binop.op == Iop_GetElem16x4 in iselIntExpr_R_wrk()
1510 || e->Iex.Binop.op == Iop_GetElem32x2) { in iselIntExpr_R_wrk()
1513 HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1515 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselIntExpr_R_wrk()
1516 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselIntExpr_R_wrk()
1520 index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselIntExpr_R_wrk()
1521 switch (e->Iex.Binop.op) { in iselIntExpr_R_wrk()
1535 if (e->Iex.Binop.op == Iop_GetElem32x2 in iselIntExpr_R_wrk()
1536 && e->Iex.Binop.arg2->tag == Iex_Const in iselIntExpr_R_wrk()
1540 IRConst* con = e->Iex.Binop.arg2->Iex.Const.con; in iselIntExpr_R_wrk()
1545 iselInt64Expr(&rHi, &rLo, env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1550 if (e->Iex.Binop.op == Iop_GetElem8x16 in iselIntExpr_R_wrk()
1551 || e->Iex.Binop.op == Iop_GetElem16x8 in iselIntExpr_R_wrk()
1552 || e->Iex.Binop.op == Iop_GetElem32x4) { in iselIntExpr_R_wrk()
1555 HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1557 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselIntExpr_R_wrk()
1558 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselIntExpr_R_wrk()
1562 index = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselIntExpr_R_wrk()
1563 switch (e->Iex.Binop.op) { in iselIntExpr_R_wrk()
1579 switch (e->Iex.Binop.op) { in iselIntExpr_R_wrk()
1635 HReg regL = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselIntExpr_R_wrk()
1636 HReg regR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselIntExpr_R_wrk()
1738 switch (e->Iex.Unop.op) { in iselIntExpr_R_wrk()
1741 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1761 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1770 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1771 ARMRI5* amt = ARMRI5_I5(e->Iex.Unop.op==Iop_16Sto32 ? 16 : 24); in iselIntExpr_R_wrk()
1780 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1786 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1791 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1799 HReg tmp = iselNeon64Expr(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1804 iselInt64Expr(&rHi,&rLo, env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1814 if (e->Iex.Unop.arg->tag == Iex_RdTmp) { in iselIntExpr_R_wrk()
1815 HReg dst = lookupIRTemp(env, e->Iex.Unop.arg->Iex.RdTmp.tmp); in iselIntExpr_R_wrk()
1821 ARMCondCode cond = iselCondCode(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1829 ARMCondCode cond = iselCondCode(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1863 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1870 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1879 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1898 HReg src = iselFltExpr(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1908 return iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1916 switch (e->Iex.Unop.op) { in iselIntExpr_R_wrk()
1926 HReg arg = iselIntExpr_R(env, e->Iex.Unop.arg); in iselIntExpr_R_wrk()
1941 && 0 == (e->Iex.Get.offset & 3) in iselIntExpr_R_wrk()
1942 && e->Iex.Get.offset < 4096-4) { in iselIntExpr_R_wrk()
1947 ARMAMode1_RI(hregARM_R8(), e->Iex.Get.offset))); in iselIntExpr_R_wrk()
1982 vassert(ty == e->Iex.CCall.retty); in iselIntExpr_R_wrk()
1987 if (e->Iex.CCall.retty != Ity_I32) in iselIntExpr_R_wrk()
1994 e->Iex.CCall.cee, e->Iex.CCall.retty, in iselIntExpr_R_wrk()
1995 e->Iex.CCall.args ); in iselIntExpr_R_wrk()
2012 switch (e->Iex.Const.con->tag) { in iselIntExpr_R_wrk()
2013 case Ico_U32: u = e->Iex.Const.con->Ico.U32; break; in iselIntExpr_R_wrk()
2014 case Ico_U16: u = 0xFFFF & (e->Iex.Const.con->Ico.U16); break; in iselIntExpr_R_wrk()
2015 case Ico_U8: u = 0xFF & (e->Iex.Const.con->Ico.U8); break; in iselIntExpr_R_wrk()
2027 HReg r1 = iselIntExpr_R(env, e->Iex.ITE.iftrue); in iselIntExpr_R_wrk()
2028 ARMRI84* r0 = iselIntExpr_RI84(NULL, False, env, e->Iex.ITE.iffalse); in iselIntExpr_R_wrk()
2031 cc = iselCondCode(env, e->Iex.ITE.cond); in iselIntExpr_R_wrk()
2078 ULong w64 = e->Iex.Const.con->Ico.U64; in iselInt64Expr_wrk()
2083 vassert(e->Iex.Const.con->tag == Ico_U64); in iselInt64Expr_wrk()
2101 lookupIRTemp64( rHi, rLo, env, e->Iex.RdTmp.tmp); in iselInt64Expr_wrk()
2107 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) { in iselInt64Expr_wrk()
2109 vassert(e->Iex.Load.ty == Ity_I64); in iselInt64Expr_wrk()
2110 rA = iselIntExpr_R(env, e->Iex.Load.addr); in iselInt64Expr_wrk()
2124 ARMAMode1* am0 = ARMAMode1_RI(hregARM_R8(), e->Iex.Get.offset + 0); in iselInt64Expr_wrk()
2125 ARMAMode1* am4 = ARMAMode1_RI(hregARM_R8(), e->Iex.Get.offset + 4); in iselInt64Expr_wrk()
2137 switch (e->Iex.Binop.op) { in iselInt64Expr_wrk()
2142 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2143 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2146 ARMMulOp mop = e->Iex.Binop.op == Iop_MullS32 in iselInt64Expr_wrk()
2162 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2163 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2175 iselInt64Expr(&xHi, &xLo, env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2176 iselInt64Expr(&yHi, &yLo, env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2186 *rHi = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselInt64Expr_wrk()
2187 *rLo = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselInt64Expr_wrk()
2198 switch (e->Iex.Unop.op) { in iselInt64Expr_wrk()
2204 HReg src = iselDblExpr(env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2218 iselInt64Expr(&yHi, &yLo, env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2243 iselInt64Expr(&srcHi, &srcLo, env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2260 ARMCondCode cond = iselCondCode(env, e->Iex.Unop.arg); in iselInt64Expr_wrk()
2284 tyC = typeOfIRExpr(env->type_env,e->Iex.ITE.cond); in iselInt64Expr_wrk()
2286 iselInt64Expr(&r1hi, &r1lo, env, e->Iex.ITE.iftrue); in iselInt64Expr_wrk()
2287 iselInt64Expr(&r0hi, &r0lo, env, e->Iex.ITE.iffalse); in iselInt64Expr_wrk()
2292 cc = iselCondCode(env, e->Iex.ITE.cond); in iselInt64Expr_wrk()
2341 return lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselNeon64Expr_wrk()
2353 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) { in iselNeon64Expr_wrk()
2355 ARMAModeN* am = iselIntExpr_AModeN(env, e->Iex.Load.addr); in iselNeon64Expr_wrk()
2366 addInstr(env, ARMInstr_Add32(addr, hregARM_R8(), e->Iex.Get.offset)); in iselNeon64Expr_wrk()
2373 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2387 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2388 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2395 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2396 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2403 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2404 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2412 HReg rHi = iselIntExpr_R(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2413 HReg rLo = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2424 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2425 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2427 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2440 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2441 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2449 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2450 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2458 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2459 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2475 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2476 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2479 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2501 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2502 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2505 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2525 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2526 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2529 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2547 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2548 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2550 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2566 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2567 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2569 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2585 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2586 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2588 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2601 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2602 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2613 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2614 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2616 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2632 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2633 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2635 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2650 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2651 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2653 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2667 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2668 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2670 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2684 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2685 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2687 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2701 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2702 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2704 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2718 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2719 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2723 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2742 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2743 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2745 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2760 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2761 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2765 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2782 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2783 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2785 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2800 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2801 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2803 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2819 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2820 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2822 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2838 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2840 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselNeon64Expr_wrk()
2841 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselNeon64Expr_wrk()
2845 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
2846 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2862 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2864 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselNeon64Expr_wrk()
2865 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselNeon64Expr_wrk()
2869 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
2870 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2886 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2888 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselNeon64Expr_wrk()
2889 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselNeon64Expr_wrk()
2893 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
2894 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2911 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2912 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2915 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2934 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2937 if (e->Iex.Binop.op == Iop_Shl64 in iselNeon64Expr_wrk()
2938 && e->Iex.Binop.arg2->tag == Iex_Const) { in iselNeon64Expr_wrk()
2939 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8); in iselNeon64Expr_wrk()
2940 Int nshift = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
2947 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2949 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2968 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2969 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2972 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
2989 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
2990 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
2992 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3006 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3007 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3009 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3023 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3024 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3026 switch (e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3040 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3041 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3043 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3055 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3056 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3065 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3066 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3068 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3081 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3082 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3084 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3098 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3099 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3101 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3113 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3114 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3124 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3125 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3127 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3141 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3142 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3144 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3158 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3159 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3161 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3175 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3176 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3178 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3190 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3191 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3198 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3199 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3207 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3208 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3215 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3216 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3223 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3224 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3231 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3232 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3239 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3240 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3247 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3248 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3255 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3256 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeon64Expr_wrk()
3266 HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3269 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselNeon64Expr_wrk()
3270 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselNeon64Expr_wrk()
3274 imm6 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
3277 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3325 switch (e->Iex.Unop.op) { in iselNeon64Expr_wrk()
3329 HReg rLo = iselIntExpr_R(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3339 HReg rLo = iselIntExpr_R(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3449 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3473 index = mi.bindee[1]->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
3492 index = mi.bindee[1]->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
3511 index = mi.bindee[1]->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
3526 arg = iselIntExpr_R(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3528 switch (e->Iex.Unop.op) { in iselNeon64Expr_wrk()
3541 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3543 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3556 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3558 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3571 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3573 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3584 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3600 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3622 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3624 switch (e->Iex.Unop.op) { in iselNeon64Expr_wrk()
3638 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3640 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3654 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3656 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3670 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3672 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3686 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3688 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3702 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3704 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3718 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3720 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3732 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3742 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3744 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3758 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3760 switch(e->Iex.Binop.op) { in iselNeon64Expr_wrk()
3772 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3779 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3786 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3793 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3800 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3807 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3814 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeon64Expr_wrk()
3835 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3843 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3850 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3857 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3864 HReg src = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeon64Expr_wrk()
3868 return e->Iex.Unop.op == Iop_V128HIto64 ? resHi : resLo; in iselNeon64Expr_wrk()
3876 IRTriop *triop = e->Iex.Triop.details; in iselNeon64Expr_wrk()
3889 imm4 = triop->arg3->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
3910 index = triop->arg2->Iex.Const.con->Ico.U8; in iselNeon64Expr_wrk()
3962 return lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselNeonExpr_wrk()
3970 if (e->Iex.Const.con->Ico.V128 == 0x0000) { in iselNeonExpr_wrk()
3975 if (e->Iex.Const.con->Ico.V128 == 0xFFFF) { in iselNeonExpr_wrk()
3986 ARMAModeN* am = iselIntExpr_AModeN(env, e->Iex.Load.addr); in iselNeonExpr_wrk()
3996 addInstr(env, ARMInstr_Add32(addr, hregARM_R8(), e->Iex.Get.offset)); in iselNeonExpr_wrk()
4002 switch (e->Iex.Unop.op) { in iselNeonExpr_wrk()
4090 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4114 index = mi.bindee[1]->Iex.Const.con->Ico.U8; in iselNeonExpr_wrk()
4133 index = mi.bindee[1]->Iex.Const.con->Ico.U8; in iselNeonExpr_wrk()
4152 index = mi.bindee[1]->Iex.Const.con->Ico.U8; in iselNeonExpr_wrk()
4167 arg = iselIntExpr_R(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4169 switch (e->Iex.Unop.op) { in iselNeonExpr_wrk()
4182 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4184 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
4197 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4199 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
4212 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4214 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
4225 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4241 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4263 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4265 switch (e->Iex.Unop.op) { in iselNeonExpr_wrk()
4279 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4281 switch (e->Iex.Unop.op) { in iselNeonExpr_wrk()
4295 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4297 switch (e->Iex.Unop.op) { in iselNeonExpr_wrk()
4311 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4313 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
4327 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4329 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
4341 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4350 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4352 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
4365 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4367 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
4378 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4385 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4392 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4399 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4406 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4413 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4420 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4427 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4434 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4441 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4448 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg); in iselNeonExpr_wrk()
4460 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4463 if (e->Iex.Binop.arg1->tag == Iex_Const && in iselNeonExpr_wrk()
4464 e->Iex.Binop.arg2->tag == Iex_Const && in iselNeonExpr_wrk()
4465 typeOfIRExpr(env->type_env, e->Iex.Binop.arg1) == Ity_I64 && in iselNeonExpr_wrk()
4466 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) == Ity_I64 && in iselNeonExpr_wrk()
4467 e->Iex.Binop.arg1->Iex.Const.con->Ico.U64 == in iselNeonExpr_wrk()
4468 e->Iex.Binop.arg2->Iex.Const.con->Ico.U64) { in iselNeonExpr_wrk()
4469 ULong imm64 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U64; in iselNeonExpr_wrk()
4505 HReg dHi = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4506 HReg dLo = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4513 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4514 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4521 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4522 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4529 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4530 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4565 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4566 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4568 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4574 ppIROp(e->Iex.Binop.op); in iselNeonExpr_wrk()
4583 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4584 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4592 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4593 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4609 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4610 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4613 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4637 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4638 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4641 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4665 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4666 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4669 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4689 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4690 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4692 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4698 ppIROp(e->Iex.Binop.op); in iselNeonExpr_wrk()
4710 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4711 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4713 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4719 ppIROp(e->Iex.Binop.op); in iselNeonExpr_wrk()
4731 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4732 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4734 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4740 ppIROp(e->Iex.Binop.op); in iselNeonExpr_wrk()
4752 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4753 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4755 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4761 ppIROp(e->Iex.Binop.op); in iselNeonExpr_wrk()
4773 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4774 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4776 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4782 ppIROp(e->Iex.Binop.op); in iselNeonExpr_wrk()
4793 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4794 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4796 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4810 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4811 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4813 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4827 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4828 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4830 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4844 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4845 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4847 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4862 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4863 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4867 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4886 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4887 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4889 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4905 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4906 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4910 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4929 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4930 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4932 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4948 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4949 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4951 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4967 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4968 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
4970 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
4986 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
4988 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselNeonExpr_wrk()
4989 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselNeonExpr_wrk()
4993 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselNeonExpr_wrk()
4994 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
5010 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5012 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselNeonExpr_wrk()
5013 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselNeonExpr_wrk()
5017 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselNeonExpr_wrk()
5018 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
5034 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5036 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselNeonExpr_wrk()
5037 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselNeonExpr_wrk()
5041 imm = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselNeonExpr_wrk()
5042 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
5059 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5060 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5063 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
5083 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5084 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5086 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
5104 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5105 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5108 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
5125 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5126 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5128 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
5142 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5143 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5145 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
5159 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5160 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5162 switch (e->Iex.Binop.op) { in iselNeonExpr_wrk()
5176 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5177 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5179 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
5193 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5194 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5196 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
5211 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5212 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5214 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
5228 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5229 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5231 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
5244 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5245 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5247 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
5260 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5261 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5263 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
5274 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5275 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5283 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5284 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5291 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5292 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5299 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5300 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5307 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5308 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5315 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5316 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5323 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5324 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5331 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5332 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5340 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5341 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5352 HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5355 if (e->Iex.Binop.arg2->tag != Iex_Const || in iselNeonExpr_wrk()
5356 typeOfIRExpr(env->type_env, e->Iex.Binop.arg2) != Ity_I8) { in iselNeonExpr_wrk()
5360 imm6 = e->Iex.Binop.arg2->Iex.Const.con->Ico.U8; in iselNeonExpr_wrk()
5363 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
5407 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1); in iselNeonExpr_wrk()
5408 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2); in iselNeonExpr_wrk()
5410 switch(e->Iex.Binop.op) { in iselNeonExpr_wrk()
5427 IRTriop *triop = e->Iex.Triop.details; in iselNeonExpr_wrk()
5440 imm4 = triop->arg3->Iex.Const.con->Ico.U8; in iselNeonExpr_wrk()
5473 HReg r1 = iselNeonExpr(env, e->Iex.ITE.iftrue); in iselNeonExpr_wrk()
5474 HReg r0 = iselNeonExpr(env, e->Iex.ITE.iffalse); in iselNeonExpr_wrk()
5477 cc = iselCondCode(env, e->Iex.ITE.cond); in iselNeonExpr_wrk()
5515 return lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselDblExpr_wrk()
5520 IRConst* con = e->Iex.Const.con; in iselDblExpr_wrk()
5530 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) { in iselDblExpr_wrk()
5533 vassert(e->Iex.Load.ty == Ity_F64); in iselDblExpr_wrk()
5534 am = iselIntExpr_AModeV(env, e->Iex.Load.addr); in iselDblExpr_wrk()
5542 ARMAModeV* am = mkARMAModeV(hregARM_R8(), e->Iex.Get.offset); in iselDblExpr_wrk()
5549 switch (e->Iex.Unop.op) { in iselDblExpr_wrk()
5552 return iselNeon64Expr(env, e->Iex.Unop.arg); in iselDblExpr_wrk()
5556 iselInt64Expr(&srcHi, &srcLo, env, e->Iex.Unop.arg); in iselDblExpr_wrk()
5562 HReg src = iselDblExpr(env, e->Iex.Unop.arg); in iselDblExpr_wrk()
5568 HReg src = iselDblExpr(env, e->Iex.Unop.arg); in iselDblExpr_wrk()
5574 HReg src = iselFltExpr(env, e->Iex.Unop.arg); in iselDblExpr_wrk()
5581 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselDblExpr_wrk()
5584 Bool syned = e->Iex.Unop.op == Iop_I32StoF64; in iselDblExpr_wrk()
5598 switch (e->Iex.Binop.op) { in iselDblExpr_wrk()
5601 HReg src = iselDblExpr(env, e->Iex.Binop.arg2); in iselDblExpr_wrk()
5611 HReg src = iselDblExpr(env, e->Iex.Binop.arg2); in iselDblExpr_wrk()
5613 set_VFP_rounding_mode(env, e->Iex.Binop.arg1); in iselDblExpr_wrk()
5625 HReg srcL = iselDblExpr(env, e->Iex.Binop.arg1); in iselDblExpr_wrk()
5626 HReg srcR = iselDblExpr(env, e->Iex.Binop.arg2); in iselDblExpr_wrk()
5628 Bool isMax = e->Iex.Binop.op == Iop_MaxNumF64; in iselDblExpr_wrk()
5642 IRTriop *triop = e->Iex.Triop.details; in iselDblExpr_wrk()
5670 && typeOfIRExpr(env->type_env,e->Iex.ITE.cond) == Ity_I1) { in iselDblExpr_wrk()
5671 HReg r1 = iselDblExpr(env, e->Iex.ITE.iftrue); in iselDblExpr_wrk()
5672 HReg r0 = iselDblExpr(env, e->Iex.ITE.iffalse); in iselDblExpr_wrk()
5675 ARMCondCode cc = iselCondCode(env, e->Iex.ITE.cond); in iselDblExpr_wrk()
5714 return lookupIRTemp(env, e->Iex.RdTmp.tmp); in iselFltExpr_wrk()
5717 if (e->tag == Iex_Load && e->Iex.Load.end == Iend_LE) { in iselFltExpr_wrk()
5720 vassert(e->Iex.Load.ty == Ity_F32); in iselFltExpr_wrk()
5721 am = iselIntExpr_AModeV(env, e->Iex.Load.addr); in iselFltExpr_wrk()
5729 ARMAModeV* am = mkARMAModeV(hregARM_R8(), e->Iex.Get.offset); in iselFltExpr_wrk()
5736 switch (e->Iex.Unop.op) { in iselFltExpr_wrk()
5739 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg); in iselFltExpr_wrk()
5744 HReg src = iselFltExpr(env, e->Iex.Unop.arg); in iselFltExpr_wrk()
5750 HReg src = iselFltExpr(env, e->Iex.Unop.arg); in iselFltExpr_wrk()
5761 switch (e->Iex.Binop.op) { in iselFltExpr_wrk()
5764 HReg src = iselFltExpr(env, e->Iex.Binop.arg2); in iselFltExpr_wrk()
5770 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2); in iselFltExpr_wrk()
5771 set_VFP_rounding_mode(env, e->Iex.Binop.arg1); in iselFltExpr_wrk()
5783 HReg src = iselFltExpr(env, e->Iex.Binop.arg2); in iselFltExpr_wrk()
5785 set_VFP_rounding_mode(env, e->Iex.Binop.arg1); in iselFltExpr_wrk()
5797 HReg srcL = iselFltExpr(env, e->Iex.Binop.arg1); in iselFltExpr_wrk()
5798 HReg srcR = iselFltExpr(env, e->Iex.Binop.arg2); in iselFltExpr_wrk()
5800 Bool isMax = e->Iex.Binop.op == Iop_MaxNumF32; in iselFltExpr_wrk()
5814 IRTriop *triop = e->Iex.Triop.details; in iselFltExpr_wrk()
5842 && typeOfIRExpr(env->type_env,e->Iex.ITE.cond) == Ity_I1) { in iselFltExpr_wrk()
5844 HReg r1 = iselFltExpr(env, e->Iex.ITE.iftrue); in iselFltExpr_wrk()
5845 HReg r0 = iselFltExpr(env, e->Iex.ITE.iffalse); in iselFltExpr_wrk()
5848 cc = iselCondCode(env, e->Iex.ITE.cond); in iselFltExpr_wrk()
6440 IRConst* cdst = next->Iex.Const.con; in iselNext()