Home | History | Annotate | Download | only in priv

Lines Matching refs:Iex

955       vex_printf("BIND-%d", e->Iex.Binder.binder);
959 ppIRType(e->Iex.Get.ty);
960 vex_printf("(%d)", e->Iex.Get.offset);
964 ppIRRegArray(e->Iex.GetI.descr);
966 ppIRExpr(e->Iex.GetI.ix);
967 vex_printf(",%d]", e->Iex.GetI.bias);
970 ppIRTemp(e->Iex.RdTmp.tmp);
973 ppIROp(e->Iex.Qop.op);
975 ppIRExpr(e->Iex.Qop.arg1);
977 ppIRExpr(e->Iex.Qop.arg2);
979 ppIRExpr(e->Iex.Qop.arg3);
981 ppIRExpr(e->Iex.Qop.arg4);
985 ppIROp(e->Iex.Triop.op);
987 ppIRExpr(e->Iex.Triop.arg1);
989 ppIRExpr(e->Iex.Triop.arg2);
991 ppIRExpr(e->Iex.Triop.arg3);
995 ppIROp(e->Iex.Binop.op);
997 ppIRExpr(e->Iex.Binop.arg1);
999 ppIRExpr(e->Iex.Binop.arg2);
1003 ppIROp(e->Iex.Unop.op);
1005 ppIRExpr(e->Iex.Unop.arg);
1009 vex_printf( "LD%s:", e->Iex.Load.end==Iend_LE ? "le" : "be" );
1010 ppIRType(e->Iex.Load.ty);
1012 ppIRExpr(e->Iex.Load.addr);
1016 ppIRConst(e->Iex.Const.con);
1019 ppIRCallee(e->Iex.CCall.cee);
1021 for (i = 0; e->Iex.CCall.args[i] != NULL; i++) {
1022 ppIRExpr(e->Iex.CCall.args[i]);
1023 if (e->Iex.CCall.args[i+1] != NULL)
1027 ppIRType(e->Iex.CCall.retty);
1031 ppIRExpr(e->Iex.Mux0X.cond);
1033 ppIRExpr(e->Iex.Mux0X.expr0);
1035 ppIRExpr(e->Iex.Mux0X.exprX);
1392 e->Iex.Binder.binder = binder;
1398 e->Iex.Get.offset = off;
1399 e->Iex.Get.ty = ty;
1405 e->Iex.GetI.descr = descr;
1406 e->Iex.GetI.ix = ix;
1407 e->Iex.GetI.bias = bias;
1413 e->Iex.RdTmp.tmp = tmp;
1420 e->Iex.Qop.op = op;
1421 e->Iex.Qop.arg1 = arg1;
1422 e->Iex.Qop.arg2 = arg2;
1423 e->Iex.Qop.arg3 = arg3;
1424 e->Iex.Qop.arg4 = arg4;
1431 e->Iex.Triop.op = op;
1432 e->Iex.Triop.arg1 = arg1;
1433 e->Iex.Triop.arg2 = arg2;
1434 e->Iex.Triop.arg3 = arg3;
1440 e->Iex.Binop.op = op;
1441 e->Iex.Binop.arg1 = arg1;
1442 e->Iex.Binop.arg2 = arg2;
1448 e->Iex.Unop.op = op;
1449 e->Iex.Unop.arg = arg;
1455 e->Iex.Load.end = end;
1456 e->Iex.Load.ty = ty;
1457 e->Iex.Load.addr = addr;
1464 e->Iex.Const.con = con;
1470 e->Iex.CCall.cee = cee;
1471 e->Iex.CCall.retty = retty;
1472 e->Iex.CCall.args = args;
1478 e->Iex.Mux0X.cond = cond;
1479 e->Iex.Mux0X.expr0 = expr0;
1480 e->Iex.Mux0X.exprX = exprX;
1808 return IRExpr_Get(e->Iex.Get.offset, e->Iex.Get.ty);
1810 return IRExpr_GetI(deepCopyIRRegArray(e->Iex.GetI.descr),
1811 deepCopyIRExpr(e->Iex.GetI.ix),
1812 e->Iex.GetI.bias);
1814 return IRExpr_RdTmp(e->Iex.RdTmp.tmp);
1816 return IRExpr_Qop(e->Iex.Qop.op,
1817 deepCopyIRExpr(e->Iex.Qop.arg1),
1818 deepCopyIRExpr(e->Iex.Qop.arg2),
1819 deepCopyIRExpr(e->Iex.Qop.arg3),
1820 deepCopyIRExpr(e->Iex.Qop.arg4));
1822 return IRExpr_Triop(e->Iex.Triop.op,
1823 deepCopyIRExpr(e->Iex.Triop.arg1),
1824 deepCopyIRExpr(e->Iex.Triop.arg2),
1825 deepCopyIRExpr(e->Iex.Triop.arg3));
1827 return IRExpr_Binop(e->Iex.Binop.op,
1828 deepCopyIRExpr(e->Iex.Binop.arg1),
1829 deepCopyIRExpr(e->Iex.Binop.arg2));
1831 return IRExpr_Unop(e->Iex.Unop.op,
1832 deepCopyIRExpr(e->Iex.Unop.arg));
1834 return IRExpr_Load(e->Iex.Load.end,
1835 e->Iex.Load.ty,
1836 deepCopyIRExpr(e->Iex.Load.addr));
1838 return IRExpr_Const(deepCopyIRConst(e->Iex.Const.con));
1840 return IRExpr_CCall(deepCopyIRCallee(e->Iex.CCall.cee),
1841 e->Iex.CCall.retty,
1842 deepCopyIRExprVec(e->Iex.CCall.args));
1845 return IRExpr_Mux0X(deepCopyIRExpr(e->Iex.Mux0X.cond),
1846 deepCopyIRExpr(e->Iex.Mux0X.expr0),
1847 deepCopyIRExpr(e->Iex.Mux0X.exprX));
2692 return e->Iex.Load.ty;
2694 return e->Iex.Get.ty;
2696 return e->Iex.GetI.descr->elemTy;
2698 return typeOfIRTemp(tyenv, e->Iex.RdTmp.tmp);
2700 return typeOfIRConst(e->Iex.Const.con);
2702 typeOfPrimop(e->Iex.Qop.op,
2706 typeOfPrimop(e->Iex.Triop.op,
2710 typeOfPrimop(e->Iex.Binop.op,
2714 typeOfPrimop(e->Iex.Unop.op,
2718 return e->Iex.CCall.retty;
2720 e = e->Iex.Mux0X.expr0;
2722 /* return typeOfIRExpr(tyenv, e->Iex.Mux0X.expr0); */
2785 case Iex_GetI: return isIRAtom(e->Iex.GetI.ix);
2788 isIRAtom(e->Iex.Qop.arg1)
2789 && isIRAtom(e->Iex.Qop.arg2)
2790 && isIRAtom(e->Iex.Qop.arg3)
2791 && isIRAtom(e->Iex.Qop.arg4));
2793 isIRAtom(e->Iex.Triop.arg1)
2794 && isIRAtom(e->Iex.Triop.arg2)
2795 && isIRAtom(e->Iex.Triop.arg3));
2797 isIRAtom(e->Iex.Binop.arg1)
2798 && isIRAtom(e->Iex.Binop.arg2));
2799 case Iex_Unop: return isIRAtom(e->Iex.Unop.arg);
2800 case Iex_Load: return isIRAtom(e->Iex.Load.addr);
2802 case Iex_CCall: for (i = 0; e->Iex.CCall.args[i]; i++)
2803 if (!isIRAtom(e->Iex.CCall.args[i]))
2807 isIRAtom(e->Iex.Mux0X.cond)
2808 && isIRAtom(e->Iex.Mux0X.expr0)
2809 && isIRAtom(e->Iex.Mux0X.exprX));
2940 useBeforeDef_Expr(bb,stmt,expr->Iex.GetI.ix,def_counts);
2943 useBeforeDef_Temp(bb,stmt,expr->Iex.RdTmp.tmp,def_counts);
2946 useBeforeDef_Expr(bb,stmt,expr->Iex.Qop.arg1,def_counts);
2947 useBeforeDef_Expr(bb,stmt,expr->Iex.Qop.arg2,def_counts);
2948 useBeforeDef_Expr(bb,stmt,expr->Iex.Qop.arg3,def_counts);
2949 useBeforeDef_Expr(bb,stmt,expr->Iex.Qop.arg4,def_counts);
2952 useBeforeDef_Expr(bb,stmt,expr->Iex.Triop.arg1,def_counts);
2953 useBeforeDef_Expr(bb,stmt,expr->Iex.Triop.arg2,def_counts);
2954 useBeforeDef_Expr(bb,stmt,expr->Iex.Triop.arg3,def_counts);
2957 useBeforeDef_Expr(bb,stmt,expr->Iex.Binop.arg1,def_counts);
2958 useBeforeDef_Expr(bb,stmt,expr->Iex.Binop.arg2,def_counts);
2961 useBeforeDef_Expr(bb,stmt,expr->Iex.Unop.arg,def_counts);
2964 useBeforeDef_Expr(bb,stmt,expr->Iex.Load.addr,def_counts);
2969 for (i = 0; expr->Iex.CCall.args[i]; i++)
2970 useBeforeDef_Expr(bb,stmt,expr->Iex.CCall.args[i],def_counts);
2973 useBeforeDef_Expr(bb,stmt,expr->Iex.Mux0X.cond,def_counts);
2974 useBeforeDef_Expr(bb,stmt,expr->Iex.Mux0X.expr0,def_counts);
2975 useBeforeDef_Expr(bb,stmt,expr->Iex.Mux0X.exprX,def_counts);
3053 tcExpr(bb,stmt, expr->Iex.GetI.ix, gWordTy );
3054 if (typeOfIRExpr(tyenv,expr->Iex.GetI.ix) != Ity_I32)
3056 if (!saneIRRegArray(expr->Iex.GetI.descr))
3061 tcExpr(bb,stmt, expr->Iex.Qop.arg1, gWordTy );
3062 tcExpr(bb,stmt, expr->Iex.Qop.arg2, gWordTy );
3063 tcExpr(bb,stmt, expr->Iex.Qop.arg3, gWordTy );
3064 tcExpr(bb,stmt, expr->Iex.Qop.arg4, gWordTy );
3065 typeOfPrimop(expr->Iex.Qop.op,
3070 ppIROp(expr->Iex.Qop.op);
3073 "Iex.Qop: wrong arity op\n"
3076 ttarg1 = typeOfIRExpr(tyenv, expr->Iex.Qop.arg1);
3077 ttarg2 = typeOfIRExpr(tyenv, expr->Iex.Qop.arg2);
3078 ttarg3 = typeOfIRExpr(tyenv, expr->Iex.Qop.arg3);
3079 ttarg4 = typeOfIRExpr(tyenv, expr->Iex.Qop.arg4);
3083 ppIROp(expr->Iex.Qop.op);
3105 "Iex.Qop: arg tys don't match op tys\n"
3112 tcExpr(bb,stmt, expr->Iex.Triop.arg1, gWordTy );
3113 tcExpr(bb,stmt, expr->Iex.Triop.arg2, gWordTy );
3114 tcExpr(bb,stmt, expr->Iex.Triop.arg3, gWordTy );
3115 typeOfPrimop(expr->Iex.Triop.op,
3120 ppIROp(expr->Iex.Triop.op);
3123 "Iex.Triop: wrong arity op\n"
3126 ttarg1 = typeOfIRExpr(tyenv, expr->Iex.Triop.arg1);
3127 ttarg2 = typeOfIRExpr(tyenv, expr->Iex.Triop.arg2);
3128 ttarg3 = typeOfIRExpr(tyenv, expr->Iex.Triop.arg3);
3131 ppIROp(expr->Iex.Triop.op);
3149 "Iex.Triop: arg tys don't match op tys\n"
3156 tcExpr(bb,stmt, expr->Iex.Binop.arg1, gWordTy );
3157 tcExpr(bb,stmt, expr->Iex.Binop.arg2, gWordTy );
3158 typeOfPrimop(expr->Iex.Binop.op,
3163 ppIROp(expr->Iex.Binop.op);
3166 "Iex.Binop: wrong arity op\n"
3169 ttarg1 = typeOfIRExpr(tyenv, expr->Iex.Binop.arg1);
3170 ttarg2 = typeOfIRExpr(tyenv, expr->Iex.Binop.arg2);
3173 ppIROp(expr->Iex.Binop.op);
3187 "Iex.Binop: arg tys don't match op tys\n"
3193 tcExpr(bb,stmt, expr->Iex.Unop.arg, gWordTy );
3194 typeOfPrimop(expr->Iex.Binop.op,
3198 sanityCheckFail(bb,stmt,"Iex.Unop: wrong arity op");
3199 if (t_arg1 != typeOfIRExpr(tyenv, expr->Iex.Unop.arg))
3200 sanityCheckFail(bb,stmt,"Iex.Unop: arg ty doesn't match op ty");
3203 tcExpr(bb,stmt, expr->Iex.Load.addr, gWordTy);
3204 if (typeOfIRExpr(tyenv, expr->Iex.Load.addr) != gWordTy)
3205 sanityCheckFail(bb,stmt,"Iex.Load.addr: not :: guest word type");
3206 if (expr->Iex.Load.end != Iend_LE && expr->Iex.Load.end != Iend_BE)
3207 sanityCheckFail(bb,stmt,"Iex.Load.end: bogus endianness");
3210 if (!saneIRCallee(expr->Iex.CCall.cee))
3211 sanityCheckFail(bb,stmt,"Iex.CCall.cee: bad IRCallee");
3212 if (expr->Iex.CCall.cee->regparms > countArgs(expr->Iex.CCall.args))
3213 sanityCheckFail(bb,stmt,"Iex.CCall.cee: #regparms > #args");
3214 for (i = 0; expr->Iex.CCall.args[i]; i++) {
3216 sanityCheckFail(bb,stmt,"Iex.CCall: > 32 args");
3217 tcExpr(bb,stmt, expr->Iex.CCall.args[i], gWordTy);
3219 if (expr->Iex.CCall.retty == Ity_I1)
3220 sanityCheckFail(bb,stmt,"Iex.CCall.retty: cannot return :: Ity_I1");
3221 for (i = 0; expr->Iex.CCall.args[i]; i++)
3222 if (typeOfIRExpr(tyenv, expr->Iex.CCall.args[i]) == Ity_I1)
3223 sanityCheckFail(bb,stmt,"Iex.CCall.arg: arg :: Ity_I1");
3226 if (!saneIRConst(expr->Iex.Const.con))
3227 sanityCheckFail(bb,stmt,"Iex.Const.con: invalid const");
3230 tcExpr(bb,stmt, expr->Iex.Mux0X.cond, gWordTy);
3231 tcExpr(bb,stmt, expr->Iex.Mux0X.expr0, gWordTy);
3232 tcExpr(bb,stmt, expr->Iex.Mux0X.exprX, gWordTy);
3233 if (typeOfIRExpr(tyenv, expr->Iex.Mux0X.cond) != Ity_I8)
3234 sanityCheckFail(bb,stmt,"Iex.Mux0X.cond: cond :: Ity_I8");
3235 if (typeOfIRExpr(tyenv, expr->Iex.Mux0X.expr0)
3236 != typeOfIRExpr(tyenv, expr->Iex.Mux0X.exprX))
3237 sanityCheckFail(bb,stmt,"Iex.Mux0X: expr0/exprX mismatch");
3656 return toBool(a1->Iex.RdTmp.tmp == a2->Iex.RdTmp.tmp);
3658 return eqIRConst(a1->Iex.Const.con, a2->Iex.Const.con);