Lines Matching defs:expr

3667 void useBeforeDef_Expr ( IRSB* bb, IRStmt* stmt, IRExpr* expr, Int* def_counts )
3670 switch (expr->tag) {
3674 useBeforeDef_Expr(bb,stmt,expr->Iex.GetI.ix,def_counts);
3677 useBeforeDef_Temp(bb,stmt,expr->Iex.RdTmp.tmp,def_counts);
3680 IRQop* qop = expr->Iex.Qop.details;
3688 IRTriop* triop = expr->Iex.Triop.details;
3695 useBeforeDef_Expr(bb,stmt,expr->Iex.Binop.arg1,def_counts);
3696 useBeforeDef_Expr(bb,stmt,expr->Iex.Binop.arg2,def_counts);
3699 useBeforeDef_Expr(bb,stmt,expr->Iex.Unop.arg,def_counts);
3702 useBeforeDef_Expr(bb,stmt,expr->Iex.Load.addr,def_counts);
3707 for (i = 0; expr->Iex.CCall.args[i]; i++) {
3708 IRExpr* arg = expr->Iex.CCall.args[i];
3720 useBeforeDef_Expr(bb,stmt,expr->Iex.ITE.cond,def_counts);
3721 useBeforeDef_Expr(bb,stmt,expr->Iex.ITE.iftrue,def_counts);
3722 useBeforeDef_Expr(bb,stmt,expr->Iex.ITE.iffalse,def_counts);
3813 void tcExpr ( IRSB* bb, IRStmt* stmt, IRExpr* expr, IRType gWordTy )
3818 switch (expr->tag) {
3823 tcExpr(bb,stmt, expr->Iex.GetI.ix, gWordTy );
3824 if (typeOfIRExpr(tyenv,expr->Iex.GetI.ix) != Ity_I32)
3826 if (!saneIRRegArray(expr->Iex.GetI.descr))
3831 IRQop* qop = expr->Iex.Qop.details;
3883 IRTriop *triop = expr->Iex.Triop.details;
3928 tcExpr(bb,stmt, expr->Iex.Binop.arg1, gWordTy );
3929 tcExpr(bb,stmt, expr->Iex.Binop.arg2, gWordTy );
3930 typeOfPrimop(expr->Iex.Binop.op,
3935 ppIROp(expr->Iex.Binop.op);
3941 ttarg1 = typeOfIRExpr(tyenv, expr->Iex.Binop.arg1);
3942 ttarg2 = typeOfIRExpr(tyenv, expr->Iex.Binop.arg2);
3945 ppIROp(expr->Iex.Binop.op);
3965 tcExpr(bb,stmt, expr->Iex.Unop.arg, gWordTy );
3966 typeOfPrimop(expr->Iex.Unop.op,
3971 if (t_arg1 != typeOfIRExpr(tyenv, expr->Iex.Unop.arg))
3975 tcExpr(bb,stmt, expr->Iex.Load.addr, gWordTy);
3976 if (typeOfIRExpr(tyenv, expr->Iex.Load.addr) != gWordTy)
3978 if (expr->Iex.Load.end != Iend_LE && expr->Iex.Load.end != Iend_BE)
3982 if (!saneIRCallee(expr->Iex.CCall.cee))
3984 if (expr->Iex.CCall.cee->regparms > countArgs(expr->Iex.CCall.args))
3986 for (i = 0; expr->Iex.CCall.args[i]; i++) {
3989 IRExpr* arg = expr->Iex.CCall.args[i];
3994 if (expr->Iex.CCall.retty == Ity_I1)
3996 for (i = 0; expr->Iex.CCall.args[i]; i++)
3997 if (typeOfIRExpr(tyenv, expr->Iex.CCall.args[i]) == Ity_I1)
4001 if (!saneIRConst(expr->Iex.Const.con))
4005 tcExpr(bb,stmt, expr->Iex.ITE.cond, gWordTy);
4006 tcExpr(bb,stmt, expr->Iex.ITE.iftrue, gWordTy);
4007 tcExpr(bb,stmt, expr->Iex.ITE.iffalse, gWordTy);
4008 if (typeOfIRExpr(tyenv, expr->Iex.ITE.cond) != Ity_I1)
4010 if (typeOfIRExpr(tyenv, expr->Iex.ITE.iftrue)
4011 != typeOfIRExpr(tyenv, expr->Iex.ITE.iffalse))
4070 "IRStmt.Put.Tmp: tmp and expr do not match");