Home | History | Annotate | Download | only in priv

Lines Matching full:hreg

75    - A mapping from IRTemp to HReg.  This tells the insn selector
84 32-bit virtual HReg, which holds the high half
103 HReg* vregmap;
104 HReg* vregmapHI;
107 HReg savedLR;
117 static HReg lookupIRTemp ( ISelEnv* env, IRTemp tmp )
124 static void lookupIRTemp64 ( HReg* vrHI, HReg* vrLO, ISelEnv* env, IRTemp tmp )
150 static HReg newVRegI ( ISelEnv* env )
152 HReg reg = mkHReg(env->vreg_ctr, HRcInt32, True/*virtual reg*/);
157 static HReg newVRegD ( ISelEnv* env )
159 HReg reg = mkHReg(env->vreg_ctr, HRcFlt64, True/*virtual reg*/);
164 static HReg newVRegF ( ISelEnv* env )
166 HReg reg = mkHReg(env->vreg_ctr, HRcFlt32, True/*virtual reg*/);
171 static HReg newVRegV ( ISelEnv* env )
173 HReg reg = mkHReg(env->vreg_ctr, HRcVec128, True/*virtual reg*/);
228 static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e );
229 static HReg iselIntExpr_R ( ISelEnv* env, IRExpr* e );
231 static void iselInt64Expr_wrk ( HReg* rHi, HReg* rLo,
233 static void iselInt64Expr ( HReg* rHi, HReg* rLo,
236 static HReg iselDblExpr_wrk ( ISelEnv* env, IRExpr* e );
237 static HReg iselDblExpr ( ISelEnv* env, IRExpr* e );
239 static HReg iselFltExpr_wrk ( ISelEnv* env, IRExpr* e );
240 static HReg iselFltExpr ( ISelEnv* env, IRExpr* e );
242 static HReg iselNeon64Expr_wrk ( ISelEnv* env, IRExpr* e );
243 static HReg iselNeon64Expr ( ISelEnv* env, IRExpr* e );
245 static HReg iselNeonExpr_wrk ( ISelEnv* env, IRExpr* e );
246 static HReg iselNeonExpr ( ISelEnv* env, IRExpr* e );
278 static ARMInstr* mk_iMOVds_RR ( HReg dst, HReg src )
291 HReg rTmp = newVRegI(env);
318 HReg irrm = iselIntExpr_R(env, mode);
319 HReg tL = newVRegI(env);
320 HReg tR = newVRegI(env);
321 HReg t3 = newVRegI(env);
372 HReg argregs[ARM_N_ARGREGS];
373 HReg tmpregs[ARM_N_ARGREGS];
503 HReg raHi, raLo;
545 HReg raHi, raLo;
681 HReg reg;
692 HReg reg = iselIntExpr_R(env, e);
747 HReg reg;
758 HReg reg = iselIntExpr_R(env, e);
799 HReg reg;
810 HReg reg = iselIntExpr_R(env, e);
825 HReg reg = iselIntExpr_R(env, e);
890 HReg r = iselIntExpr_R ( env, e );
939 HReg r = iselIntExpr_R ( env, e );
965 HReg rTmp = lookupIRTemp(env, e->Iex.RdTmp.tmp);
982 HReg rTmp = iselIntExpr_R(env, e->Iex.Unop.arg);
992 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1002 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1012 HReg tHi, tLo;
1013 HReg tmp = newVRegI(env);
1029 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1061 static HReg iselIntExpr_R ( ISelEnv* env, IRExpr* e )
1063 HReg r = iselIntExpr_R_wrk(env, e);
1074 static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e )
1089 HReg dst = newVRegI(env);
1128 //zz HReg junk = newVRegF(env);
1129 //zz HReg dst = newVRegI(env);
1130 //zz HReg srcL = iselDblExpr(env, e->Iex.Triop.arg2);
1131 //zz HReg srcR = iselDblExpr(env, e->Iex.Triop.arg3);
1160 HReg dst = newVRegI(env);
1161 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1173 HReg dst = newVRegI(env);
1174 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1189 HReg dst = newVRegI(env);
1190 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1201 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1202 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1203 HReg dst = newVRegI(env);
1214 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1215 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1216 HReg dst = newVRegI(env);
1225 HReg dL = iselDblExpr(env, e->Iex.Binop.arg1);
1226 HReg dR = iselDblExpr(env, e->Iex.Binop.arg2);
1227 HReg dst = newVRegI(env);
1248 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
1251 HReg valF = newVRegF(env);
1256 HReg dst = newVRegI(env);
1264 HReg res = newVRegI(env);
1265 HReg arg = iselNeon64Expr(env, e->Iex.Triop.arg1);
1289 HReg res = newVRegI(env);
1290 HReg arg = iselNeonExpr(env, e->Iex.Triop.arg1);
1357 HReg regL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1358 HReg regR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1359 HReg res = newVRegI(env);
1380 //zz HReg dst = newVRegI(env);
1381 //zz HReg src = iselIntExpr_R(env, expr32);
1396 //zz HReg dst = newVRegI(env);
1410 //zz HReg dst = newVRegI(env);
1424 //zz HReg dst = newVRegI(env);
1434 //zz HReg dst;
1448 //zz HReg dst;
1461 HReg dst = newVRegI(env);
1462 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1470 //zz HReg dst = newVRegI(env);
1471 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1481 HReg dst = newVRegI(env);
1482 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1490 HReg dst = newVRegI(env);
1491 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1500 HReg dst = newVRegI(env);
1501 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1506 HReg rHi, rLo;
1511 HReg rHi, rLo;
1516 HReg rHi, rLo;
1518 HReg tHi = newVRegI(env);
1519 HReg tLo = newVRegI(env);
1520 HReg tmp = iselNeon64Expr(env, e->Iex.Unop.arg);
1531 //zz HReg dst = newVRegI(env);
1532 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1540 HReg dst = newVRegI(env);
1548 HReg dst = newVRegI(env);
1566 //zz HReg dst = newVRegI(env);
1575 //zz HReg dst = newVRegI(env);
1576 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1582 HReg dst = newVRegI(env);
1583 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1589 HReg dst = newVRegI(env);
1590 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1598 HReg dst = newVRegI(env);
1599 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1606 //zz HReg dst = newVRegI(env);
1607 //zz HReg vec = iselVecExpr(env, e->Iex.Unop.arg);
1617 HReg dst = newVRegI(env);
1618 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
1646 HReg arg = iselIntExpr_R(env, e->Iex.Unop.arg);
1647 HReg res = newVRegI(env);
1662 HReg dst = newVRegI(env);
1670 //zz HReg dst = newVRegI(env);
1686 //zz HReg dst = newVRegI(env);
1700 HReg dst = newVRegI(env);
1722 HReg dst = newVRegI(env);
1744 HReg rX = iselIntExpr_R(env, e->Iex.Mux0X.exprX);
1746 HReg dst = newVRegI(env);
1755 HReg r8;
1756 HReg rX = iselIntExpr_R(env, e->Iex.Mux0X.exprX);
1758 HReg dst = newVRegI(env);
1787 static void iselInt64Expr ( HReg* rHi, HReg* rLo, ISelEnv* env, IRExpr* e )
1800 static void iselInt64Expr_wrk ( HReg* rHi, HReg* rLo, ISelEnv* env, IRExpr* e )
1810 HReg tHi = newVRegI(env);
1811 HReg tLo = newVRegI(env);
1823 HReg tHi = newVRegI(env);
1824 HReg tLo = newVRegI(env);
1825 HReg tmp = iselNeon64Expr(env, e);
1837 HReg tLo, tHi, rA;
1853 HReg tHi = newVRegI(env);
1854 HReg tLo = newVRegI(env);
1869 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1870 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1871 HReg tHi = newVRegI(env);
1872 HReg tLo = newVRegI(env);
1886 HReg xLo, xHi, yLo, yHi;
1887 HReg tHi = newVRegI(env);
1888 HReg tLo = newVRegI(env);
1899 HReg xLo, xHi, yLo, yHi;
1900 HReg tHi = newVRegI(env);
1901 HReg tLo = newVRegI(env);
1929 HReg dstHi = newVRegI(env);
1930 HReg dstLo = newVRegI(env);
1931 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
1940 HReg yLo, yHi;
1941 HReg tHi = newVRegI(env);
1942 HReg tLo = newVRegI(env);
1943 HReg zero = newVRegI(env);
1966 HReg srcLo, srcHi;
1967 HReg tmp1 = newVRegI(env);
1968 HReg tmp2 = newVRegI(env);
1986 HReg dst = newVRegI(env);
2009 HReg r8, rXhi, rXlo, r0hi, r0lo, dstHi, dstLo;
2032 HReg tHi = newVRegI(env);
2033 HReg tLo = newVRegI(env);
2034 HReg tmp = iselNeon64Expr(env, e);
2050 static HReg iselNeon64Expr ( ISelEnv* env, IRExpr* e )
2052 HReg r = iselNeon64Expr_wrk( env, e );
2059 static HReg iselNeon64Expr_wrk ( ISelEnv* env, IRExpr* e )
2071 HReg rLo, rHi;
2072 HReg res = newVRegD(env);
2080 HReg res = newVRegD(env);
2089 HReg addr = newVRegI(env);
2090 HReg res = newVRegD(env);
2104 HReg rLo, rHi;
2105 HReg res = newVRegD(env);
2112 HReg res = newVRegD(env);
2113 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2114 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2120 HReg res = newVRegD(env);
2121 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2122 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2128 HReg res = newVRegD(env);
2129 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2130 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2138 HReg rHi = iselIntExpr_R(env, e->Iex.Binop.arg1);
2139 HReg rLo = iselIntExpr_R(env, e->Iex.Binop.arg2);
2140 HReg res = newVRegD(env);
2149 HReg res = newVRegD(env);
2150 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2151 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2165 HReg res = newVRegD(env);
2166 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2167 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2174 HReg res = newVRegD(env);
2175 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2176 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2183 HReg res = newVRegD(env);
2184 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2185 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2197 HReg tmp = newVRegD(env);
2198 HReg res = newVRegD(env);
2199 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2200 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2233 HReg tmp = newVRegD(env);
2234 HReg res = newVRegD(env);
2235 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2236 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2267 HReg tmp = newVRegD(env);
2268 HReg res = newVRegD(env);
2269 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2270 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2301 HReg res = newVRegD(env);
2302 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2303 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2320 HReg res = newVRegD(env);
2321 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2322 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2339 HReg res = newVRegD(env);
2340 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2341 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2355 HReg res = newVRegD(env);
2356 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2357 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2367 HReg res = newVRegD(env);
2368 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2369 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2386 HReg res = newVRegD(env);
2387 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2388 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2404 HReg res = newVRegD(env);
2405 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2406 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2421 HReg res = newVRegD(env);
2422 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2423 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2438 HReg res = newVRegD(env);
2439 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2440 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2455 HReg res = newVRegD(env);
2456 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2457 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2472 HReg res = newVRegD(env);
2473 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2474 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2475 HReg argR2 = newVRegD(env);
2476 HReg zero = newVRegD(env);
2496 HReg res = newVRegD(env);
2497 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2498 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2514 HReg res = newVRegD(env);
2515 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2516 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2517 HReg argR2 = newVRegD(env);
2518 HReg zero = newVRegD(env);
2536 HReg res = newVRegD(env);
2537 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2538 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2554 HReg res = newVRegD(env);
2555 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2556 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2573 HReg res = newVRegD(env);
2574 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2575 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2592 HReg res = newVRegD(env);
2593 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2616 HReg res = newVRegD(env);
2617 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2640 HReg res = newVRegD(env);
2641 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2664 HReg res = newVRegD(env);
2665 HReg tmp = newVRegD(env);
2666 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2667 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2668 HReg argR2 = newVRegI(env);
2687 HReg res = newVRegD(env);
2688 HReg tmp = newVRegD(env);
2689 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2690 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2708 HReg res = newVRegD(env);
2709 HReg tmp = newVRegD(env);
2710 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2711 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2712 HReg argR2 = newVRegI(env);
2730 HReg res = newVRegD(env);
2731 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2732 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2747 HReg res = newVRegD(env);
2748 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2749 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2764 HReg res = newVRegD(env);
2765 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2766 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2781 HReg res = newVRegD(env);
2782 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2783 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);
2806 HReg res = newVRegD(env);
2807 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2808 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2822 HReg res = newVRegD(env);
2823 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2824 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2839 HReg res = newVRegD(env);
2840 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2841 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);
2865 HReg res = newVRegD(env);
2866 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2867 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2882 HReg res = newVRegD(env);
2883 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2884 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2899 HReg res = newVRegD(env);
2900 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2901 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2916 HReg res = newVRegD(env);
2917 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2918 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);
2939 HReg res = newVRegD(env);
2940 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2941 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);
2956 HReg res = newVRegD(env);
2957 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2958 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2964 HReg res = newVRegD(env);
2965 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2966 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2972 HReg res = newVRegD(env);
2973 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2974 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);
3007 HReg res = newVRegD(env);
3008 HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1);
3034 HReg res = newVRegD(env);
3035 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3076 HReg rLo, rHi;
3077 HReg res = newVRegD(env);
3111 HReg res = newVRegD(env);
3112 HReg arg = iselNeon64Expr(env, mi.bindee[0]);
3116 HReg res = newVRegD(env);
3117 HReg arg = iselNeon64Expr(env, mi.bindee[0]);
3121 HReg res = newVRegD(env);
3122 HReg arg = iselNeon64Expr(env, mi.bindee[0]);
3126 HReg res = newVRegD(env);
3127 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3128 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3133 HReg res = newVRegD(env);
3134 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3135 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3140 HReg res = newVRegD(env);
3141 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3142 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3147 HReg res = newVRegD(env);
3148 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3149 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3154 HReg res = newVRegD(env);
3155 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3156 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3161 HReg res = newVRegD(env);
3162 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3163 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3168 HReg res = newVRegD(env);
3169 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3177 HReg res, arg;
3260 HReg res = newVRegD(env);
3261 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3275 HReg res = newVRegD(env);
3276 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3290 HReg res = newVRegD(env);
3291 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3303 HReg res = newVRegD(env);
3304 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3311 HReg x_lsh = newVRegD(env);
3312 HReg x_rsh = newVRegD(env);
3313 HReg lsh_amt = newVRegD(env);
3314 HReg rsh_amt = newVRegD(env);
3315 HReg zero = newVRegD(env);
3316 HReg tmp = newVRegD(env);
3317 HReg tmp2 = newVRegD(env);
3318 HReg res = newVRegD(env);
3319 HReg x = newVRegD(env);
3320 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3340 HReg res = newVRegD(env);
3341 HReg tmp = newVRegD(env);
3342 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3357 HReg res = newVRegD(env);
3358 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3373 HReg res = newVRegD(env);
3374 HReg arg = iselNeonExpr(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 = iselNeon64Expr(env, e->Iex.Unop.arg);
3437 HReg res = newVRegD(env);
3438 HReg
3451 HReg res = newVRegD(env);
3452 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3461 HReg res = newVRegD(env);
3462 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3477 HReg res = newVRegD(env);
3478 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3491 HReg res = newVRegD(env);
3492 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3498 HReg res = newVRegD(env);
3499 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3505 HReg res = newVRegD(env);
3506 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3512 HReg res = newVRegD(env);
3513 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3519 HReg res = newVRegD(env);
3520 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3526 HReg res = newVRegD(env);
3527 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3533 HReg res = newVRegD(env);
3534 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3547 HReg res = newVRegD(env);
3548 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3549 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3554 HReg res = newVRegD(env);
3555 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3562 HReg res = newVRegD(env);
3563 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3569 HReg res = newVRegD(env);
3570 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3576 HReg res = newVRegD(env);
3577 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3590 HReg res = newVRegD(env);
3591 HReg argL = iselNeon64Expr(env, e->Iex.Triop.arg1);
3592 HReg argR = iselNeon64Expr(env, e->Iex.Triop.arg2);
3611 HReg res = newVRegD(env);
3612 HReg dreg = iselNeon64Expr(env, e->Iex.Triop.arg1);
3613 HReg arg = iselIntExpr_R(env, e->Iex.Triop.arg3);
3641 HReg rLo, rHi;
3642 HReg res = newVRegD(env);
3652 static HReg iselNeonExpr ( ISelEnv* env, IRExpr* e )
3654 HReg r = iselNeonExpr_wrk( env, e );
3661 static HReg iselNeonExpr_wrk ( ISelEnv* env, IRExpr* e )
3678 HReg res = newVRegV(env);
3687 HReg res = newVRegV(env);
3695 HReg addr = newVRegI(env);
3696 HReg res = newVRegV(env);
3734 HReg res = newVRegV(env);
3735 HReg arg = iselNeonExpr(env, mi.bindee[0]);
3739 HReg res = newVRegV(env);
3740 HReg arg = iselNeonExpr(env, mi.bindee[0]);
3744 HReg res = newVRegV(env);
3745 HReg arg = iselNeonExpr(env, mi.bindee[0]);
3749 HReg res = newVRegV(env);
3750 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3751 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3756 HReg res = newVRegV(env);
3757 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3758 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3763 HReg res = newVRegV(env);
3764 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3765 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3770 HReg res = newVRegV(env);
3771 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3772 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3777 HReg res = newVRegV(env);
3778 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3779 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3784 HReg res = newVRegV(env);
3785 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3786 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3791 HReg res = newVRegV(env);
3792 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3800 HReg res, arg;
3883 HReg res = newVRegV(env);
3884 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3898 HReg res = newVRegV(env);
3899 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3913 HReg res = newVRegV(env);
3914 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3926 HReg res = newVRegV(env);
3927 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3934 HReg x_lsh = newVRegV(env);
3935 HReg x_rsh = newVRegV(env);
3936 HReg lsh_amt = newVRegV(env);
3937 HReg rsh_amt = newVRegV(env);
3938 HReg zero = newVRegV(env);
3939 HReg tmp = newVRegV(env);
3940 HReg tmp2 = newVRegV(env);
3941 HReg res = newVRegV(env);
3942 HReg x = newVRegV(env);
3943 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3963 HReg res = newVRegV(env);
3964 HReg tmp = newVRegV(env);
3965 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3980 HReg res = newVRegV(env);
3981 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3996 HReg res = newVRegV(env);
3997 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4012 HReg res = newVRegV(env);
4013 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4028 HReg res = newVRegV(env);
4029 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4042 HReg res = newVRegV(env);
4043 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4051 HReg res = newVRegV(env);
4052 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4066 HReg res = newVRegV(env);
4067 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4079 HReg res = newVRegV(env);
4080 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4086 HReg res = newVRegV(env);
4087 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4093 HReg res = newVRegV(env);
4094 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4100 HReg res = newVRegV(env);
4101 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4107 HReg res = newVRegV(env);
4108 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4114 HReg res = newVRegV(env);
4115 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4121 HReg res = newVRegV(env);
4122 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4135 HReg res = newVRegV(env);
4136 HReg argL = iselNeonExpr(env, mi.bindee[0]);
4137 HReg argR = iselNeonExpr(env, mi.bindee[1]);
4142 HReg res = newVRegV(env);
4143 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4150 HReg res = newVRegV(env);
4151 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4157 HReg res = newVRegV(env);
4158 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4164 HReg res = newVRegV(env);
4165 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4189 HReg res = newVRegV(env);
4195 HReg tmp1 = newVRegV(env);
4196 HReg tmp2 = newVRegV(env);
4197 HReg res = newVRegV(env);
4208 HReg tmp1 = newVRegV(env);
4209 HReg tmp2 = newVRegV(env);
4210 HReg res = newVRegV(env);
4223 HReg res = newVRegV(env);
4224 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4225 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4231 HReg res = newVRegV(env);
4232 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4233 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4239 HReg res = newVRegV(env);
4240 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4241 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4275 HReg res = newVRegV(env);
4276 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4277 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4293 HReg res = newVRegV(env);
4294 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4295 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4302 HReg res = newVRegV(env);
4303 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4304 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4311 HReg res = newVRegV(env);
4312 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4313 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4325 HReg tmp = newVRegV(env);
4326 HReg res = newVRegV(env);
4327 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4328 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4365 HReg tmp = newVRegV(env);
4366 HReg res = newVRegV(env);
4367 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4368 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4405 HReg tmp = newVRegV(env);
4406 HReg res = newVRegV(env);
4407 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4408 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4443 HReg res = newVRegV(env);
4444 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4445 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4464 HReg res = newVRegV(env);
4465 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4466 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4485 HReg res = newVRegV(env);
4486 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4487 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4503 HReg res = newVRegV(env);
4504 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4505 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4515 HReg res = newVRegV(env);
4516 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4517 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4536 HReg res = newVRegV(env);
4537 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4538 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4556 HReg res = newVRegV(env);
4557 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4558 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4573 HReg res = newVRegV(env);
4574 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4575 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4590 HReg res = newVRegV(env);
4591 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4592 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4607 HReg res = newVRegV(env);
4608 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4609 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);
4628 HReg argR2 = newVRegV(env);
4629 HReg zero = newVRegV(env);
4649 HReg res = newVRegV(env);
4650 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4651 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4668 HReg res = newVRegV(env);
4669 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4670 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4671 HReg argR2 = newVRegV(env);
4672 HReg zero = newVRegV(env);
4692 HReg res = newVRegV(env);
4693 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4694 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4711 HReg res = newVRegV(env);
4712 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4713 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4730 HReg res = newVRegV(env);
4731 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4732 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4749 HReg res = newVRegV(env);
4750 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4773 HReg res = newVRegV(env);
4774 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4797 HReg res = newVRegV(env);
4798 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4821 HReg res = newVRegV(env);
4822 HReg tmp = newVRegV(env);
4823 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4824 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4825 HReg argR2 = newVRegI(env);
4845 HReg res = newVRegV(env);
4846 HReg tmp = newVRegV(env);
4847 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4848 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4866 HReg res = newVRegV(env);
4867 HReg tmp = newVRegV(env);
4868 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4869 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4870 HReg argR2 = newVRegI(env);
4888 HReg res = newVRegV(env);
4889 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4890 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4905 HReg res = newVRegV(env);
4906 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4907 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4922 HReg res = newVRegV(env);
4923 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4924 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4939 HReg res = newVRegV(env);
4940 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4941 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4954 HReg res = newVRegV(env);
4955 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4956 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4965 HReg res = newVRegV(env);
4966 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
4967 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
4983 HReg res = newVRegV(env);
4984 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
4985 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5000 HReg res = newVRegV(env);
5001 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5002 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5016 HReg res = newVRegV(env);
5017 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5018 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5032 HReg res = newVRegV(env);
5033 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5034 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5046 HReg res = newVRegV(env);
5047 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5048 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5055 HReg res = newVRegV(env);
5056 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5057 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5063 HReg res = newVRegV(env);
5064 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5065 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5071 HReg res = newVRegV(env);
5072 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5073 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5079 HReg res = newVRegV(env);
5080 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5081 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5087 HReg res = newVRegV(env);
5088 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5089 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5095 HReg res = newVRegV(env);
5096 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5097 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5103 HReg res = newVRegV(env);
5104 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5105 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5112 HReg res = newVRegV(env);
5113 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5114 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5124 HReg res = newVRegV(env);
5125 HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1);
5151 HReg res = newVRegV(env);
5152 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5179 HReg res = newVRegV(env);
5180 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5181 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5202 HReg res = newVRegV(env);
5203 HReg argL = iselNeonExpr(env, e->Iex.Triop.arg1);
5204 HReg argR = iselNeonExpr(env, e->Iex.Triop.arg2);
5226 HReg r8;
5227 HReg rX = iselNeonExpr(env, e->Iex.Mux0X.exprX);
5228 HReg r0 = iselNeonExpr(env, e->Iex.Mux0X.expr0);
5229 HReg dst = newVRegV(env);
5252 static HReg iselDblExpr ( ISelEnv* env, IRExpr* e )
5254 HReg r = iselDblExpr_wrk( env, e );
5264 static HReg iselDblExpr_wrk ( ISelEnv* env, IRExpr* e )
5278 HReg z32 = newVRegI(env);
5279 HReg dst = newVRegD(env);
5288 HReg res = newVRegD(env);
5299 HReg res = newVRegD(env);
5310 HReg srcHi, srcLo;
5311 HReg dst = newVRegD(env);
5318 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5319 HReg dst = newVRegD(env);
5324 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5325 HReg dst = newVRegD(env);
5330 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5331 HReg dst = newVRegD(env);
5337 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5338 HReg f32 = newVRegF(env);
5339 HReg dst = newVRegD(env);
5357 HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
5358 HReg dst = newVRegD(env);
5374 HReg argL = iselDblExpr(env, e->Iex.Triop.arg2);
5375 HReg argR = iselDblExpr(env, e->Iex.Triop.arg3);
5376 HReg dst = newVRegD(env);
5395 HReg r8;
5396 HReg rX = iselDblExpr(env, e->Iex.Mux0X.exprX);
5397 HReg r0 = iselDblExpr(env, e->Iex.Mux0X.expr0);
5398 HReg dst = newVRegD(env);
5422 static HReg iselFltExpr ( ISelEnv* env, IRExpr* e )
5424 HReg r = iselFltExpr_wrk( env, e );
5434 static HReg iselFltExpr_wrk ( ISelEnv* env, IRExpr* e )
5446 HReg res = newVRegF(env);
5457 HReg res = newVRegF(env);
5465 HReg dst = newVRegF(env);
5466 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5471 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5472 HReg dst = newVRegF(env);
5477 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5478 HReg dst = newVRegF(env);
5491 HReg src = iselFltExpr(env, e->Iex.Binop.arg2);
5492 HReg dst = newVRegF(env);
5497 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
5499 HReg valS = newVRegF(env);
5517 HReg argL = iselFltExpr(env, e->Iex.Triop.arg2);
5518 HReg argR = iselFltExpr(env, e->Iex.Triop.arg3);
5519 HReg dst = newVRegF(env);
5538 HReg r8;
5539 HReg rX = iselFltExpr(env, e->Iex.Mux0X.exprX);
5540 HReg r0 = iselFltExpr(env, e->Iex.Mux0X.expr0);
5541 HReg dst = newVRegF(env);
5580 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5586 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5593 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5600 HReg dD = iselNeon64Expr(env, stmt->Ist.Store.data);
5604 HReg rDhi, rDlo, rA;
5615 HReg dD = iselDblExpr(env, stmt->Ist.Store.data);
5621 HReg fD = iselFltExpr(env, stmt->Ist.Store.data);
5627 HReg qD = iselNeonExpr(env, stmt->Ist.Store.data);
5642 HReg rD = iselIntExpr_R(env, stmt->Ist.Put.data);
5649 HReg addr = newVRegI(env);
5650 HReg qD = iselNeon64Expr(env, stmt->Ist.Put.data);
5655 HReg rDhi, rDlo;
5670 HReg rD = iselDblExpr(env, stmt->Ist.Put.data);
5678 HReg rD = iselFltExpr(env, stmt->Ist.Put.data);
5683 HReg addr = newVRegI(env);
5684 HReg qD = iselNeonExpr(env, stmt->Ist.Put.data);
5704 //zz HReg reg = iselIntExpr_R(env, stmt->Ist.PutI.data);
5721 HReg dst = lookupIRTemp(env, tmp);
5726 HReg dst = lookupIRTemp(env, tmp);
5734 HReg src = iselNeon64Expr(env, stmt->Ist.WrTmp.data);
5735 HReg dst = lookupIRTemp(env, tmp);
5738 HReg rHi, rLo, dstHi, dstLo;
5747 HReg src = iselDblExpr(env, stmt->Ist.WrTmp.data);
5748 HReg dst = lookupIRTemp(env, tmp);
5753 HReg src = iselFltExpr(env, stmt->Ist.WrTmp.data);
5754 HReg dst = lookupIRTemp(env, tmp);
5759 HReg src = iselNeonExpr(env, stmt->Ist.WrTmp.data);
5760 HReg dst = lookupIRTemp(env, tmp);
5793 HReg tmp = lookupIRTemp(env, d->tmp);
5797 HReg dstHi, dstLo;
5809 HReg dst = lookupIRTemp(env, d->tmp);
5825 HReg r_dst = lookupIRTemp(env, res);
5826 HReg raddr = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5837 HReg raddr = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5838 HReg dstHi, dstLo;
5855 HReg r_res = lookupIRTemp(env, res);
5856 HReg rD = iselIntExpr_R(env, stmt->Ist.LLSC.storedata);
5857 HReg rA = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5875 HReg r_res = lookupIRTemp(env, res);
5876 HReg rA = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5878 HReg rDHi, rDLo;
5919 HReg gnext;
5944 HReg rDst;
5969 HReg hreg, hregHI;
5991 /* Make up an IRTemp -> virtual HReg mapping. This doesn't
5994 env->vregmap = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
5995 env->vregmapHI = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
6001 hregHI = hreg = INVALID_HREG;
6006 case Ity_I32: hreg = mkHReg(j++, HRcInt32, True); break;
6009 hreg = mkHReg(j++, HRcFlt64, True);
6013 hreg = mkHReg(j++, HRcInt32, True);
6016 case Ity_F32: hreg = mkHReg(j++, HRcFlt32, True); break;
6017 case Ity_F64: hreg = mkHReg(j++, HRcFlt64, True); break;
6018 case Ity_V128: hreg = mkHReg(j++, HRcVec128, True);
6023 env->vregmap[i] = hreg;