Home | History | Annotate | Download | only in priv

Lines Matching refs:HReg

221    - A mapping from IRTemp to HReg.  This tells the insn selector
271 HReg* vregmapLo; // Low 64-bits [63:0] Low 32-bits [31:0]
272 HReg* vregmapMedLo; // high 64-bits[127:64] Next 32-bits [63:32]
273 HReg* vregmapMedHi; // unused Next 32-bits [95:64]
274 HReg* vregmapHi; // unused highest 32-bits [127:96]
296 static HReg lookupIRTemp ( ISelEnv* env, IRTemp tmp )
303 static void lookupIRTempPair ( HReg* vrHI, HReg* vrLO,
314 static void lookupIRTempQuad ( HReg* vrHi, HReg* vrMedHi, HReg* vrMedLo,
315 HReg* vrLo, ISelEnv* env, IRTemp tmp )
336 static HReg newVRegI ( ISelEnv* env )
338 HReg reg = mkHReg(env->vreg_ctr, HRcGPR(env->mode64),
344 static HReg newVRegF ( ISelEnv* env )
346 HReg reg = mkHReg(env->vreg_ctr, HRcFlt64, True/*virtual reg*/);
351 static HReg newVRegV ( ISelEnv* env )
353 HReg reg = mkHReg(env->vreg_ctr, HRcVec128, True/*virtual reg*/);
376 static HReg iselWordExpr_R_wrk ( ISelEnv* env, IRExpr* e );
377 static HReg iselWordExpr_R ( ISelEnv* env, IRExpr* e );
424 static void iselInt128Expr_to_32x4_wrk ( HReg* rHi, HReg* rMedHi,
425 HReg* rMedLo, HReg* rLo,
427 static void iselInt128Expr_to_32x4 ( HReg* rHi, HReg* rMedHi,
428 HReg* rMedLo, HReg* rLo,
433 static void iselInt64Expr_wrk ( HReg* rHi, HReg* rLo,
435 static void iselInt64Expr ( HReg* rHi, HReg* rLo,
439 static void iselInt128Expr_wrk ( HReg* rHi, HReg* rLo,
441 static void iselInt128Expr ( HReg* rHi, HReg* rLo,
447 static HReg iselDblExpr_wrk ( ISelEnv* env, IRExpr* e );
448 static HReg iselDblExpr ( ISelEnv* env, IRExpr* e );
450 static HReg iselFltExpr_wrk ( ISelEnv* env, IRExpr* e );
451 static HReg iselFltExpr ( ISelEnv* env, IRExpr* e );
453 static HReg iselVecExpr_wrk ( ISelEnv* env, IRExpr* e );
454 static HReg iselVecExpr ( ISelEnv* env, IRExpr* e );
457 static HReg iselDfp64Expr_wrk ( ISelEnv* env, IRExpr* e );
458 static HReg iselDfp64Expr ( ISelEnv* env, IRExpr* e );
461 static void iselDfp128Expr_wrk ( HReg* rHi, HReg* rLo, ISelEnv* env,
463 static void iselDfp128Expr ( HReg* rHi, HReg* rLo, ISelEnv* env,
472 static PPCInstr* mk_iMOVds_RR ( HReg r_dst, HReg r_src )
484 HReg sp = StackFramePtr(env->mode64);
492 HReg sp = StackFramePtr(env->mode64);
504 static HReg get_sp_aligned16 ( ISelEnv* env )
506 HReg r = newVRegI(env);
507 HReg align16 = newVRegI(env);
522 static HReg mk_LoadRR32toFPR ( ISelEnv* env,
523 HReg r_srcHi, HReg r_srcLo )
525 HReg fr_dst = newVRegF(env);
548 static HReg mk_LoadR64toFPR ( ISelEnv* env, HReg r_src )
550 HReg fr_dst = newVRegF(env);
593 HReg rtmp, roff;
678 HReg argregs[PPC_N_REGPARMS];
679 HReg tmpregs[PPC_N_REGPARMS];
815 HReg rHi, rLo;
859 HReg rHi, rLo;
917 // HReg fr_src = newVRegF(env);
918 // HReg r_src = newVRegI(env);
935 static HReg roundModeIRtoPPC ( ISelEnv* env, HReg r_rmIR )
950 HReg r_rmPPC = newVRegI(env);
951 HReg r_tmp1 = newVRegI(env);
952 HReg r_tmp2 = newVRegI(env);
1007 HReg fr_src = newVRegF(env);
1008 HReg r_src;
1034 HReg r_tmp1 = newVRegI( env );
1044 HReg r_zero = newVRegI( env );
1073 static HReg generate_zeroes_V128 ( ISelEnv* env )
1075 HReg dst = newVRegV(env);
1082 static HReg generate_ones_V128 ( ISelEnv* env )
1084 HReg dst = newVRegV(env);
1098 static HReg mk_AvDuplicateRI( ISelEnv* env, IRExpr* e )
1100 HReg r_src;
1101 HReg dst = newVRegV(env);
1115 HReg v1 = newVRegV(env);
1116 HReg v2 = newVRegV(env);
1126 HReg v1 = newVRegV(env);
1127 HReg v2 = newVRegV(env);
1154 HReg r_aligned16;
1155 HReg v_src = newVRegV(env);
1178 static HReg isNan ( ISelEnv* env, HReg vSrc )
1180 HReg zeros, msk_exp, msk_mnt, expt, mnts, vIsNan;
1222 static HReg iselWordExpr_R ( ISelEnv* env, IRExpr* e )
1224 HReg r = iselWordExpr_R_wrk(env, e);
1236 static HReg iselWordExpr_R_wrk ( ISelEnv* env, IRExpr* e )
1254 HReg r_dst;
1289 HReg r_dst = newVRegI(env);
1290 HReg r_srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
1322 HReg r_dst = newVRegI(env);
1323 HReg r_srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
1341 HReg tmp = newVRegI(env);
1371 HReg r_dst = newVRegI(env);
1372 HReg r_srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
1373 HReg r_srcR = iselWordExpr_R(env, e->Iex.Binop.arg2);
1389 HReg r_dst = newVRegI(env);
1390 HReg r_srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
1391 HReg r_srcR = iselWordExpr_R(env, e->Iex.Binop.arg2);
1411 HReg r_dst = newVRegI(env);
1412 HReg r_srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
1413 HReg r_srcR = iselWordExpr_R(env, e->Iex.Binop.arg2);
1423 HReg tLo = newVRegI(env);
1424 HReg tHi = newVRegI(env);
1425 HReg r_dst = newVRegI(env);
1427 HReg r_srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
1428 HReg r_srcR = iselWordExpr_R(env, e->Iex.Binop.arg2);
1446 HReg dst = newVRegI(env);
1447 HReg srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
1460 HReg dst = newVRegI(env);
1461 HReg srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
1473 HReg r1 = iselWordExpr_R(env, e->Iex.Binop.arg1);
1474 HReg r2 = iselWordExpr_R(env, e->Iex.Binop.arg2);
1475 HReg rdst = newVRegI(env);
1485 HReg r_Hi = iselWordExpr_R(env, e->Iex.Binop.arg1);
1486 HReg r_Lo = iselWordExpr_R(env, e->Iex.Binop.arg2);
1487 HReg r_dst = newVRegI(env);
1488 HReg msk = newVRegI(env);
1504 HReg fr_srcL;
1505 HReg fr_srcL_lo;
1506 HReg fr_srcR;
1507 HReg fr_srcR_lo;
1509 HReg r_ccPPC = newVRegI(env);
1510 HReg r_ccIR = newVRegI(env);
1511 HReg r_ccIR_b0 = newVRegI(env);
1512 HReg r_ccIR_b2 = newVRegI(env);
1513 HReg r_ccIR_b6 = newVRegI(env);
1582 HReg r1 = StackFramePtr(env->mode64);
1584 HReg fsrc = iselDblExpr(env, e->Iex.Binop.arg2);
1585 HReg ftmp = newVRegF(env);
1586 HReg idst = newVRegI(env);
1613 HReg r1 = StackFramePtr(env->mode64);
1615 HReg fsrc = iselDblExpr(env, e->Iex.Binop.arg2);
1616 HReg idst = newVRegI(env);
1617 HReg ftmp = newVRegF(env);
1649 HReg r_dst = newVRegI(env);
1650 HReg r_src = iselWordExpr_R(env, expr32);
1663 HReg r_dst = newVRegI(env);
1677 HReg r_dst = newVRegI(env);
1678 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1686 HReg r_dst = newVRegI(env);
1687 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1700 HReg r_dst = newVRegI(env);
1701 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1713 HReg r_dst = newVRegI(env);
1714 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1726 HReg r_dst = newVRegI(env);
1727 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1741 HReg r_dst = newVRegI(env);
1742 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1748 HReg rHi, rLo;
1752 HReg r_dst = newVRegI(env);
1753 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1762 HReg rHi, rLo;
1778 HReg r_dst = newVRegI(env);
1779 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1788 HReg rHi, rLo;
1795 HReg rHi, rLo;
1804 HReg r_dst = newVRegI(env);
1814 HReg r_dst = newVRegI(env);
1828 HReg r_dst = newVRegI(env);
1840 HReg r_src, r_dst;
1855 HReg r_src, r_dst;
1866 HReg r_dst = newVRegI(env);
1867 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1876 HReg r_dst = newVRegI(env);
1877 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
1887 HReg r_aligned16;
1888 HReg dst = newVRegI(env);
1889 HReg vec = iselVecExpr(env, e->Iex.Unop.arg);
1911 HReg r_aligned16;
1912 HReg dst = newVRegI(env);
1913 HReg vec = iselVecExpr(env, e->Iex.Unop.arg);
1948 HReg fr_src = iselDblExpr(env, e->Iex.Unop.arg);
1949 HReg r_dst = newVRegI(env);
1972 HReg fr_src = iselFltExpr(env, e->Iex.Unop.arg);
1973 HReg r_dst = newVRegI(env);
1992 HReg fr_src = iselDfp64Expr(env, e->Iex.Unop.arg);
1993 HReg r_dst = newVRegI(env);
2011 HReg argregs[1];
2012 HReg r_dst = newVRegI(env);
2036 HReg argregs[1];
2037 HReg r_dst = newVRegI(env);
2068 HReg r_dst = newVRegI(env);
2082 HReg r_dst = newVRegI(env);
2098 HReg r_dst = newVRegI(env);
2119 HReg r_dst = newVRegI(env);
2139 HReg r_cond = iselWordExpr_R(env, e->Iex.Mux0X.cond);
2140 HReg rX = iselWordExpr_R(env, e->Iex.Mux0X.exprX);
2142 HReg r_dst = newVRegI(env);
2143 HReg r_tmp = newVRegI(env);
2264 HReg r_base = iselWordExpr_R(env, e->Iex.Binop.arg1);
2265 HReg r_idx = iselWordExpr_R(env, e->Iex.Binop.arg2);
2287 HReg r_base = iselWordExpr_R(env, e->Iex.Binop.arg1);
2288 HReg r_idx = iselWordExpr_R(env, e->Iex.Binop.arg2);
2526 HReg r_zero = newVRegI(env);
2546 HReg src = iselWordExpr_R(env, e->Iex.Unop.arg);
2547 HReg tmp = newVRegI(env);
2562 HReg arg = iselWordExpr_R(env, e->Iex.Unop.arg);
2563 HReg tmp = newVRegI(env);
2576 HReg r1 = iselWordExpr_R(env, e->Iex.Unop.arg);
2594 HReg r1 = iselWordExpr_R(env, e->Iex.Binop.arg1);
2616 HReg hi, lo;
2617 HReg tmp = newVRegI(env);
2624 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
2643 HReg r1 = iselWordExpr_R(env, e->Iex.Binop.arg1);
2660 HReg r_src = lookupIRTemp(env, e->Iex.RdTmp.tmp);
2661 HReg src_masked = newVRegI(env);
2687 static void iselInt128Expr ( HReg* rHi, HReg* rLo,
2702 static void iselInt128Expr_wrk ( HReg* rHi, HReg* rLo,
2720 HReg tLo = newVRegI(env);
2721 HReg tHi = newVRegI(env);
2723 HReg r_srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
2724 HReg r_srcR = iselWordExpr_R(env, e->Iex.Binop.arg2);
2766 static void iselInt128Expr_to_32x4 ( HReg* rHi, HReg* rMedHi, HReg* rMedLo,
2767 HReg* rLo, ISelEnv* env, IRExpr* e )
2784 static void iselInt128Expr_to_32x4_wrk ( HReg* rHi, HReg* rMedHi,
2785 HReg* rMedLo, HReg* rLo,
2822 static void iselInt64Expr ( HReg* rHi, HReg* rLo,
2837 static void iselInt64Expr_wrk ( HReg* rHi, HReg* rLo,
2845 HReg tLo = newVRegI(env);
2846 HReg tHi = newVRegI(env);
2847 HReg r_addr = iselWordExpr_R(env, e->Iex.Load.addr);
2865 HReg tLo = newVRegI(env);
2866 HReg tHi = newVRegI(env);
2886 HReg tLo = newVRegI(env);
2887 HReg tHi = newVRegI(env);
2897 HReg e0Lo, e0Hi, eXLo, eXHi;
2898 HReg tLo = newVRegI(env);
2899 HReg tHi = newVRegI(env);
2902 HReg r_cond = iselWordExpr_R(env, e->Iex.Mux0X.cond);
2903 HReg r_tmp = newVRegI(env);
2929 HReg tLo = newVRegI(env);
2930 HReg tHi = newVRegI(env);
2932 HReg r_srcL = iselWordExpr_R(env, e->Iex.Binop.arg1);
2933 HReg r_srcR = iselWordExpr_R(env, e->Iex.Binop.arg2);
2949 HReg xLo, xHi, yLo, yHi;
2950 HReg tLo = newVRegI(env);
2951 HReg tHi = newVRegI(env);
2965 HReg xLo, xHi, yLo, yHi;
2966 HReg tLo = newVRegI(env);
2967 HReg tHi = newVRegI(env);
2987 HReg tLo = newVRegI(env);
2988 HReg tHi = newVRegI(env);
2989 HReg r1 = StackFramePtr(env->mode64);
2992 HReg fsrc = iselDblExpr(env, e->Iex.Binop.arg2);
2993 HReg ftmp = newVRegF(env);
3027 HReg argHi, argLo;
3028 HReg tmp1 = newVRegI(env);
3029 HReg tmp2 = newVRegI(env);
3045 HReg argHi, argLo;
3046 HReg zero32 = newVRegI(env);
3047 HReg resHi = newVRegI(env);
3048 HReg resLo = newVRegI(env);
3067 HReg tHi = newVRegI(env);
3068 HReg src = iselWordExpr_R(env, e->Iex.Unop.arg);
3078 HReg tHi = newVRegI(env);
3079 HReg tLo = iselWordExpr_R(env, e->Iex.Unop.arg);
3089 HReg r_Hi = INVALID_HREG;
3090 HReg r_MedHi = INVALID_HREG;
3091 HReg r_MedLo = INVALID_HREG;
3092 HReg r_Lo = INVALID_HREG;
3104 HReg r_Hi = INVALID_HREG;
3105 HReg r_MedHi = INVALID_HREG;
3106 HReg r_MedLo = INVALID_HREG;
3107 HReg r_Lo = INVALID_HREG;
3119 HReg r_aligned16;
3121 HReg tLo = newVRegI(env);
3122 HReg tHi = newVRegI(env);
3123 HReg vec = iselVecExpr(env, e->Iex.Unop.arg);
3151 HReg tLo = newVRegI(env);
3152 HReg tHi = newVRegI(env);
3166 HReg xLo, xHi;
3167 HReg tmpLo = newVRegI(env);
3168 HReg tmpHi = newVRegI(env);
3182 HReg fr_src = iselDblExpr(env, e->Iex.Unop.arg);
3183 HReg r_dstLo = newVRegI(env);
3184 HReg r_dstHi = newVRegI(env);
3207 HReg fr_src = iselDfp64Expr(env, e->Iex.Unop.arg);
3209 HReg r_dstLo = newVRegI(env);
3210 HReg r_dstHi = newVRegI(env);
3237 HReg argregs[2];
3239 HReg tLo = newVRegI(env);
3240 HReg tHi = newVRegI(env);
3241 HReg tmpHi;
3242 HReg tmpLo;
3275 HReg argregs[2];
3277 HReg tLo = newVRegI(env);
3278 HReg tHi = newVRegI(env);
3279 HReg tmpHi;
3280 HReg tmpLo;
3329 static HReg iselFltExpr ( ISelEnv* env, IRExpr* e )
3331 HReg r = iselFltExpr_wrk( env, e );
3341 static HReg iselFltExpr_wrk ( ISelEnv* env, IRExpr* e )
3354 HReg r_dst = newVRegF(env);
3362 HReg r_dst = newVRegF(env);
3398 HReg fsrc = iselDblExpr(env, e->Iex.Unop.arg);
3399 HReg fdst = newVRegF(env);
3415 HReg fdst = newVRegF(env);
3416 HReg isrc = iselWordExpr_R(env, e->Iex.Binop.arg2);
3417 HReg r1 = StackFramePtr(env->mode64);
3438 HReg fdst = newVRegF(env);
3439 HReg isrcHi, isrcLo;
3440 HReg r1 = StackFramePtr(env->mode64);
3500 static HReg iselDblExpr ( ISelEnv* env, IRExpr* e )
3502 HReg r = iselDblExpr_wrk( env, e );
3512 static HReg iselDblExpr_wrk ( ISelEnv* env, IRExpr* e )
3541 HReg r_srcHi = newVRegI(env);
3542 HReg r_srcLo = newVRegI(env);
3547 HReg r_src = newVRegI(env);
3555 HReg r_dst = newVRegF(env);
3565 HReg r_dst = newVRegF(env);
3583 HReg r_dst = newVRegF(env);
3584 HReg r_srcML = iselDblExpr(env, e->Iex.Qop.details->arg2);
3585 HReg r_srcMR = iselDblExpr(env, e->Iex.Qop.details->arg3);
3586 HReg r_srcAcc = iselDblExpr(env, e->Iex.Qop.details->arg4);
3609 HReg r_dst = newVRegF(env);
3610 HReg
3611 HReg r_srcR = iselDblExpr(env, triop->arg3);
3622 HReg r_dst = newVRegF(env);
3623 HReg r_srcL = iselDblExpr(env, triop->arg2);
3624 HReg r_srcR = iselDblExpr(env, triop->arg3);
3642 HReg fr_dst = newVRegF(env);
3643 HReg fr_src = iselDblExpr(env, e->Iex.Binop.arg2);
3653 HReg r_dst = newVRegF(env);
3654 HReg r_src = iselDblExpr(env, e->Iex.Binop.arg2);
3663 HReg fdst = newVRegF(env);
3664 HReg isrc = iselWordExpr_R(env, e->Iex.Binop.arg2);
3665 HReg r1 = StackFramePtr(env->mode64);
3687 HReg fdst = newVRegF(env);
3688 HReg isrcHi, isrcLo;
3689 HReg r1 = StackFramePtr(env->mode64);
3732 HReg fr_dst = newVRegF(env);
3733 HReg fr_src = iselDblExpr(env, e->Iex.Unop.arg);
3745 HReg r_srcHi, r_srcLo;
3749 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
3759 HReg src = iselWordExpr_R(env, e->Iex.Unop.arg);
3760 HReg fr_dst = newVRegF(env);
3779 HReg res = iselFltExpr(env, e->Iex.Unop.arg);
3792 HReg r_cond = iselWordExpr_R(env, e->Iex.Mux0X.cond);
3793 HReg frX = iselDblExpr(env, e->Iex.Mux0X.exprX);
3794 HReg fr0 = iselDblExpr(env, e->Iex.Mux0X.expr0);
3795 HReg fr_dst = newVRegF(env);
3796 HReg r_tmp = newVRegI(env);
3812 static HReg iselDfp64Expr(ISelEnv* env, IRExpr* e)
3814 HReg r = iselDfp64Expr_wrk( env, e );
3821 static HReg iselDfp64Expr_wrk(ISelEnv* env, IRExpr* e)
3825 HReg r_dstHi, r_dstLo;
3836 HReg r_dst = newVRegF( env );
3845 HReg r_dst = newVRegF( env );
3850 HReg fr_dst = newVRegF(env);
3856 HReg r_srcHi, r_srcLo;
3860 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
3866 HReg fr_src = iselDfp64Expr(env, e->Iex.Unop.arg);
3873 HReg r_srcHi;
3874 HReg r_srcLo;
3882 HReg fr_src = iselDfp64Expr(env, e->Iex.Unop.arg);
3893 HReg fr_srcL = iselDblExpr(env, e->Iex.Binop.arg1);
3894 HReg fr_srcR = iselDblExpr(env, e->Iex.Binop.arg2);
3911 HReg fr_dst = newVRegF(env);
3912 HReg r_srcHi = newVRegF(env);
3913 HReg r_srcLo = newVRegF(env);
3922 HReg fr_dst = newVRegF(env);
3923 HReg r_srcHi = newVRegF(env);
3924 HReg r_srcLo = newVRegF(env);
3937 HReg fr_dst = newVRegF(env);
3938 HReg fr_src = newVRegF(env);
3949 HReg fr_dst = newVRegF(env);
3958 HReg fr_src = iselDfp64Expr(env, e->Iex.Binop.arg2);
3971 HReg fr_src = iselDfp64Expr(env, e->Iex.Binop.arg1);
3985 HReg fr_srcL = iselDfp64Expr(env, e->Iex.Binop.arg1);
3986 HReg fr_srcR = iselDfp64Expr(env, e->Iex.Binop.arg2);
4013 HReg r_dst = newVRegF( env );
4014 HReg r_srcL = iselDfp64Expr( env, triop->arg2 );
4015 HReg r_srcR = iselDfp64Expr( env, triop->arg3 );
4028 HReg r_dst = newVRegF(env);
4029 HReg r_srcL = iselDfp64Expr(env, triop->arg2);
4030 HReg r_srcR = iselDfp64Expr(env, triop->arg3);
4043 static void iselDfp128Expr(HReg* rHi, HReg* rLo, ISelEnv* env, IRExpr* e)
4051 static void iselDfp128Expr_wrk(HReg* rHi, HReg *rLo, ISelEnv* env, IRExpr* e)
4064 HReg r_dstHi = newVRegF(env);
4065 HReg r_dstLo = newVRegF(env);
4068 HReg r_src = iselDfp64Expr(env, e->Iex.Unop.arg);
4075 HReg r_src = iselDfp64Expr(env, e->Iex.Unop.arg);
4092 HReg r_srcHi;
4093 HReg r_srcLo;
4105 HReg fr_dst = newVRegF(env);
4120 HReg fr_dst_hi = newVRegF(env);
4121 HReg fr_dst_lo = newVRegF(env);
4138 HReg r_dstHi = newVRegF(env);
4139 HReg r_dstLo = newVRegF(env);
4152 HReg r_dstHi = newVRegF(env);
4153 HReg r_dstLo = newVRegF(env);
4154 HReg r_srcL = newVRegF(env);
4193 HReg r_dstHi = newVRegV( env );
4194 HReg r_dstLo = newVRegV( env );
4195 HReg r_srcRHi = newVRegV( env );
4196 HReg r_srcRLo = newVRegV( env );
4215 HReg r_dstHi = newVRegF(env);
4216 HReg r_dstLo = newVRegF(env);
4217 HReg r_srcHi = newVRegF(env);
4218 HReg r_srcLo = newVRegF(env);
4243 static HReg iselVecExpr ( ISelEnv* env, IRExpr* e )
4245 HReg r = iselVecExpr_wrk( env, e );
4255 static HReg iselVecExpr_wrk ( ISelEnv* env, IRExpr* e )
4271 HReg dst = newVRegV(env);
4281 HReg v_dst = newVRegV(env);
4292 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
4293 HReg dst = newVRegV(env);
4299 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
4300 HReg zero = newVRegV(env);
4301 HReg dst = newVRegV(env);
4309 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
4310 HReg zero = newVRegV(env);
4311 HReg dst = newVRegV(env);
4319 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
4320 HReg zero = newVRegV(env);
4321 HReg dst = newVRegV(env);
4340 HReg arg = iselVecExpr(env, e->Iex.Unop.arg);
4341 HReg dst = newVRegV(env);
4347 HReg r_aligned16, r_zeros;
4348 HReg r_src = iselWordExpr_R(env, e->Iex.Unop.arg);
4349 HReg dst = newVRegV(env);
4392 HReg r3, r2, r1, r0, r_aligned16;
4394 HReg dst = newVRegV(env);
4420 HReg rHi = iselWordExpr_R(env, e->Iex.Binop.arg1);
4421 HReg rLo = iselWordExpr_R(env, e->Iex.Binop.arg2);
4422 HReg dst = newVRegV(env);
4423 HReg r_aligned16;
4455 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1);
4456 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2);
4457 HReg dst = newVRegV(env);
4463 HReg argL = iselVecExpr(env, e->Iex.Binop.arg1);
4464 HReg argR = iselVecExpr(env, e->Iex.Binop.arg2);
4465 HReg dst = newVRegV(env);
4471 HReg isNanLR = newVRegV(env);
4472 HReg isNanL = isNan(env, argL);
4473 HReg isNanR = isNan(env, argR);
4488 HReg arg1 = iselVecExpr(env, e->Iex.Binop.arg1);
4489 HReg arg2 = iselVecExpr(env, e->Iex.Binop.arg2);
4490 HReg dst = newVRegV(env);
4519 HReg arg1 = iselVecExpr(env, e->Iex.Binop.arg1);
4520 HReg arg2 = iselVecExpr(env, e->Iex.Binop.arg2);
4521 HReg dst = newVRegV(env);
4553 HReg arg1 = iselVecExpr(env, e->Iex.Binop.arg1);
4554 HReg arg2 = iselVecExpr(env, e->Iex.Binop.arg2);
4555 HReg dst = newVRegV(env);
4585 HReg arg1 = iselVecExpr(env, e->Iex.Binop.arg1);
4586 HReg arg2 = iselVecExpr(env, e->Iex.Binop.arg2);
4587 HReg dst = newVRegV(env);
4595 HReg r_src = iselVecExpr(env, e->Iex.Binop.arg1);
4596 HReg dst = newVRegV(env);
4597 HReg v_shft = mk_AvDuplicateRI(env, e->Iex.Binop.arg2);
4606 HReg r_src = iselVecExpr(env, e->Iex.Binop.arg1);
4607 HReg dst = newVRegV(env);
4608 HReg v_shft = mk_AvDuplicateRI(env, e->Iex.Binop.arg2);
4617 HReg r_src = iselVecExpr(env, e->Iex.Binop.arg1);
4618 HReg dst = newVRegV(env);
4619 HReg v_shft = mk_AvDuplicateRI(env, e->Iex.Binop.arg2);
4627 HReg dst = newVRegV(env);
4628 HReg r_src = iselVecExpr(env, e->Iex.Binop.arg1);
4629 HReg v_shft = mk_AvDuplicateRI(env, e->Iex.Binop.arg2);
4636 HReg dst = newVRegV(env);
4637 HReg v_src = iselVecExpr(env, e->Iex.Binop.arg1);
4638 HReg v_ctl = iselVecExpr(env, e->Iex.Binop.arg2);
4698 HReg r_src = iselWordExpr_R(env, stmt->Ist.Store.data);
4706 HReg fr_src = iselDblExpr(env, stmt->Ist.Store.data);
4714 HReg fr_src = iselFltExpr(env, stmt->Ist.Store.data);
4722 HReg v_src = iselVecExpr(env, stmt->Ist.Store.data);
4731 HReg rHi32, rLo32;
4732 HReg r_addr = iselWordExpr_R(env, stmt->Ist.Store.addr);
4752 HReg r_src = iselWordExpr_R(env, stmt->Ist.Put.data);
4760 HReg rHi, rLo;
4772 HReg v_src = iselVecExpr(env, stmt->Ist.Put.data);
4780 HReg fr_src = iselDblExpr(env, stmt->Ist.Put.data);
4788 HReg fr_src = iselDfp64Expr( env, stmt->Ist.Put.data );
4807 HReg r_src = iselWordExpr_R(env, puti->data);
4813 HReg r_src = iselWordExpr_R(env, puti->data);
4827 HReg r_dst = lookupIRTemp(env, tmp);
4828 HReg r_src = iselWordExpr_R(env, stmt->Ist.WrTmp.data);
4833 HReg r_srcHi, r_srcLo, r_dstHi, r_dstLo;
4842 HReg r_srcHi, r_srcLo, r_dstHi, r_dstLo;
4850 HReg r_srcHi, r_srcMedHi, r_srcMedLo, r_srcLo;
4851 HReg r_dstHi, r_dstMedHi, r_dstMedLo, r_dstLo;
4868 HReg r_dst = lookupIRTemp(env, tmp);
4873 HReg fr_dst = lookupIRTemp(env, tmp);
4874 HReg fr_src = iselDblExpr(env, stmt->Ist.WrTmp.data);
4879 HReg fr_dst = lookupIRTemp(env, tmp);
4880 HReg fr_src = iselFltExpr(env, stmt->Ist.WrTmp.data);
4885 HReg v_dst = lookupIRTemp(env, tmp);
4886 HReg v_src = iselVecExpr(env, stmt->Ist.WrTmp.data);
4891 HReg fr_dst = lookupIRTemp( env, tmp );
4892 HReg fr_src = iselDfp64Expr( env, stmt->Ist.WrTmp.data );
4897 HReg fr_srcHi, fr_srcLo, fr_dstHi, fr_dstLo;
4923 HReg r_addr = iselWordExpr_R( env, stmt->Ist.LLSC.addr );
4924 HReg r_dst = lookupIRTemp(env, res);
4936 HReg r_res = lookupIRTemp(env, res); /* :: Ity_I1 */
4937 HReg r_a = iselWordExpr_R(env, stmt->Ist.LLSC.addr);
4938 HReg r_src = iselWordExpr_R(env, stmt->Ist.LLSC.storedata);
4939 HReg r_tmp = newVRegI(env);
4989 HReg r_dstHi, r_dstLo;
5001 HReg r_dst = lookupIRTemp(env, d->tmp);
5068 HReg r = iselWordExpr_R(env, IRExpr_Const(stmt->Ist.Exit.dst));
5087 HReg r = iselWordExpr_R(env, IRExpr_Const(stmt->Ist.Exit.dst));
5149 HReg r = iselWordExpr_R(env, next);
5160 HReg r = iselWordExpr_R(env, next);
5187 HReg r = iselWordExpr_R(env, next);
5221 HReg hregLo, hregMedLo, hregMedHi, hregHi;
5260 /* Make up an IRTemp -> virtual HReg mapping. This doesn't
5267 env->vregmapLo = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
5268 env->vregmapMedLo = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
5273 env->vregmapMedHi = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));
5274 env->vregmapHi = LibVEX_Alloc(env->n_vregmap * sizeof(HReg));