Home | History | Annotate | Download | only in priv

Lines Matching defs:ae

3576 static IRExpr* availExpr_to_IRExpr ( AvailExpr* ae ) 
3579 switch (ae->tag) {
3581 return IRExpr_Unop( ae->u.Ut.op, IRExpr_RdTmp(ae->u.Ut.arg) );
3583 return IRExpr_Binop( ae->u.Btt.op,
3584 IRExpr_RdTmp(ae->u.Btt.arg1),
3585 IRExpr_RdTmp(ae->u.Btt.arg2) );
3588 *con = ae->u.Btc.con2;
3589 return IRExpr_Binop( ae->u.Btc.op,
3590 IRExpr_RdTmp(ae->u.Btc.arg1),
3594 *con = ae->u.Bct.con1;
3595 return IRExpr_Binop( ae->u.Bct.op,
3597 IRExpr_RdTmp(ae->u.Bct.arg2) );
3599 return IRExpr_Const(IRConst_F64i(ae->u.Cf64i.f64i));
3601 return IRExpr_ITE(IRExpr_RdTmp(ae->u.Ittt.co),
3602 IRExpr_RdTmp(ae->u.Ittt.e1),
3603 IRExpr_RdTmp(ae->u.Ittt.e0));
3606 *con0 = ae->u.Ittc.con0;
3607 return IRExpr_ITE(IRExpr_RdTmp(ae->u.Ittc.co),
3608 IRExpr_RdTmp(ae->u.Ittc.e1),
3612 *con1 = ae->u.Itct.con1;
3613 return IRExpr_ITE(IRExpr_RdTmp(ae->u.Itct.co),
3615 IRExpr_RdTmp(ae->u.Itct.e0));
3620 *con0 = ae->u.Itcc.con0;
3621 *con1 = ae->u.Itcc.con1;
3622 return IRExpr_ITE(IRExpr_RdTmp(ae->u.Itcc.co),
3626 return IRExpr_GetI(ae->u.GetIt.descr,
3627 IRExpr_RdTmp(ae->u.GetIt.ix),
3628 ae->u.GetIt.bias);
3630 Int i, n = ae->u.CCall.nArgs;
3635 vec[i] = tmpOrConst_to_IRExpr(&ae->u.CCall.args[i]);
3637 return IRExpr_CCall(ae->u.CCall.cee,
3638 ae->u.CCall.retty,
3642 return IRExpr_Load(ae->u.Load.end, ae->u.Load.ty,
3643 tmpOrConst_to_IRExpr(&ae->u.Load.addr));
3670 static void subst_AvailExpr ( HashHW* env, AvailExpr* ae )
3673 switch (ae->tag) {
3675 ae->u.Ut.arg = subst_AvailExpr_Temp( env, ae->u.Ut.arg );
3678 ae->u.Btt.arg1 = subst_AvailExpr_Temp( env, ae->u.Btt.arg1 );
3679 ae->u.Btt.arg2 = subst_AvailExpr_Temp( env, ae->u.Btt.arg2 );
3682 ae->u.Btc.arg1 = subst_AvailExpr_Temp( env, ae->u.Btc.arg1 );
3685 ae->u.Bct.arg2 = subst_AvailExpr_Temp( env, ae->u.Bct.arg2 );
3690 ae->u.Ittt.co = subst_AvailExpr_Temp( env, ae->u.Ittt.co );
3691 ae->u.Ittt.e1 = subst_AvailExpr_Temp( env, ae->u.Ittt.e1 );
3692 ae->u.Ittt.e0 = subst_AvailExpr_Temp( env, ae->u.Ittt.e0 );
3695 ae->u.Ittc.co = subst_AvailExpr_Temp( env, ae->u.Ittc.co );
3696 ae->u.Ittc.e1 = subst_AvailExpr_Temp( env, ae->u.Ittc.e1 );
3699 ae->u.Itct.co = subst_AvailExpr_Temp( env, ae->u.Itct.co );
3700 ae->u.Itct.e0 = subst_AvailExpr_Temp( env, ae->u.Itct.e0 );
3703 ae->u.Itcc.co = subst_AvailExpr_Temp( env, ae->u.Itcc.co );
3706 ae->u.GetIt.ix = subst_AvailExpr_Temp( env, ae->u.GetIt.ix );
3709 Int i, n = ae->u.CCall.nArgs;;
3711 subst_AvailExpr_TmpOrConst(&ae->u.CCall.args[i], env);
3716 subst_AvailExpr_TmpOrConst(&ae->u.Load.addr, env);
3725 AvailExpr* ae;
3730 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3731 ae->tag = Ut;
3732 ae->u.Ut.op = e->Iex.Unop.op;
3733 ae->u.Ut.arg = e->Iex.Unop.arg->Iex.RdTmp.tmp;
3734 return ae;
3741 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3742 ae->tag = Btt;
3743 ae->u.Btt.op = e->Iex.Binop.op;
3744 ae->u.Btt.arg1 = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
3745 ae->u.Btt.arg2 = e->Iex.Binop.arg2->Iex.RdTmp.tmp;
3746 return ae;
3749 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3750 ae->tag = Btc;
3751 ae->u.Btc.op = e->Iex.Binop.op;
3752 ae->u.Btc.arg1 = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
3753 ae->u.Btc.con2 = *(e->Iex.Binop.arg2->Iex.Const.con);
3754 return ae;
3758 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3759 ae->tag = Bct;
3760 ae->u.Bct.op = e->Iex.Binop.op;
3761 ae->u.Bct.arg2 = e->Iex.Binop.arg2->Iex.RdTmp.tmp;
3762 ae->u.Bct.con1 = *(e->Iex.Binop.arg1->Iex.Const.con);
3763 return ae;
3769 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3770 ae->tag = Cf64i;
3771 ae->u.Cf64i.f64i = e->Iex.Const.con->Ico.F64i;
3772 return ae;
3780 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3781 ae->tag = Ittt;
3782 ae->u.Ittt.co = e->Iex.ITE.cond->Iex.RdTmp.tmp;
3783 ae->u.Ittt.e1 = e->Iex.ITE.iftrue->Iex.RdTmp.tmp;
3784 ae->u.Ittt.e0 = e->Iex.ITE.iffalse->Iex.RdTmp.tmp;
3785 return ae;
3788 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3789 ae->tag = Itct;
3790 ae->u.Itct.co = e->Iex.ITE.cond->Iex.RdTmp.tmp;
3791 ae->u.Itct.con1 = *(e->Iex.ITE.iftrue->Iex.Const.con);
3792 ae->u.Itct.e0 = e->Iex.ITE.iffalse->Iex.RdTmp.tmp;
3793 return ae;
3797 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3798 ae->tag = Ittc;
3799 ae->u.Ittc.co = e->Iex.ITE.cond->Iex.RdTmp.tmp;
3800 ae->u.Ittc.e1 = e->Iex.ITE.iftrue->Iex.RdTmp.tmp;
3801 ae->u.Ittc.con0 = *(e->Iex.ITE.iffalse->Iex.Const.con);
3802 return ae;
3805 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3806 ae->tag = Itcc;
3807 ae->u.Itcc.co = e->Iex.ITE.cond->Iex.RdTmp.tmp;
3808 ae->u.Itcc.con1 = *(e->Iex.ITE.iftrue->Iex.Const.con);
3809 ae->u.Itcc.con0 = *(e->Iex.ITE.iffalse->Iex.Const.con);
3810 return ae;
3818 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3819 ae->tag = GetIt;
3820 ae->u.GetIt.descr = e->Iex.GetI.descr;
3821 ae->u.GetIt.ix = e->Iex.GetI.ix->Iex.RdTmp.tmp;
3822 ae->u.GetIt.bias = e->Iex.GetI.bias;
3823 return ae;
3828 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3829 ae->tag = CCall;
3831 ae->u.CCall.cee = e->Iex.CCall.cee;
3832 ae->u.CCall.retty = e->Iex.CCall.retty;
3837 &ae->u.CCall.args, &ae->u.CCall.nArgs,
3840 return ae;
3849 ae = LibVEX_Alloc_inline(sizeof(AvailExpr));
3850 ae->tag = Load;
3851 ae->u.Load.end = e->Iex.Load.end;
3852 ae->u.Load.ty = e->Iex.Load.ty;
3853 irExpr_to_TmpOrConst(&ae->u.Load.addr, e->Iex.Load.addr);
3854 return ae;
3878 AvailExpr* ae;
3935 ae = (AvailExpr*)aenv->key[j];
3936 if (ae->tag != GetIt && ae->tag != Load)
3943 if (ae->tag == Load) {
3953 ae->u.GetIt.descr,
3954 IRExpr_RdTmp(ae->u.GetIt.ix),
3964 ae->u.GetIt.descr,
3965 IRExpr_RdTmp(ae->u.GetIt.ix),
3966 ae->u.GetIt.bias,