Home | History | Annotate | Download | only in priv

Lines Matching refs:HReg

75    - A mapping from IRTemp to HReg.  This tells the insn selector
84 32-bit virtual HReg, which holds the high half
114 HReg* vregmap;
115 HReg* vregmapHI;
129 static HReg lookupIRTemp ( ISelEnv* env, IRTemp tmp )
136 static void lookupIRTemp64 ( HReg* vrHI, HReg* vrLO, ISelEnv* env, IRTemp tmp )
162 static HReg newVRegI ( ISelEnv* env )
164 HReg reg = mkHReg(env->vreg_ctr, HRcInt32, True/*virtual reg*/);
169 static HReg newVRegD ( ISelEnv* env )
171 HReg reg = mkHReg(env->vreg_ctr, HRcFlt64, True/*virtual reg*/);
176 static HReg newVRegF ( ISelEnv* env )
178 HReg reg = mkHReg(env->vreg_ctr, HRcFlt32, True/*virtual reg*/);
183 static HReg newVRegV ( ISelEnv* env )
185 HReg reg = mkHReg(env->vreg_ctr, HRcVec128, True/*virtual reg*/);
240 static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e );
241 static HReg iselIntExpr_R ( ISelEnv* env, IRExpr* e );
243 static void iselInt64Expr_wrk ( HReg* rHi, HReg* rLo,
245 static void iselInt64Expr ( HReg* rHi, HReg* rLo,
248 static HReg iselDblExpr_wrk ( ISelEnv* env, IRExpr* e );
249 static HReg iselDblExpr ( ISelEnv* env, IRExpr* e );
251 static HReg iselFltExpr_wrk ( ISelEnv* env, IRExpr* e );
252 static HReg iselFltExpr ( ISelEnv* env, IRExpr* e );
254 static HReg iselNeon64Expr_wrk ( ISelEnv* env, IRExpr* e );
255 static HReg iselNeon64Expr ( ISelEnv* env, IRExpr* e );
257 static HReg iselNeonExpr_wrk ( ISelEnv* env, IRExpr* e );
258 static HReg iselNeonExpr ( ISelEnv* env, IRExpr* e );
290 static ARMInstr* mk_iMOVds_RR ( HReg dst, HReg src )
303 HReg rTmp = newVRegI(env);
330 HReg irrm = iselIntExpr_R(env, mode);
331 HReg tL = newVRegI(env);
332 HReg tR = newVRegI(env);
333 HReg t3 = newVRegI(env);
384 HReg argregs[ARM_N_ARGREGS];
385 HReg tmpregs[ARM_N_ARGREGS];
515 HReg raHi, raLo;
557 HReg raHi, raLo;
693 HReg reg;
704 HReg reg = iselIntExpr_R(env, e);
759 HReg reg;
770 HReg reg = iselIntExpr_R(env, e);
811 HReg reg;
822 HReg reg = iselIntExpr_R(env, e);
837 HReg reg = iselIntExpr_R(env, e);
902 HReg r = iselIntExpr_R ( env, e );
951 HReg r = iselIntExpr_R ( env, e );
977 HReg rTmp = lookupIRTemp(env, e->Iex.RdTmp.tmp);
994 HReg rTmp = iselIntExpr_R(env, e->Iex.Unop.arg);
1004 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1014 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1024 HReg tHi, tLo;
1025 HReg tmp = newVRegI(env);
1041 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1073 static HReg iselIntExpr_R ( ISelEnv* env, IRExpr* e )
1075 HReg r = iselIntExpr_R_wrk(env, e);
1086 static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e )
1101 HReg dst = newVRegI(env);
1141 //zz HReg junk = newVRegF(env);
1142 //zz HReg dst = newVRegI(env);
1143 //zz HReg srcL = iselDblExpr(env, triop->arg2);
1144 //zz HReg srcR = iselDblExpr(env, triop->arg3);
1173 HReg dst = newVRegI(env);
1174 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1186 HReg dst = newVRegI(env);
1187 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1198 HReg dst = newVRegI(env);
1199 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1200 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1215 HReg dst = newVRegI(env);
1216 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1227 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1228 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1229 HReg dst = newVRegI(env);
1240 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1241 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1242 HReg dst = newVRegI(env);
1251 HReg dL = iselDblExpr(env, e->Iex.Binop.arg1);
1252 HReg dR = iselDblExpr(env, e->Iex.Binop.arg2);
1253 HReg dst = newVRegI(env);
1274 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
1277 HReg valF = newVRegF(env);
1282 HReg dst = newVRegI(env);
1290 HReg res = newVRegI(env);
1291 HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1);
1315 HReg res = newVRegI(env);
1316 HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1);
1389 HReg regL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1390 HReg regR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1391 HReg res = newVRegI(env);
1412 //zz HReg dst = newVRegI(env);
1413 //zz HReg src = iselIntExpr_R(env, expr32);
1428 //zz HReg dst = newVRegI(env);
1442 //zz HReg dst = newVRegI(env);
1456 //zz HReg dst = newVRegI(env);
1466 //zz HReg dst;
1480 //zz HReg dst;
1493 HReg dst = newVRegI(env);
1494 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1502 //zz HReg dst = newVRegI(env);
1503 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1513 HReg dst = newVRegI(env);
1514 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1522 HReg dst = newVRegI(env);
1523 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1532 HReg dst = newVRegI(env);
1533 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1538 HReg rHi, rLo;
1543 HReg rHi, rLo;
1548 HReg rHi, rLo;
1550 HReg tHi = newVRegI(env);
1551 HReg tLo = newVRegI(env);
1552 HReg tmp = iselNeon64Expr(env, e->Iex.Unop.arg);
1563 //zz HReg dst = newVRegI(env);
1564 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1572 HReg dst = newVRegI(env);
1580 HReg dst = newVRegI(env);
1598 //zz HReg dst = newVRegI(env);
1607 //zz HReg dst = newVRegI(env);
1608 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1614 HReg dst = newVRegI(env);
1615 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1621 HReg dst = newVRegI(env);
1622 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1630 HReg dst = newVRegI(env);
1631 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1638 //zz HReg dst = newVRegI(env);
1639 //zz HReg vec = iselVecExpr(env, e->Iex.Unop.arg);
1649 HReg dst = newVRegI(env);
1650 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
1678 HReg arg = iselIntExpr_R(env, e->Iex.Unop.arg);
1679 HReg res = newVRegI(env);
1694 HReg dst = newVRegI(env);
1702 //zz HReg dst = newVRegI(env);
1718 //zz HReg dst = newVRegI(env);
1732 HReg dst = newVRegI(env);
1754 HReg dst = newVRegI(env);
1776 HReg rX = iselIntExpr_R(env, e->Iex.Mux0X.exprX);
1778 HReg dst = newVRegI(env);
1787 HReg r8;
1788 HReg rX = iselIntExpr_R(env, e->Iex.Mux0X.exprX);
1790 HReg dst = newVRegI(env);
1819 static void iselInt64Expr ( HReg* rHi, HReg* rLo, ISelEnv* env, IRExpr* e )
1832 static void iselInt64Expr_wrk ( HReg* rHi, HReg* rLo, ISelEnv* env, IRExpr* e )
1842 HReg tHi = newVRegI(env);
1843 HReg tLo = newVRegI(env);
1855 HReg
1856 HReg tLo = newVRegI(env);
1857 HReg tmp = iselNeon64Expr(env, e);
1869 HReg tLo, tHi, rA;
1885 HReg tHi = newVRegI(env);
1886 HReg tLo = newVRegI(env);
1901 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1902 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1903 HReg tHi = newVRegI(env);
1904 HReg tLo = newVRegI(env);
1918 HReg xLo, xHi, yLo, yHi;
1919 HReg tHi = newVRegI(env);
1920 HReg tLo = newVRegI(env);
1931 HReg xLo, xHi, yLo, yHi;
1932 HReg tHi = newVRegI(env);
1933 HReg tLo = newVRegI(env);
1961 HReg dstHi = newVRegI(env);
1962 HReg dstLo = newVRegI(env);
1963 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
1972 HReg yLo, yHi;
1973 HReg tHi = newVRegI(env);
1974 HReg tLo = newVRegI(env);
1975 HReg zero = newVRegI(env);
1998 HReg srcLo, srcHi;
1999 HReg tmp1 = newVRegI(env);
2000 HReg tmp2 = newVRegI(env);
2018 HReg dst = newVRegI(env);
2041 HReg r8, rXhi, rXlo, r0hi, r0lo, dstHi, dstLo;
2064 HReg tHi = newVRegI(env);
2065 HReg tLo = newVRegI(env);
2066 HReg tmp = iselNeon64Expr(env, e);
2082 static HReg iselNeon64Expr ( ISelEnv* env, IRExpr* e )
2084 HReg r = iselNeon64Expr_wrk( env, e );
2091 static HReg iselNeon64Expr_wrk ( ISelEnv* env, IRExpr* e )
2103 HReg rLo, rHi;
2104 HReg res = newVRegD(env);
2112 HReg res = newVRegD(env);
2121 HReg addr = newVRegI(env);
2122 HReg res = newVRegD(env);
2136 HReg rLo, rHi;
2137 HReg res = newVRegD(env);
2144 HReg res = newVRegD(env);
2145 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2146 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2152 HReg res = newVRegD(env);
2153 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2154 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2160 HReg res = newVRegD(env);
2161 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2162 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2170 HReg rHi = iselIntExpr_R(env, e->Iex.Binop.arg1);
2171 HReg rLo = iselIntExpr_R(env, e->Iex.Binop.arg2);
2172 HReg res = newVRegD(env);
2181 HReg res = newVRegD(env);
2182 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2183 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2197 HReg res = newVRegD(env);
2198 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2199 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2206 HReg res = newVRegD(env);
2207 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2208 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2215 HReg res = newVRegD(env);
2216 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2217 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2229 HReg tmp = newVRegD(env);
2230 HReg res = newVRegD(env);
2231 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2232 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2265 HReg tmp = newVRegD(env);
2266 HReg res = newVRegD(env);
2267 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2268 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2299 HReg tmp = newVRegD(env);
2300 HReg res = newVRegD(env);
2301 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2302 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2333 HReg res = newVRegD(env);
2334 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2335 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2352 HReg res = newVRegD(env);
2353 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2354 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2371 HReg res = newVRegD(env);
2372 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2373 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2387 HReg res = newVRegD(env);
2388 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2389 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2399 HReg res = newVRegD(env);
2400 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2401 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2418 HReg res = newVRegD(env);
2419 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2420 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2436 HReg res = newVRegD(env);
2437 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2438 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2453 HReg res = newVRegD(env);
2454 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2455 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2470 HReg res = newVRegD(env);
2471 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2472 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2487 HReg res = newVRegD(env);
2488 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2489 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2504 HReg res = newVRegD(env);
2505 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2506 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2507 HReg argR2 = newVRegD(env);
2508 HReg zero = newVRegD(env);
2528 HReg res = newVRegD(env);
2529 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2530 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2546 HReg res = newVRegD(env);
2547 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2548 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2549 HReg argR2 = newVRegD(env);
2550 HReg zero = newVRegD(env);
2568 HReg res = newVRegD(env);
2569 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2570 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2586 HReg res = newVRegD(env);
2587 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2588 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2605 HReg res = newVRegD(env);
2606 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2607 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2624 HReg res = newVRegD(env);
2625 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2648 HReg res = newVRegD(env);
2649 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2672 HReg res = newVRegD(env);
2673 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2696 HReg res = newVRegD(env);
2697 HReg tmp = newVRegD(env);
2698 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2699 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2700 HReg argR2 = newVRegI(env);
2719 HReg res = newVRegD(env);
2720 HReg tmp = newVRegD(env);
2721 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2722 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2740 HReg res = newVRegD(env);
2741 HReg tmp = newVRegD(env);
2742 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2743 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2744 HReg argR2 = newVRegI(env);
2762 HReg res = newVRegD(env);
2763 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2764 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2779 HReg res = newVRegD(env);
2780 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2781 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2796 HReg res = newVRegD(env);
2797 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2798 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2813 HReg res = newVRegD(env);
2814 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2815 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2828 HReg res = newVRegD(env);
2829 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2830 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2838 HReg res = newVRegD(env);
2839 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2840 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2854 HReg res = newVRegD(env);
2855 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2856 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2871 HReg res = newVRegD(env);
2872 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2873 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2886 HReg res = newVRegD(env);
2887 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2888 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2897 HReg res = newVRegD(env);
2898 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2899 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2914 HReg res = newVRegD(env);
2915 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2916 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2931 HReg res = newVRegD(env);
2932 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2933 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2948 HReg res = newVRegD(env);
2949 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2950 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2963 HReg res = newVRegD(env);
2964 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2965 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2971 HReg res = newVRegD(env);
2972 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2973 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2980 HReg res = newVRegD(env);
2981 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2982 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2988 HReg res = newVRegD(env);
2989 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2990 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2996 HReg res = newVRegD(env);
2997 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2998 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3004 HReg res = newVRegD(env);
3005 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3006 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3012 HReg res = newVRegD(env);
3013 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3014 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3020 HReg res = newVRegD(env);
3021 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3022 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3028 HReg res = newVRegD(env);
3029 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3030 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3039 HReg res = newVRegD(env);
3040 HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1);
3066 HReg
3067 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3108 HReg rLo, rHi;
3109 HReg res = newVRegD(env);
3143 HReg res = newVRegD(env);
3144 HReg arg = iselNeon64Expr(env, mi.bindee[0]);
3148 HReg res = newVRegD(env);
3149 HReg arg = iselNeon64Expr(env, mi.bindee[0]);
3153 HReg res = newVRegD(env);
3154 HReg arg = iselNeon64Expr(env, mi.bindee[0]);
3158 HReg res = newVRegD(env);
3159 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3160 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3165 HReg res = newVRegD(env);
3166 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3167 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3172 HReg res = newVRegD(env);
3173 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3174 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3179 HReg res = newVRegD(env);
3180 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3181 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3186 HReg res = newVRegD(env);
3187 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3188 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3193 HReg res = newVRegD(env);
3194 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3195 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3200 HReg res = newVRegD(env);
3201 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3209 HReg res, arg;
3292 HReg res = newVRegD(env);
3293 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3307 HReg res = newVRegD(env);
3308 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3322 HReg res = newVRegD(env);
3323 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3335 HReg res = newVRegD(env);
3336 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3343 HReg x_lsh = newVRegD(env);
3344 HReg x_rsh = newVRegD(env);
3345 HReg lsh_amt = newVRegD(env);
3346 HReg rsh_amt = newVRegD(env);
3347 HReg zero = newVRegD(env);
3348 HReg tmp = newVRegD(env);
3349 HReg tmp2 = newVRegD(env);
3350 HReg res = newVRegD(env);
3351 HReg x = newVRegD(env);
3352 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3372 HReg res = newVRegD(env);
3373 HReg tmp = newVRegD(env);
3374 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3389 HReg res = newVRegD(env);
3390 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3405 HReg res = newVRegD(env);
3406 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3421 HReg res = newVRegD(env);
3422 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3437 HReg res = newVRegD(env);
3438 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3453 HReg res = newVRegD(env);
3454 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3469 HReg res = newVRegD(env);
3470 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3483 HReg res = newVRegD(env);
3484 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3493 HReg res = newVRegD(env);
3494 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3509 HReg res = newVRegD(env);
3510 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3523 HReg res = newVRegD(env);
3524 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3530 HReg res = newVRegD(env);
3531 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3537 HReg res = newVRegD(env);
3538 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3544 HReg res = newVRegD(env);
3545 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3551 HReg res = newVRegD(env);
3552 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3558 HReg res = newVRegD(env);
3559 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3565 HReg res = newVRegD(env);
3566 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3579 HReg res = newVRegD(env);
3580 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3581 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3586 HReg res = newVRegD(env);
3587 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3594 HReg res = newVRegD(env);
3595 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3601 HReg res = newVRegD(env);
3602 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3608 HReg res = newVRegD(env);
3609 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3624 HReg res = newVRegD(env);
3625 HReg argL = iselNeon64Expr(env, triop->arg1);
3626 HReg argR = iselNeon64Expr(env, triop->arg2);
3645 HReg res = newVRegD(env);
3646 HReg dreg = iselNeon64Expr(env, triop->arg1);
3647 HReg arg = iselIntExpr_R(env, triop->arg3);
3675 HReg rLo, rHi;
3676 HReg res = newVRegD(env);
3686 static HReg iselNeonExpr ( ISelEnv* env, IRExpr* e )
3688 HReg r = iselNeonExpr_wrk( env, e );
3695 static HReg iselNeonExpr_wrk ( ISelEnv* env, IRExpr* e )
3712 HReg res = newVRegV(env);
3721 HReg res = newVRegV(env);
3729 HReg addr = newVRegI(env);
3730 HReg res = newVRegV(env);
3768 HReg res = newVRegV(env);
3769 HReg arg = iselNeonExpr(env, mi.bindee[0]);
3773 HReg res = newVRegV(env);
3774 HReg arg = iselNeonExpr(env, mi.bindee[0]);
3778 HReg res = newVRegV(env);
3779 HReg arg = iselNeonExpr(env, mi.bindee[0]);
3783 HReg res = newVRegV(env);
3784 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3785 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3790 HReg res = newVRegV(env);
3791 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3792 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3797 HReg res = newVRegV(env);
3798 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3799 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3804 HReg res = newVRegV(env);
3805 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3806 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3811 HReg res = newVRegV(env);
3812 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3813 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3818 HReg res = newVRegV(env);
3819 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3820 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3825 HReg res = newVRegV(env);
3826 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3834 HReg res, arg;
3917 HReg res = newVRegV(env);
3918 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3932 HReg res = newVRegV(env);
3933 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3947 HReg res = newVRegV(env);
3948 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3960 HReg res = newVRegV(env);
3961 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3968 HReg x_lsh = newVRegV(env);
3969 HReg x_rsh = newVRegV(env);
3970 HReg lsh_amt = newVRegV(env);
3971 HReg rsh_amt = newVRegV(env);
3972 HReg zero = newVRegV(env);
3973 HReg tmp = newVRegV(env);
3974 HReg tmp2 = newVRegV(env);
3975 HReg res = newVRegV(env);
3976 HReg x = newVRegV(env);
3977 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3997 HReg res = newVRegV(env);
3998 HReg tmp = newVRegV(env);
3999 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4014 HReg res = newVRegV(env);
4015 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4030 HReg res = newVRegV(env);
4031 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4046 HReg res = newVRegV(env);
4047 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4062 HReg res = newVRegV(env);
4063 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4076 HReg res = newVRegV(env);
4077 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4085 HReg res = newVRegV(env);
4086 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4100 HReg res = newVRegV(env);
4101 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4113 HReg res = newVRegV(env);
4114 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4120 HReg res = newVRegV(env);
4121 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4127 HReg res = newVRegV(env);
4128 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4134 HReg res = newVRegV(env);
4135 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4141 HReg res = newVRegV(env);
4142 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4148 HReg res = newVRegV(env);
4149 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4155 HReg res = newVRegV(env);
4156 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4169 HReg res = newVRegV(env);
4170 HReg argL = iselNeonExpr(env, mi.bindee[0]);
4171 HReg argR = iselNeonExpr(env, mi.bindee[1]);
4176 HReg res = newVRegV(env);
4177 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4184 HReg res = newVRegV(env);
4185 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4191 HReg res = newVRegV(env);
4192 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4198 HReg res = newVRegV(env);
4199 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4223 HReg res = newVRegV(env);
4229 HReg tmp1 = newVRegV(env);
4230 HReg tmp2 = newVRegV(env);
4231 HReg res = newVRegV(env);
4242 HReg tmp1 = newVRegV(env);
4243 HReg tmp2 = newVRegV(env);
4244 HReg res = newVRegV(env);
4260 HReg w3, w2, w1, w0;
4261 HReg res = newVRegV(env);
4292 HReg res = newVRegV(env);
4293 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4294 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4300 HReg res = newVRegV(env);
4301 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4302 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4308 HReg res = newVRegV(env);
4309 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4310 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4344 HReg res = newVRegV(env);
4345 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4346 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4362 HReg res = newVRegV(env);
4363 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4364 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4371 HReg res = newVRegV(env);
4372 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4373 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4380 HReg res = newVRegV(env);
4381 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4382 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4394 HReg tmp = newVRegV(env);
4395 HReg res = newVRegV(env);
4396 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4397 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4434 HReg tmp = newVRegV(env);
4435 HReg res = newVRegV(env);
4436 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4437 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4474 HReg tmp = newVRegV(env);
4475 HReg res = newVRegV(env);
4476 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4477 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4512 HReg res = newVRegV(env);
4513 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4514 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4533 HReg res = newVRegV(env);
4534 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4535 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4554 HReg res = newVRegV(env);
4555 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4556 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4572 HReg res = newVRegV(env);
4573 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4574 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4584 HReg res = newVRegV(env);
4585 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4586 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4605 HReg res = newVRegV(env);
4606 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4607 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4625 HReg res = newVRegV(env);
4626 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4627 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4642 HReg res = newVRegV(env);
4643 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4644 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4659 HReg res = newVRegV(env);
4660 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4661 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4676 HReg res = newVRegV(env);
4677 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4678 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4694 HReg res = newVRegV(env);
4695 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4696 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4697 HReg argR2 = newVRegV(env);
4698 HReg zero = newVRegV(env);
4718 HReg res = newVRegV(env);
4719 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4720 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4737 HReg res = newVRegV(env);
4738 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4739 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4740 HReg argR2 = newVRegV(env);
4741 HReg zero = newVRegV(env);
4761 HReg res = newVRegV(env);
4762 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4763 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4780 HReg res = newVRegV(env);
4781 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4782 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4799 HReg res = newVRegV(env);
4800 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4801 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4818 HReg res = newVRegV(env);
4819 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4842 HReg res = newVRegV(env);
4843 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4866 HReg res = newVRegV(env);
4867 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4890 HReg res = newVRegV(env);
4891 HReg tmp = newVRegV(env);
4892 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4893 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4894 HReg argR2 = newVRegI(env);
4914 HReg res = newVRegV(env);
4915 HReg tmp = newVRegV(env);
4916 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4917 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4935 HReg res = newVRegV(env);
4936 HReg tmp = newVRegV(env);
4937 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4938 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4939 HReg argR2 = newVRegI(env);
4957 HReg res = newVRegV(env);
4958 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4959 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4974 HReg res = newVRegV(env);
4975 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4976 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4991 HReg res = newVRegV(env);
4992 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4993 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5008 HReg res = newVRegV(env);
5009 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5010 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5023 HReg res = newVRegV(env);
5024 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5025 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5034 HReg res = newVRegV(env);
5035 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5036 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5052 HReg res = newVRegV(env);
5053 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5054 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5069 HReg res = newVRegV(env);
5070 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5071 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5085 HReg res = newVRegV(env);
5086 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5087 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5101 HReg res = newVRegV(env);
5102 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5103 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5115 HReg res = newVRegV(env);
5116 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5117 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5124 HReg res = newVRegV(env);
5125 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5126 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5132 HReg res = newVRegV(env);
5133 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5134 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5140 HReg res = newVRegV(env);
5141 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5142 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5148 HReg res = newVRegV(env);
5149 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5150 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5156 HReg res = newVRegV(env);
5157 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5158 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5164 HReg res = newVRegV(env);
5165 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5166 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5172 HReg res = newVRegV(env);
5173 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5174 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5181 HReg res = newVRegV(env);
5182 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5183 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5193 HReg res = newVRegV(env);
5194 HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1);
5220 HReg res = newVRegV(env);
5221 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5248 HReg res = newVRegV(env);
5249 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5250 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5273 HReg res = newVRegV(env);
5274 HReg argL = iselNeonExpr(env, triop->arg1);
5275 HReg argR = iselNeonExpr(env, triop->arg2);
5297 HReg r8;
5298 HReg rX = iselNeonExpr(env, e->Iex.Mux0X.exprX);
5299 HReg r0 = iselNeonExpr(env, e->Iex.Mux0X.expr0);
5300 HReg dst = newVRegV(env);
5323 static HReg iselDblExpr ( ISelEnv* env, IRExpr* e )
5325 HReg r = iselDblExpr_wrk( env, e );
5335 static HReg iselDblExpr_wrk ( ISelEnv* env, IRExpr* e )
5349 HReg z32 = newVRegI(env);
5350 HReg dst = newVRegD(env);
5359 HReg res = newVRegD(env);
5370 HReg res = newVRegD(env);
5381 HReg srcHi, srcLo;
5382 HReg dst = newVRegD(env);
5389 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5390 HReg dst = newVRegD(env);
5395 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5396 HReg dst = newVRegD(env);
5401 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5402 HReg dst = newVRegD(env);
5408 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5409 HReg f32 = newVRegF(env);
5410 HReg dst = newVRegD(env);
5428 HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
5429 HReg dst = newVRegD(env);
5447 HReg argL = iselDblExpr(env, triop->arg2);
5448 HReg argR = iselDblExpr(env, triop->arg3);
5449 HReg dst = newVRegD(env);
5468 HReg r8;
5469 HReg rX = iselDblExpr(env, e->Iex.Mux0X.exprX);
5470 HReg r0 = iselDblExpr(env, e->Iex.Mux0X.expr0);
5471 HReg dst = newVRegD(env);
5495 static HReg iselFltExpr ( ISelEnv* env, IRExpr* e )
5497 HReg r = iselFltExpr_wrk( env, e );
5507 static HReg iselFltExpr_wrk ( ISelEnv* env, IRExpr* e )
5519 HReg res = newVRegF(env);
5530 HReg res = newVRegF(env);
5538 HReg dst = newVRegF(env);
5539 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5544 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5545 HReg dst = newVRegF(env);
5550 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5551 HReg dst = newVRegF(env);
5564 HReg src = iselFltExpr(env, e->Iex.Binop.arg2);
5565 HReg dst = newVRegF(env);
5570 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
5572 HReg valS = newVRegF(env);
5592 HReg argL = iselFltExpr(env, triop->arg2);
5593 HReg argR = iselFltExpr(env, triop->arg3);
5594 HReg dst = newVRegF(env);
5613 HReg r8;
5614 HReg rX = iselFltExpr(env, e->Iex.Mux0X.exprX);
5615 HReg r0 = iselFltExpr(env, e->Iex.Mux0X.expr0);
5616 HReg dst = newVRegF(env);
5655 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5661 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5668 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5675 HReg dD = iselNeon64Expr(env, stmt->Ist.Store.data);
5679 HReg rDhi, rDlo, rA;
5690 HReg dD = iselDblExpr(env, stmt->Ist.Store.data);
5696 HReg fD = iselFltExpr(env, stmt->Ist.Store.data);
5702 HReg qD = iselNeonExpr(env, stmt->Ist.Store.data);
5717 HReg rD = iselIntExpr_R(env, stmt->Ist.Put.data);
5724 HReg addr = newVRegI(env);
5725 HReg qD = iselNeon64Expr(env, stmt->Ist.Put.data);
5730 HReg rDhi, rDlo;
5745 HReg rD = iselDblExpr(env, stmt->Ist.Put.data);
5753 HReg rD = iselFltExpr(env, stmt->Ist.Put.data);
5758 HReg addr = newVRegI(env);
5759 HReg qD = iselNeonExpr(env, stmt->Ist.Put.data);
5779 //zz HReg reg = iselIntExpr_R(env, stmt->Ist.PutI.data);
5796 HReg dst = lookupIRTemp(env, tmp);
5801 HReg dst = lookupIRTemp(env, tmp);
5809 HReg src = iselNeon64Expr(env, stmt->Ist.WrTmp.data);
5810 HReg dst = lookupIRTemp(env, tmp);
5813 HReg rHi, rLo, dstHi, dstLo;
5822 HReg src = iselDblExpr(env, stmt->Ist.WrTmp.data);
5823 HReg dst = lookupIRTemp(env, tmp);
5828 HReg src = iselFltExpr(env, stmt->Ist.WrTmp.data);
5829 HReg dst = lookupIRTemp(env, tmp);
5834 HReg src = iselNeonExpr(env, stmt->Ist.WrTmp.data);
5835 HReg dst = lookupIRTemp(env, tmp);
5868 HReg tmp = lookupIRTemp(env, d->tmp);
5872 HReg dstHi, dstLo;
5884 HReg dst = lookupIRTemp(env, d->tmp);
5900 HReg r_dst = lookupIRTemp(env, res);
5901 HReg raddr = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5914 HReg raddr = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5922 HReg dst = lookupIRTemp(env, res);
5926 HReg r_dst_hi, r_dst_lo;
5940 HReg rD = iselIntExpr_R(env, stmt->Ist.LLSC.storedata);
5941 HReg rA = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5958 HReg rDhi, rDlo;
5960 HReg rA = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5971 HReg r_res = lookupIRTemp(env, res);
6031 HReg r = iselIntExpr_R(env, IRExpr_Const(stmt->Ist.Exit.dst));
6046 HReg r = iselIntExpr_R(env, IRExpr_Const(stmt->Ist.Exit.dst));
6103 HReg r = iselIntExpr_R(env, next);
6114 HReg r = iselIntExpr_R(env, next);
6136 HReg r = iselIntExpr_R(env, next);
6171 HReg hreg, hregHI;
6192 /* Make up an IRTemp -> virtual HReg mapping. This doesn't
6195 env->vregmap = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
6196 env->vregmapHI = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
6207 hregHI = hreg = INVALID_HREG;
6212 case Ity_I32: hreg = mkHReg(j++, HRcInt32, True); break;
6215 hreg = mkHReg(j++, HRcFlt64, True);
6218 hreg = mkHReg(j++, HRcInt32, True);
6221 case Ity_F32: hreg = mkHReg(j++, HRcFlt32, True); break;
6222 case Ity_F64: hreg = mkHReg(j++, HRcFlt64, True); break;
6223 case Ity_V128: hreg = mkHReg(j++, HRcVec128, True); break;
6227 env->vregmap[i] = hreg;