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);
395 HReg argregs[ARM_N_ARGREGS];
396 HReg tmpregs[ARM_N_ARGREGS];
557 HReg raHi, raLo;
606 HReg raHi, raLo;
787 HReg reg;
798 HReg reg = iselIntExpr_R(env, e);
853 HReg reg;
864 HReg reg = iselIntExpr_R(env, e);
905 HReg reg;
916 HReg reg = iselIntExpr_R(env, e);
931 HReg reg = iselIntExpr_R(env, e);
996 HReg r = iselIntExpr_R ( env, e );
1045 HReg r = iselIntExpr_R ( env, e );
1071 HReg rTmp = lookupIRTemp(env, e->Iex.RdTmp.tmp);
1088 HReg rTmp = iselIntExpr_R(env, e->Iex.Unop.arg);
1098 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1108 HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
1118 HReg tHi, tLo;
1119 HReg tmp = newVRegI(env);
1135 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1153 HReg r;
1181 static HReg iselIntExpr_R ( ISelEnv* env, IRExpr* e )
1183 HReg r = iselIntExpr_R_wrk(env, e);
1194 static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e )
1208 HReg dst = newVRegI(env);
1240 //zz HReg junk = newVRegF(env);
1241 //zz HReg dst = newVRegI(env);
1242 //zz HReg srcL = iselDblExpr(env, triop->arg2);
1243 //zz HReg srcR = iselDblExpr(env, triop->arg3);
1272 HReg dst = newVRegI(env);
1273 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1285 HReg dst = newVRegI(env);
1286 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1301 HReg dst = newVRegI(env);
1302 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1313 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1314 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1315 HReg dst = newVRegI(env);
1326 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1327 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1328 HReg dst = newVRegI(env);
1337 HReg dL = iselDblExpr(env, e->Iex.Binop.arg1);
1338 HReg dR = iselDblExpr(env, e->Iex.Binop.arg2);
1339 HReg dst = newVRegI(env);
1360 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
1363 HReg valF = newVRegF(env);
1368 HReg dst = newVRegI(env);
1376 HReg res = newVRegI(env);
1377 HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1);
1401 HReg res = newVRegI(env);
1402 HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1);
1481 HReg regL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1482 HReg regR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1483 HReg res = newVRegI(env);
1505 //zz HReg dst = newVRegI(env);
1506 //zz HReg src = iselIntExpr_R(env, expr32);
1521 //zz HReg dst = newVRegI(env);
1535 //zz HReg dst = newVRegI(env);
1549 //zz HReg dst = newVRegI(env);
1559 //zz HReg dst;
1573 //zz HReg dst;
1586 HReg dst = newVRegI(env);
1587 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1595 //zz HReg dst = newVRegI(env);
1596 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1606 HReg dst = newVRegI(env);
1607 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1615 HReg dst = newVRegI(env);
1616 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1625 HReg dst = newVRegI(env);
1626 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1631 HReg rHi, rLo;
1636 HReg rHi, rLo;
1641 HReg rHi, rLo;
1643 HReg tHi = newVRegI(env);
1644 HReg tLo = newVRegI(env);
1645 HReg tmp = iselNeon64Expr(env, e->Iex.Unop.arg);
1661 HReg dst = lookupIRTemp(env, e->Iex.Unop.arg->Iex.RdTmp.tmp);
1666 HReg dst = newVRegI(env);
1674 HReg dst = newVRegI(env);
1692 //zz HReg dst = newVRegI(env);
1701 //zz HReg dst = newVRegI(env);
1702 //zz HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1708 HReg dst = newVRegI(env);
1709 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1715 HReg dst = newVRegI(env);
1716 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1724 HReg dst = newVRegI(env);
1725 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
1732 //zz HReg dst = newVRegI(env);
1733 //zz HReg vec = iselVecExpr(env, e->Iex.Unop.arg);
1743 HReg dst = newVRegI(env);
1744 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
1772 HReg arg = iselIntExpr_R(env, e->Iex.Unop.arg);
1773 HReg res = newVRegI(env);
1789 HReg dst = newVRegI(env);
1797 //zz HReg dst = newVRegI(env);
1813 //zz HReg dst = newVRegI(env);
1827 HReg dst = newVRegI(env);
1857 HReg dst = newVRegI(env);
1873 HReg r1 = iselIntExpr_R(env, e->Iex.ITE.iftrue);
1875 HReg dst = newVRegI(env);
1902 static void iselInt64Expr ( HReg* rHi, HReg* rLo, ISelEnv* env, IRExpr* e )
1915 static void iselInt64Expr_wrk ( HReg* rHi, HReg* rLo, ISelEnv* env, IRExpr* e )
1925 HReg tHi = newVRegI(env);
1926 HReg tLo = newVRegI(env);
1938 HReg tHi = newVRegI(env);
1939 HReg tLo = newVRegI(env);
1940 HReg tmp = iselNeon64Expr(env, e);
1952 HReg tLo, tHi, rA;
1970 HReg tHi = newVRegI(env);
1971 HReg tLo = newVRegI(env);
1986 HReg argL = iselIntExpr_R(env, e->Iex.Binop.arg1);
1987 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
1988 HReg tHi = newVRegI(env);
1989 HReg tLo = newVRegI(env);
2003 HReg xLo, xHi, yLo, yHi;
2004 HReg tHi = newVRegI(env);
2005 HReg tLo = newVRegI(env);
2016 HReg xLo, xHi, yLo, yHi;
2017 HReg tHi = newVRegI(env);
2018 HReg tLo = newVRegI(env);
2046 HReg dstHi = newVRegI(env);
2047 HReg dstLo = newVRegI(env);
2048 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
2057 HReg yLo, yHi;
2058 HReg tHi = newVRegI(env);
2059 HReg tLo = newVRegI(env);
2060 HReg zero = newVRegI(env);
2083 HReg srcLo, srcHi;
2084 HReg tmp1 = newVRegI(env);
2085 HReg tmp2 = newVRegI(env);
2103 HReg dst = newVRegI(env);
2126 HReg r1hi, r1lo, r0hi, r0lo, dstHi, dstLo;
2148 HReg tHi = newVRegI(env);
2149 HReg tLo = newVRegI(env);
2150 HReg tmp = iselNeon64Expr(env, e);
2166 static HReg iselNeon64Expr ( ISelEnv* env, IRExpr* e )
2168 HReg r = iselNeon64Expr_wrk( env, e );
2175 static HReg iselNeon64Expr_wrk ( ISelEnv* env, IRExpr* e )
2187 HReg rLo, rHi;
2188 HReg res = newVRegD(env);
2196 HReg res = newVRegD(env);
2205 HReg addr = newVRegI(env);
2206 HReg res = newVRegD(env);
2220 HReg rLo, rHi;
2221 HReg res = newVRegD(env);
2228 HReg res = newVRegD(env);
2229 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2230 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2236 HReg res = newVRegD(env);
2237 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2238 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2244 HReg res = newVRegD(env);
2245 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2246 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2254 HReg rHi = iselIntExpr_R(env, e->Iex.Binop.arg1);
2255 HReg rLo = iselIntExpr_R(env, e->Iex.Binop.arg2);
2256 HReg res = newVRegD(env);
2265 HReg res = newVRegD(env);
2266 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2267 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2281 HReg res = newVRegD(env);
2282 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2283 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2290 HReg res = newVRegD(env);
2291 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2292 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2299 HReg res = newVRegD(env);
2300 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2301 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2315 HReg rD = newVRegD(env);
2316 HReg rM = newVRegD(env);
2317 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2318 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2341 HReg rD = newVRegD(env);
2342 HReg rM = newVRegD(env);
2343 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2344 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2365 HReg rD = newVRegD(env);
2366 HReg rM = newVRegD(env);
2367 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2368 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2388 HReg res = newVRegD(env);
2389 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2390 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2407 HReg res = newVRegD(env);
2408 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2409 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2426 HReg res = newVRegD(env);
2427 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2428 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2442 HReg res = newVRegD(env);
2443 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2444 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2454 HReg res = newVRegD(env);
2455 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2456 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2473 HReg res = newVRegD(env);
2474 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2475 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2491 HReg res = newVRegD(env);
2492 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2493 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2508 HReg res = newVRegD(env);
2509 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2510 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2525 HReg res = newVRegD(env);
2526 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2527 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2542 HReg res = newVRegD(env);
2543 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2544 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2559 HReg res = newVRegD(env);
2560 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2561 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2562 HReg argR2 = newVRegD(env);
2563 HReg zero = newVRegD(env);
2583 HReg res = newVRegD(env);
2584 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2585 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2601 HReg res = newVRegD(env);
2602 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2603 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2604 HReg argR2 = newVRegD(env);
2605 HReg zero = newVRegD(env);
2623 HReg res = newVRegD(env);
2624 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2625 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2641 HReg res = newVRegD(env);
2642 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2643 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2660 HReg res = newVRegD(env);
2661 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2662 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2679 HReg res = newVRegD(env);
2680 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2703 HReg res = newVRegD(env);
2704 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2727 HReg res = newVRegD(env);
2728 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2751 HReg res = newVRegD(env);
2752 HReg tmp = newVRegD(env);
2753 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2754 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2755 HReg argR2 = newVRegI(env);
2774 HReg res = newVRegD(env);
2775 HReg tmp = newVRegD(env);
2776 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2789 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2808 HReg res = newVRegD(env);
2809 HReg tmp = newVRegD(env);
2810 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2811 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
2812 HReg argR2 = newVRegI(env);
2830 HReg res = newVRegD(env);
2831 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2832 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2847 HReg res = newVRegD(env);
2848 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2849 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2864 HReg res = newVRegD(env);
2865 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2866 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2881 HReg res = newVRegD(env);
2882 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2883 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2896 HReg res = newVRegD(env);
2897 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2898 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2906 HReg res = newVRegD(env);
2907 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2908 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2922 HReg res = newVRegD(env);
2923 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2924 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);
2954 HReg res = newVRegD(env);
2955 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2956 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2965 HReg res = newVRegD(env);
2966 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2967 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2982 HReg res = newVRegD(env);
2983 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
2984 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
2999 HReg res = newVRegD(env);
3000 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3001 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3016 HReg res = newVRegD(env);
3017 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3018 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3031 HReg res = newVRegD(env);
3032 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3033 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3039 HReg res = newVRegD(env);
3040 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3041 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3048 HReg res = newVRegD(env);
3049 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3050 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3056 HReg res = newVRegD(env);
3057 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3058 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3064 HReg res = newVRegD(env);
3065 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3066 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3072 HReg res = newVRegD(env);
3073 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3074 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3080 HReg res = newVRegD(env);
3081 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3082 HReg
3088 HReg res = newVRegD(env);
3089 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3090 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3096 HReg res = newVRegD(env);
3097 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3098 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
3107 HReg res = newVRegD(env);
3108 HReg arg = iselNeon64Expr(env, e->Iex.Binop.arg1);
3134 HReg res = newVRegD(env);
3135 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3171 HReg rLo = iselIntExpr_R(env, e->Iex.Unop.arg);
3172 HReg rHi = newVRegI(env);
3173 HReg res = newVRegD(env);
3181 HReg rLo = iselIntExpr_R(env, e->Iex.Unop.arg);
3182 HReg rHi = newVRegI(env);
3185 HReg res = newVRegD(env);
3197 HReg rLo, rHi;
3198 HReg res = newVRegD(env);
3233 HReg res = newVRegD(env);
3234 HReg arg = iselNeon64Expr(env, mi.bindee[0]);
3238 HReg res = newVRegD(env);
3239 HReg arg = iselNeon64Expr(env, mi.bindee[0]);
3243 HReg res = newVRegD(env);
3244 HReg arg = iselNeon64Expr(env, mi.bindee[0]);
3248 HReg res = newVRegD(env);
3249 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3250 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3255 HReg res = newVRegD(env);
3256 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3257 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3262 HReg res = newVRegD(env);
3263 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3264 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3269 HReg res = newVRegD(env);
3270 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3271 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3276 HReg res = newVRegD(env);
3277 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3278 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3283 HReg res = newVRegD(env);
3284 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3285 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3290 HReg res = newVRegD(env);
3291 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3299 HReg res, arg;
3382 HReg res = newVRegD(env);
3383 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3397 HReg res = newVRegD(env);
3398 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3412 HReg res = newVRegD(env);
3413 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3425 HReg res = newVRegD(env);
3426 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3433 HReg x_lsh = newVRegD(env);
3434 HReg x_rsh = newVRegD(env);
3435 HReg lsh_amt = newVRegD(env);
3436 HReg rsh_amt = newVRegD(env);
3437 HReg zero = newVRegD(env);
3438 HReg tmp = newVRegD(env);
3439 HReg tmp2 = newVRegD(env);
3440 HReg res = newVRegD(env);
3441 HReg x = newVRegD(env);
3442 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3462 HReg res = newVRegD(env);
3463 HReg tmp = newVRegD(env);
3464 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3479 HReg res = newVRegD(env);
3480 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3495 HReg res = newVRegD(env);
3496 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3511 HReg res = newVRegD(env);
3512 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3527 HReg res = newVRegD(env);
3528 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3543 HReg res = newVRegD(env);
3544 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3559 HReg res = newVRegD(env);
3560 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3573 HReg res = newVRegD(env);
3574 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3583 HReg res = newVRegD(env);
3584 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3599 HReg res = newVRegD(env);
3600 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3613 HReg res = newVRegD(env);
3614 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3620 HReg res = newVRegD(env);
3621 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3627 HReg res = newVRegD(env);
3628 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3634 HReg res = newVRegD(env);
3635 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3641 HReg res = newVRegD(env);
3642 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3648 HReg res = newVRegD(env);
3649 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3655 HReg res = newVRegD(env);
3656 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
3669 HReg res = newVRegD(env);
3670 HReg argL = iselNeon64Expr(env, mi.bindee[0]);
3671 HReg argR = iselNeon64Expr(env, mi.bindee[1]);
3676 HReg res = newVRegD(env);
3677 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3684 HReg res = newVRegD(env);
3685 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3691 HReg res = newVRegD(env);
3692 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3698 HReg res = newVRegD(env);
3699 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
3714 HReg res = newVRegD(env);
3715 HReg argL = iselNeon64Expr(env, triop->arg1);
3716 HReg argR = iselNeon64Expr(env, triop->arg2);
3735 HReg res = newVRegD(env);
3736 HReg dreg = iselNeon64Expr(env, triop->arg1);
3737 HReg arg = iselIntExpr_R(env, triop->arg3);
3765 HReg rLo, rHi;
3766 HReg res = newVRegD(env);
3776 static HReg iselNeonExpr ( ISelEnv* env, IRExpr* e )
3778 HReg r = iselNeonExpr_wrk( env, e );
3785 static HReg iselNeonExpr_wrk ( ISelEnv* env, IRExpr* e )
3802 HReg res = newVRegV(env);
3807 HReg res = newVRegV(env);
3816 HReg res = newVRegV(env);
3824 HReg addr = newVRegI(env);
3825 HReg res = newVRegV(env);
3863 HReg res = newVRegV(env);
3864 HReg arg = iselNeonExpr(env, mi.bindee[0]);
3868 HReg res = newVRegV(env);
3869 HReg arg = iselNeonExpr(env, mi.bindee[0]);
3873 HReg res = newVRegV(env);
3874 HReg arg = iselNeonExpr(env, mi.bindee[0]);
3878 HReg res = newVRegV(env);
3879 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3880 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3885 HReg res = newVRegV(env);
3886 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3887 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3892 HReg res = newVRegV(env);
3893 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3894 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3899 HReg res = newVRegV(env);
3900 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3901 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3906 HReg res = newVRegV(env);
3907 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3908 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3913 HReg res = newVRegV(env);
3914 HReg argL = iselNeonExpr(env, mi.bindee[0]);
3915 HReg argR = iselNeonExpr(env, mi.bindee[1]);
3920 HReg res = newVRegV(env);
3921 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
3929 HReg res, arg;
4012 HReg res = newVRegV(env);
4013 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4027 HReg res = newVRegV(env);
4028 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4042 HReg res = newVRegV(env);
4043 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4055 HReg res = newVRegV(env);
4056 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4063 HReg x_lsh = newVRegV(env);
4064 HReg x_rsh = newVRegV(env);
4065 HReg lsh_amt = newVRegV(env);
4066 HReg rsh_amt = newVRegV(env);
4067 HReg zero = newVRegV(env);
4068 HReg tmp = newVRegV(env);
4069 HReg tmp2 = newVRegV(env);
4070 HReg res = newVRegV(env);
4071 HReg x = newVRegV(env);
4072 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4092 HReg res = newVRegV(env);
4093 HReg tmp = newVRegV(env);
4094 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4109 HReg res = newVRegV(env);
4110 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4125 HReg res = newVRegV(env);
4126 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4141 HReg res = newVRegV(env);
4142 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4157 HReg res = newVRegV(env);
4158 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4171 HReg res = newVRegV(env);
4172 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4180 HReg res = newVRegV(env);
4181 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4195 HReg res = newVRegV(env);
4196 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4208 HReg res = newVRegV(env);
4209 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4215 HReg res = newVRegV(env);
4216 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4222 HReg res = newVRegV(env);
4223 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4229 HReg res = newVRegV(env);
4230 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4236 HReg res = newVRegV(env);
4237 HReg arg = iselNeon64Expr(env, e->Iex.Unop.arg);
4243 HReg res = newVRegV(env);
4244 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4250 HReg res = newVRegV(env);
4251 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4257 HReg res = newVRegV(env);
4258 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4264 HReg res = newVRegV(env);
4265 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4271 HReg res = newVRegV(env);
4272 HReg argL = iselNeonExpr(env, e->Iex.Unop.arg);
4278 HReg res = newVRegV(env);
4279 HReg arg = iselNeonExpr(env, e->Iex.Unop.arg);
4303 HReg res = newVRegV(env);
4309 HReg tmp1 = newVRegV(env);
4310 HReg tmp2 = newVRegV(env);
4311 HReg res = newVRegV(env);
4322 HReg tmp1 = newVRegV(env);
4323 HReg tmp2 = newVRegV(env);
4324 HReg res = newVRegV(env);
4340 HReg w3, w2, w1, w0;
4341 HReg res = newVRegV(env);
4376 HReg res = newVRegV(env);
4377 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4378 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4384 HReg res = newVRegV(env);
4385 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4386 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4392 HReg res = newVRegV(env);
4393 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4394 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4428 HReg res = newVRegV(env);
4429 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4430 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4446 HReg res = newVRegV(env);
4447 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4448 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4455 HReg res = newVRegV(env);
4456 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4457 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4471 HReg rD = newVRegV(env);
4472 HReg rM = newVRegV(env);
4473 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4474 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4499 HReg rD = newVRegV(env);
4500 HReg rM = newVRegV(env);
4501 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4502 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4527 HReg rD = newVRegV(env);
4528 HReg rM = newVRegV(env);
4529 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4530 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4552 HReg res = newVRegV(env);
4553 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4554 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);
4594 HReg res = newVRegV(env);
4595 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4596 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4615 HReg res = newVRegV(env);
4616 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4617 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4636 HReg res = newVRegV(env);
4637 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4638 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4656 HReg res = newVRegV(env);
4657 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4658 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4673 HReg res = newVRegV(env);
4674 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4675 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4690 HReg res = newVRegV(env);
4691 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4692 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4707 HReg res = newVRegV(env);
4708 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4709 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4725 HReg res = newVRegV(env);
4726 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4727 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4728 HReg argR2 = newVRegV(env);
4729 HReg zero = newVRegV(env);
4749 HReg res = newVRegV(env);
4750 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4751 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4768 HReg res = newVRegV(env);
4769 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4770 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4771 HReg argR2 = newVRegV(env);
4772 HReg zero = newVRegV(env);
4792 HReg res = newVRegV(env);
4793 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4794 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4811 HReg res = newVRegV(env);
4812 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4813 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4830 HReg res = newVRegV(env);
4831 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4832 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
4849 HReg res = newVRegV(env);
4850 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4873 HReg res = newVRegV(env);
4874 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4897 HReg res = newVRegV(env);
4898 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4921 HReg res = newVRegV(env);
4922 HReg tmp = newVRegV(env);
4923 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4924 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4925 HReg argR2 = newVRegI(env);
4945 HReg res = newVRegV(env);
4946 HReg tmp = newVRegV(env);
4947 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4948 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4966 HReg res = newVRegV(env);
4967 HReg tmp = newVRegV(env);
4968 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
4969 HReg argR = iselIntExpr_R(env, e->Iex.Binop.arg2);
4970 HReg argR2 = newVRegI(env);
4988 HReg res = newVRegV(env);
4989 HReg
4990 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5005 HReg res = newVRegV(env);
5006 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5007 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5022 HReg res = newVRegV(env);
5023 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5024 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5039 HReg res = newVRegV(env);
5040 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5041 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5056 HReg res = newVRegV(env);
5057 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5058 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5074 HReg res = newVRegV(env);
5075 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5076 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5091 HReg res = newVRegV(env);
5092 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5093 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5107 HReg res = newVRegV(env);
5108 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5109 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5123 HReg res = newVRegV(env);
5124 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5125 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5137 HReg res = newVRegV(env);
5138 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5139 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5146 HReg res = newVRegV(env);
5147 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5148 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5154 HReg res = newVRegV(env);
5155 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5156 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5162 HReg res = newVRegV(env);
5163 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5164 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5170 HReg res = newVRegV(env);
5171 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5172 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5178 HReg res = newVRegV(env);
5179 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5180 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5186 HReg res = newVRegV(env);
5187 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5188 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5194 HReg res = newVRegV(env);
5195 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5196 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5203 HReg res = newVRegV(env);
5204 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5205 HReg argR = iselNeon64Expr(env, e->Iex.Binop.arg2);
5215 HReg res = newVRegV(env);
5216 HReg arg = iselNeonExpr(env, e->Iex.Binop.arg1);
5242 HReg res = newVRegV(env);
5243 HReg argL = iselNeon64Expr(env, e->Iex.Binop.arg1);
5270 HReg res = newVRegV(env);
5271 HReg argL = iselNeonExpr(env, e->Iex.Binop.arg1);
5272 HReg argR = iselNeonExpr(env, e->Iex.Binop.arg2);
5295 HReg res = newVRegV(env);
5296 HReg argL = iselNeonExpr(env, triop->arg1);
5297 HReg argR = iselNeonExpr(env, triop->arg2);
5316 HReg res = newVRegV(env);
5317 HReg argL = iselNeonExpr(env, triop->arg2);
5318 HReg argR = iselNeonExpr(env, triop->arg3);
5337 HReg r1 = iselNeonExpr(env, e->Iex.ITE.iftrue);
5338 HReg r0 = iselNeonExpr(env, e->Iex.ITE.iffalse);
5339 HReg dst = newVRegV(env);
5360 static HReg iselDblExpr ( ISelEnv* env, IRExpr* e )
5362 HReg r = iselDblExpr_wrk( env, e );
5372 static HReg iselDblExpr_wrk ( ISelEnv* env, IRExpr* e )
5386 HReg z32 = newVRegI(env);
5387 HReg dst = newVRegD(env);
5396 HReg res = newVRegD(env);
5407 HReg res = newVRegD(env);
5418 HReg srcHi, srcLo;
5419 HReg dst = newVRegD(env);
5426 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5427 HReg dst = newVRegD(env);
5432 HReg src = iselDblExpr(env, e->Iex.Unop.arg);
5433 HReg dst = newVRegD(env);
5438 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5439 HReg dst = newVRegD(env);
5445 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5446 HReg f32 = newVRegF(env);
5447 HReg dst = newVRegD(env);
5465 HReg src = iselDblExpr(env, e->Iex.Binop.arg2);
5466 HReg dst = newVRegD(env);
5484 HReg argL = iselDblExpr(env, triop->arg2);
5485 HReg argR = iselDblExpr(env, triop->arg3);
5486 HReg dst = newVRegD(env);
5505 HReg r1 = iselDblExpr(env, e->Iex.ITE.iftrue);
5506 HReg r0 = iselDblExpr(env, e->Iex.ITE.iffalse);
5507 HReg dst = newVRegD(env);
5529 static HReg iselFltExpr ( ISelEnv* env, IRExpr* e )
5531 HReg r = iselFltExpr_wrk( env, e );
5541 static HReg iselFltExpr_wrk ( ISelEnv* env, IRExpr* e )
5553 HReg res = newVRegF(env);
5564 HReg res = newVRegF(env);
5572 HReg dst = newVRegF(env);
5573 HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
5578 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5579 HReg dst = newVRegF(env);
5584 HReg src = iselFltExpr(env, e->Iex.Unop.arg);
5585 HReg dst = newVRegF(env);
5598 HReg src = iselFltExpr(env, e->Iex.Binop.arg2);
5599 HReg dst = newVRegF(env);
5604 HReg valD = iselDblExpr(env, e->Iex.Binop.arg2);
5606 HReg valS = newVRegF(env);
5626 HReg argL = iselFltExpr(env, triop->arg2);
5627 HReg argR = iselFltExpr(env, triop->arg3);
5628 HReg dst = newVRegF(env);
5648 HReg r1 = iselFltExpr(env, e->Iex.ITE.iftrue);
5649 HReg r0 = iselFltExpr(env, e->Iex.ITE.iffalse);
5650 HReg dst = newVRegF(env);
5687 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5693 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5701 HReg rD = iselIntExpr_R(env, stmt->Ist.Store.data);
5708 HReg dD = iselNeon64Expr(env, stmt->Ist.Store.data);
5712 HReg rDhi, rDlo, rA;
5723 HReg dD = iselDblExpr(env, stmt->Ist.Store.data);
5729 HReg fD = iselFltExpr(env, stmt->Ist.Store.data);
5735 HReg qD = iselNeonExpr(env, stmt->Ist.Store.data);
5758 HReg rD = iselIntExpr_R(env, sg->data);
5766 HReg rD = iselIntExpr_R(env, sg->data);
5793 HReg rAlt = iselIntExpr_R(env, lg->alt);
5795 HReg rD = lookupIRTemp(env, lg->dst);
5806 HReg rAlt = iselIntExpr_R(env, lg->alt);
5808 HReg rD = lookupIRTemp(env, lg->dst);
5832 HReg rD = iselIntExpr_R(env, stmt->Ist.Put.data);
5839 HReg addr = newVRegI(env);
5840 HReg qD = iselNeon64Expr(env, stmt->Ist.Put.data);
5845 HReg rDhi, rDlo;
5862 HReg rD = iselDblExpr(env, stmt->Ist.Put.data);
5870 HReg rD = iselFltExpr(env, stmt->Ist.Put.data);
5875 HReg addr = newVRegI(env);
5876 HReg qD = iselNeonExpr(env, stmt->Ist.Put.data);
5894 HReg dst = lookupIRTemp(env, tmp);
5906 HReg dst = lookupIRTemp(env, tmp);
5914 HReg src = iselNeon64Expr(env, stmt->Ist.WrTmp.data);
5915 HReg dst = lookupIRTemp(env, tmp);
5918 HReg rHi, rLo, dstHi, dstLo;
5927 HReg src = iselDblExpr(env, stmt->Ist.WrTmp.data);
5928 HReg dst = lookupIRTemp(env, tmp);
5933 HReg src = iselFltExpr(env, stmt->Ist.WrTmp.data);
5934 HReg dst = lookupIRTemp(env, tmp);
5939 HReg src = iselNeonExpr(env, stmt->Ist.WrTmp.data);
5940 HReg dst = lookupIRTemp(env, tmp);
5990 HReg tmp = lookupIRTemp(env, d->tmp);
5994 HReg dstHi, dstLo;
6008 HReg dst = lookupIRTemp(env, d->tmp);
6026 HReg dst = lookupIRTemp(env, d->tmp);
6027 HReg tmp = newVRegI(env);
6028 HReg r13 = hregARM_R13(); // sp
6052 HReg r_dst = lookupIRTemp(env, res);
6053 HReg raddr = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
6066 HReg raddr = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
6074 HReg dst = lookupIRTemp(env, res);
6078 HReg r_dst_hi, r_dst_lo;
6092 HReg rD = iselIntExpr_R(env, stmt->Ist.LLSC.storedata);
6093 HReg rA = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
6110 HReg rDhi, rDlo;
6112 HReg rA = iselIntExpr_R(env, stmt->Ist.LLSC.addr);
6123 HReg r_res = lookupIRTemp(env, res);
6183 HReg r = iselIntExpr_R(env, IRExpr_Const(stmt->Ist.Exit.dst));
6199 HReg r = iselIntExpr_R(env, IRExpr_Const(stmt->Ist.Exit.dst));
6256 HReg r = iselIntExpr_R(env, next);
6267 HReg r = iselIntExpr_R(env, next);
6291 HReg r = iselIntExpr_R(env, next);
6326 HReg hreg, hregHI;
6350 /* Make up an IRTemp -> virtual HReg mapping. This doesn't
6353 env->vregmap = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
6354 env->vregmapHI = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
6365 hregHI = hreg = INVALID_HREG;
6370 case Ity_I32: hreg = mkHReg(j++, HRcInt32, True); break;
6373 hreg = mkHReg(j++, HRcFlt64, True);
6376 hreg = mkHReg(j++, HRcInt32, True);
6379 case Ity_F32: hreg = mkHReg(j++, HRcFlt32, True); break;
6380 case Ity_F64: hreg = mkHReg(j++, HRcFlt64, True); break;
6381 case Ity_V128: hreg = mkHReg(j++, HRcVec128, True); break;
6385 env->vregmap[i] = hreg;