Lines Matching defs: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 arg = iselNeon64Expr(env, e->Iex.Unop.arg);
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);
4226 HReg w3, w2, w1, w0;
4227 HReg res = newVRegV(env);
4258 HReg res = newVRegV(env);
4259 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4260 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4266 HReg res = newVRegV(env);
4267 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4268 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4274 HReg res = newVRegV(env);
4275 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4276 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4310 HReg res = newVRegV(env);
4311 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4312 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4328 HReg res = newVRegV(env);
4329 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4330 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4337 HReg res = newVRegV(env);
4338 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4339 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4346 HReg res = newVRegV(env);
4347 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4348 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4360 HReg tmp = newVRegV(env);
4361 HReg res = newVRegV(env);
4362 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4363 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4400 HReg tmp = newVRegV(env);
4401 HReg res = newVRegV(env);
4402 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4403 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4440 HReg tmp = newVRegV(env);
4441 HReg res = newVRegV(env);
4442 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4443 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4478 HReg res = newVRegV(env);
4479 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4480 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4499 HReg res = newVRegV(env);
4500 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4501 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4520 HReg res = newVRegV(env);
4521 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4522 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4538 HReg res = newVRegV(env);
4539 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4540 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4550 HReg res = newVRegV(env);
4551 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4552 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4571 HReg res = newVRegV(env);
4572 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4573 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4591 HReg res = newVRegV(env);
4592 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4593 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4608 HReg res = newVRegV(env);
4609 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4610 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);
4660 HReg res = newVRegV(env);
4661 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4662 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4663 HReg argR2 = newVRegV(env);
4664 HReg zero = newVRegV(env);
4684 HReg res = newVRegV(env);
4685 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4686 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4703 HReg res = newVRegV(env);
4704 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4705 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4706 HReg argR2 = newVRegV(env);
4707 HReg zero = newVRegV(env);
4727 HReg res = newVRegV(env);
4728 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4729 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4746 HReg res = newVRegV(env);
4747 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4748 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4765 HReg res = newVRegV(env);
4766 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4767 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4784 HReg res = newVRegV(env);
4785 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4808 HReg res = newVRegV(env);
4809 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4832 HReg res = newVRegV(env);
4833 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4856 HReg res = newVRegV(env);
4857 HReg tmp = newVRegV(env);
4858 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4859 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4860 HReg argR2 = newVRegI(env);
4880 HReg res = newVRegV(env);
4881 HReg tmp = newVRegV(env);
4882 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4883 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4901 HReg res = newVRegV(env);
4902 HReg tmp = newVRegV(env);
4903 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4904 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4905 HReg argR2 = newVRegI(env);
4923 HReg res = newVRegV(env);
4924 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4925 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4940 HReg res = newVRegV(env);
4941 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4942 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
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);
4989 HReg res = newVRegV(env);
4990 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4991 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5000 HReg res = newVRegV(env);
5001 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5002 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5018 HReg res = newVRegV(env);
5019 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5020 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5035 HReg res = newVRegV(env);
5036 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5037 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5051 HReg res = newVRegV(env);
5052 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5053 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5067 HReg res = newVRegV(env);
5068 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5069 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5081 HReg res = newVRegV(env);
5082 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5083 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5090 HReg res = newVRegV(env);
5091 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5092 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5098 HReg res = newVRegV(env);
5099 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5100 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5106 HReg res = newVRegV(env);
5107 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5108 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5114 HReg res = newVRegV(env);
5115 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5116 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5122 HReg res = newVRegV(env);
5123 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5124 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5130 HReg res = newVRegV(env);
5131 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5132 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5138 HReg res = newVRegV(env);
5139 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5140 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5147 HReg res = newVRegV(env);
5148 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5149 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5159 HReg res = newVRegV(env);
5160 HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1);
5186 HReg res = newVRegV(env);
5187 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5214 HReg res = newVRegV(env);
5215 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5216 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5237 HReg res = newVRegV(env);
5238 HReg argL = iselNeonExpr(env, e->Iex.Triop.arg1);
5239 HReg argR = iselNeonExpr(env, e->Iex.Triop.arg2);
5261 HReg r8;
5262 HReg rX = iselNeonExpr(env, e->Iex.Mux0X.exprX);
5263 HReg r0 = iselNeonExpr(env, e->Iex.Mux0X.expr0);
5264 HReg dst = newVRegV(env);
5287 static HReg iselDblExpr ( ISelEnv* env, IRExpr* e )
5289 HReg r = iselDblExpr_wrk( env, e );
5299 static HReg iselDblExpr_wrk ( ISelEnv* env, IRExpr* e )
5313 HReg z32 = newVRegI(env);
5314 HReg dst = newVRegD(env);
5323 HReg res = newVRegD(env);
5334 HReg res = newVRegD(env);
5345 HReg srcHi, srcLo;
5346 HReg dst = newVRegD(env);
5353 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5354 HReg dst = newVRegD(env);
5359 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5360 HReg dst = newVRegD(env);
5365 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5366 HReg dst = newVRegD(env);
5372 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5373 HReg f32 = newVRegF(env);
5374 HReg dst = newVRegD(env);
5392 HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
5393 HReg dst = newVRegD(env);
5409 HReg argL = iselDblExpr(env, e->Iex.Triop.arg2);
5410 HReg argR = iselDblExpr(env, e->Iex.Triop.arg3);
5411 HReg dst = newVRegD(env);
5430 HReg r8;
5431 HReg rX = iselDblExpr(env, e->Iex.Mux0X.exprX);
5432 HReg r0 = iselDblExpr(env, e->Iex.Mux0X.expr0);
5433 HReg dst = newVRegD(env);
5457 static HReg iselFltExpr ( ISelEnv* env, IRExpr* e )
5459 HReg r = iselFltExpr_wrk( env, e );
5469 static HReg iselFltExpr_wrk ( ISelEnv* env, IRExpr* e )
5481 HReg res = newVRegF(env);
5492 HReg res = newVRegF(env);
5500 HReg dst = newVRegF(env);
5501 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5506 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5507 HReg dst = newVRegF(env);
5512 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5513 HReg dst = newVRegF(env);
5526 HReg src = iselFltExpr(env, e->Iex.Binop.arg2);
5527 HReg dst = newVRegF(env);
5532 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
5534 HReg valS = newVRegF(env);
5552 HReg argL = iselFltExpr(env, e->Iex.Triop.arg2);
5553 HReg argR = iselFltExpr(env, e->Iex.Triop.arg3);
5554 HReg dst = newVRegF(env);
5573 HReg r8;
5574 HReg rX = iselFltExpr(env, e->Iex.Mux0X.exprX);
5575 HReg r0 = iselFltExpr(env, e->Iex.Mux0X.expr0);
5576 HReg dst = newVRegF(env);
5615 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5621 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5628 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5635 HReg dD = iselNeon64Expr(env, stmt->Ist.Store.data);
5639 HReg rDhi, rDlo, rA;
5650 HReg dD = iselDblExpr(env, stmt->Ist.Store.data);
5656 HReg fD = iselFltExpr(env, stmt->Ist.Store.data);
5662 HReg qD = iselNeonExpr(env, stmt->Ist.Store.data);
5677 HReg rD = iselIntExpr_R(env, stmt->Ist.Put.data);
5684 HReg addr = newVRegI(env);
5685 HReg qD = iselNeon64Expr(env, stmt->Ist.Put.data);
5690 HReg rDhi, rDlo;
5705 HReg rD = iselDblExpr(env, stmt->Ist.Put.data);
5713 HReg rD = iselFltExpr(env, stmt->Ist.Put.data);
5718 HReg addr = newVRegI(env);
5719 HReg qD = iselNeonExpr(env, stmt->Ist.Put.data);
5739 //zz HReg reg = iselIntExpr_R(env, stmt->Ist.PutI.data);
5756 HReg dst = lookupIRTemp(env, tmp);
5761 HReg dst = lookupIRTemp(env, tmp);
5769 HReg src = iselNeon64Expr(env, stmt->Ist.WrTmp.data);
5770 HReg dst = lookupIRTemp(env, tmp);
5773 HReg rHi, rLo, dstHi, dstLo;
5782 HReg src = iselDblExpr(env, stmt->Ist.WrTmp.data);
5783 HReg dst = lookupIRTemp(env, tmp);
5788 HReg src = iselFltExpr(env, stmt->Ist.WrTmp.data);
5789 HReg dst = lookupIRTemp(env, tmp);
5794 HReg src = iselNeonExpr(env, stmt->Ist.WrTmp.data);
5795 HReg dst = lookupIRTemp(env, tmp);
5828 HReg tmp = lookupIRTemp(env, d->tmp);
5832 HReg dstHi, dstLo;
5844 HReg dst = lookupIRTemp(env, d->tmp);
5860 HReg r_dst = lookupIRTemp(env, res);
5861 HReg raddr = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5874 HReg raddr = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5882 HReg dst = lookupIRTemp(env, res);
5886 HReg r_dst_hi, r_dst_lo;
5900 HReg rD = iselIntExpr_R(env, stmt->Ist.LLSC.storedata);
5901 HReg rA = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5918 HReg rDhi, rDlo;
5920 HReg rA = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
5931 HReg r_res = lookupIRTemp(env, res);
5967 HReg gnext;
5992 HReg rDst;
6017 HReg hreg, hregHI;
6038 /* Make up an IRTemp -> virtual HReg mapping. This doesn't
6041 env->vregmap = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
6042 env->vregmapHI = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
6048 hregHI = hreg = INVALID_HREG;
6053 case Ity_I32: hreg = mkHReg(j++, HRcInt32, True); break;
6056 hreg = mkHReg(j++, HRcFlt64, True);
6059 hreg = mkHReg(j++, HRcInt32, True);
6062 case Ity_F32: hreg = mkHReg(j++, HRcFlt32, True); break;
6063 case Ity_F64: hreg = mkHReg(j++, HRcFlt64, True); break;
6064 case Ity_V128: hreg = mkHReg(j++, HRcVec128, True); break;
6068 env->vregmap[i] = hreg;