Home | History | Annotate | Download | only in priv

Lines Matching refs:Ist

385          if (isIRAtom(st->Ist.Put.data)) {
391 e1 = flatten_Expr(bb, st->Ist.Put.data);
392 addStmtToIRSB(bb, IRStmt_Put(st->Ist.Put.offset, e1));
396 e1 = flatten_Expr(bb, st->Ist.PutI.ix);
397 e2 = flatten_Expr(bb, st->Ist.PutI.data);
398 addStmtToIRSB(bb, IRStmt_PutI(st->Ist.PutI.descr,
400 st->Ist.PutI.bias,
404 if (isFlat(st->Ist.WrTmp.data)) {
410 e1 = flatten_Expr(bb, st->Ist.WrTmp.data);
411 addStmtToIRSB(bb, IRStmt_WrTmp(st->Ist.WrTmp.tmp, e1));
415 e1 = flatten_Expr(bb, st->Ist.Store.addr);
416 e2 = flatten_Expr(bb, st->Ist.Store.data);
417 addStmtToIRSB(bb, IRStmt_Store(st->Ist.Store.end, e1,e2));
420 cas = st->Ist.CAS.details;
431 e1 = flatten_Expr(bb, st->Ist.LLSC.addr);
432 e2 = st->Ist.LLSC.storedata
433 ? flatten_Expr(bb, st->Ist.LLSC.storedata)
435 addStmtToIRSB(bb, IRStmt_LLSC(st->Ist.LLSC.end,
436 st->Ist.LLSC.result, e1, e2));
439 d = st->Ist.Dirty.details;
459 e1 = flatten_Expr(bb, st->Ist.AbiHint.base);
460 e2 = flatten_Expr(bb, st->Ist.AbiHint.nia);
461 addStmtToIRSB(bb, IRStmt_AbiHint(e1, st->Ist.AbiHint.len, e2));
464 e1 = flatten_Expr(bb, st->Ist.Exit.guard);
465 addStmtToIRSB(bb, IRStmt_Exit(e1, st->Ist.Exit.jk,
466 st->Ist.Exit.dst));
584 && st->Ist.WrTmp.data->tag == Iex_Get) {
587 IRExpr* get = st->Ist.WrTmp.data;
599 == st->Ist.WrTmp.data->Iex.Get.ty );
606 bb->stmts[i] = IRStmt_WrTmp(st->Ist.WrTmp.tmp, valE);
612 (HWord)(void*)(IRExpr_RdTmp(st->Ist.WrTmp.tmp)) );
621 key = mk_key_GetPut( st->Ist.Put.offset,
622 typeOfIRExpr(bb->tyenv,st->Ist.Put.data) );
625 key = mk_key_GetIPutI( st->Ist.PutI.descr );
637 IRDirty* d = st->Ist.Dirty.details;
654 vassert(isIRAtom(st->Ist.Put.data));
655 addToHHW( env, (HWord)key, (HWord)(st->Ist.Put.data));
688 e = st->Ist.WrTmp.data;
724 vassert(isIRAtom(st->Ist.AbiHint.base));
725 vassert(isIRAtom(st->Ist.AbiHint.nia));
737 vassert(isIRAtom(st->Ist.Store.addr));
738 vassert(isIRAtom(st->Ist.Store.data));
743 vassert(isIRAtom(st->Ist.Exit.guard));
747 vassert(isIRAtom(st->Ist.PutI.ix));
748 vassert(isIRAtom(st->Ist.PutI.data));
826 vassert(isIRAtom(st->Ist.Exit.guard));
836 key = mk_key_GetPut( st->Ist.Put.offset,
837 typeOfIRExpr(bb->tyenv,st->Ist.Put.data) );
838 vassert(isIRAtom(st->Ist.Put.data));
842 key = mk_key_GetIPutI( st->Ist.PutI.descr );
843 vassert(isIRAtom(st->Ist.PutI.ix));
844 vassert(isIRAtom(st->Ist.PutI.data));
1917 vassert(isIRAtom(st->Ist.AbiHint.base));
1918 vassert(isIRAtom(st->Ist.AbiHint.nia));
1920 fold_Expr(subst_Expr(env, st->Ist.AbiHint.base)),
1921 st->Ist.AbiHint.len,
1922 fold_Expr(subst_Expr(env, st->Ist.AbiHint.nia))
1925 vassert(isIRAtom(st->Ist.Put.data));
1927 st->Ist.Put.offset,
1928 fold_Expr(subst_Expr(env, st->Ist.Put.data))
1932 vassert(isIRAtom(st->Ist.PutI.ix));
1933 vassert(isIRAtom(st->Ist.PutI.data));
1935 st->Ist.PutI.descr,
1936 fold_Expr(subst_Expr(env, st->Ist.PutI.ix)),
1937 st->Ist.PutI.bias,
1938 fold_Expr(subst_Expr(env, st->Ist.PutI.data))
1942 /* This is the one place where an expr (st->Ist.WrTmp.data) is
1945 st->Ist.WrTmp.tmp,
1946 fold_Expr(subst_Expr(env, st->Ist.WrTmp.data))
1950 vassert(isIRAtom(st->Ist.Store.addr));
1951 vassert(isIRAtom(st->Ist.Store.data));
1953 st->Ist.Store.end,
1954 fold_Expr(subst_Expr(env, st->Ist.Store.addr)),
1955 fold_Expr(subst_Expr(env, st->Ist.Store.data))
1960 cas = st->Ist.CAS.details;
1978 vassert(isIRAtom(st->Ist.LLSC.addr));
1979 if (st->Ist.LLSC.storedata)
1980 vassert(isIRAtom(st->Ist.LLSC.storedata));
1982 st->Ist.LLSC.end,
1983 st->Ist.LLSC.result,
1984 fold_Expr(subst_Expr(env, st->Ist.LLSC.addr)),
1985 st->Ist.LLSC.storedata
1986 ? fold_Expr(subst_Expr(env, st->Ist.LLSC.storedata))
1993 d = st->Ist.Dirty.details;
2011 return IRStmt_IMark(st->Ist.IMark.addr,
2012 st->Ist.IMark.len,
2013 st->Ist.IMark.delta);
2019 return IRStmt_MBE(st->Ist.MBE.event);
2023 vassert(isIRAtom(st->Ist.Exit.guard));
2024 fcond = fold_Expr(subst_Expr(env, st->Ist.Exit.guard));
2046 return IRStmt_Exit(fcond, st->Ist.Exit.jk, st->Ist.Exit.dst);
2102 && st2->Ist.WrTmp.data->tag == Iex_Const
2103 && st2->Ist.WrTmp.data->Iex.Const.con->tag != Ico_F64i) {
2106 env[(Int)(st2->Ist.WrTmp.tmp)] = st2->Ist.WrTmp.data;
2109 if (st2->tag == Ist_WrTmp && st2->Ist.WrTmp.data->tag == Iex_RdTmp) {
2112 env[(Int)(st2->Ist.WrTmp.tmp)] = st2->Ist.WrTmp.data;
2200 addUses_Expr(set, st->Ist.AbiHint.base);
2201 addUses_Expr(set, st->Ist.AbiHint.nia);
2204 addUses_Expr(set, st->Ist.PutI.ix);
2205 addUses_Expr(set, st->Ist.PutI.data);
2208 addUses_Expr(set, st->Ist.WrTmp.data);
2211 addUses_Expr(set, st->Ist.Put.data);
2214 addUses_Expr(set, st->Ist.Store.addr);
2215 addUses_Expr(set, st->Ist.Store.data);
2218 cas = st->Ist.CAS.details;
2228 addUses_Expr(set, st->Ist.LLSC.addr);
2229 if (st->Ist.LLSC.storedata)
2230 addUses_Expr(set, st->Ist.LLSC.storedata);
2233 d = st->Ist.Dirty.details;
2245 addUses_Expr(set, st->Ist.Exit.guard);
2309 && isOneU1(st->Ist.Exit.guard))
2312 && set[(Int)(st->Ist.WrTmp.tmp)] == False) {
2323 && st->Ist.Dirty.details->guard
2324 && isZeroU1(st->Ist.Dirty.details->guard)) {
2344 = IRExpr_Const( bb->stmts[i_unconditional_exit]->Ist.Exit.dst );
2346 = bb->stmts[i_unconditional_exit]->Ist.Exit.jk;
2373 || st->Ist.WrTmp.data->tag != Iex_CCall)
2376 ex = (*specHelper)( st->Ist.WrTmp.data->Iex.CCall.cee->name,
2377 st->Ist.WrTmp.data->Iex.CCall.args,
2386 = IRStmt_WrTmp(st->Ist.WrTmp.tmp, ex);
2390 ppIRExpr(st->Ist.WrTmp.data);
2849 st->Ist.Put.offset,
2850 typeOfIRExpr(bb->tyenv,st->Ist.Put.data)
2860 st->Ist.PutI.descr,
2861 st->Ist.PutI.ix,
2862 st->Ist.PutI.bias
2883 t = st->Ist.WrTmp.tmp;
2884 Ist.WrTmp.data);
2977 if (st->Ist.WrTmp.tmp != var)
2979 e = st->Ist.WrTmp.data;
3015 && isAdd32OrSub32(st->Ist.WrTmp.data, &var, &con)) {
3028 st->Ist.WrTmp.tmp,
3049 && st->Ist.WrTmp.data->tag == Iex_GetI
3050 && st->Ist.WrTmp.data->Iex.GetI.ix->tag == Iex_RdTmp
3051 && collapseChain(bb, i-1, st->Ist.WrTmp.data->Iex.GetI.ix
3058 con2 += st->Ist.WrTmp.data->Iex.GetI.bias;
3061 st->Ist.WrTmp.tmp,
3062 IRExpr_GetI(st->Ist.WrTmp.data->Iex.GetI.descr,
3075 && st->Ist.PutI.ix->tag == Iex_RdTmp
3076 && collapseChain(bb, i-1, st->Ist.PutI.ix->Iex.RdTmp.tmp,
3083 con2 += st->Ist.PutI.bias;
3085 = IRStmt_PutI(st->Ist.PutI.descr,
3088 st->Ist.PutI.data);
3141 st->Ist.Put.offset,
3142 typeOfIRExpr(bb->tyenv,st->Ist.Put.data) );
3163 st->Ist.PutI.descr,
3164 st->Ist.PutI.ix,
3165 st->Ist.PutI.bias
3182 return st->Ist.PutI.data;
3190 if (st->Ist.Dirty.details->nFxState > 0)
3214 pi->Ist.PutI.descr, pi->Ist.PutI.ix, pi->Ist.PutI.bias,
3215 s2->Ist.PutI.descr, s2->Ist.PutI.ix, s2->Ist.PutI.bias
3235 getArrayBounds(pi->Ist.PutI.descr, &minoffP, &maxoffP);
3257 if (s2->Ist.Dirty.details->nFxState > 0)
3262 vassert(isIRAtom(s2->Ist.Put.data));
3265 pi->Ist.PutI.descr, pi->Ist.PutI.ix,
3266 s2->Ist.Put.offset,
3267 typeOfIRExpr(tyenv,s2->Ist.Put.data)
3272 vassert(isIRAtom(s2->Ist.PutI.ix));
3273 vassert(isIRAtom(s2->Ist.PutI.data));
3276 pi->Ist.PutI.descr, pi->Ist.PutI.ix, pi->Ist.PutI.bias,
3277 s2->Ist.PutI.descr, s2->Ist.PutI.ix, s2->Ist.PutI.bias
3282 if (s2->Ist.WrTmp.data->tag == Iex_GetI) {
3285 pi->Ist.PutI.descr, pi->Ist.PutI.ix,
3286 pi->Ist.PutI.bias,
3287 s2->Ist.WrTmp.data->Iex.GetI.descr,
3288 s2->Ist.WrTmp.data->Iex.GetI.ix,
3289 s2->Ist.WrTmp.data->Iex.GetI.bias
3293 if (s2->Ist.WrTmp.data->tag == Iex_Get) {
3296 pi->Ist.PutI.descr, pi->Ist.PutI.ix,
3297 s2->Ist.WrTmp.data->Iex.Get.offset,
3298 s2->Ist.WrTmp.data->Iex.Get.ty
3305 vassert(isIRAtom(s2->Ist.Store.addr));
3306 vassert(isIRAtom(s2->Ist.Store.data));
3340 && st->Ist.WrTmp.data->tag == Iex_GetI
3341 && st->Ist.WrTmp.data->Iex.GetI.ix->tag == Iex_RdTmp) {
3342 IRRegArray* descr = st->Ist.WrTmp.data->Iex.GetI.descr;
3343 IRExpr* ix = st->Ist.WrTmp.data->Iex.GetI.ix;
3344 Int bias = st->Ist.WrTmp.data->Iex.GetI.bias;
3352 ppIRExpr(st->Ist.WrTmp.data);
3357 bb->stmts[i] = IRStmt_WrTmp(st->Ist.WrTmp.tmp, replacement);
3495 deltaIRExpr(st->Ist.AbiHint.base, delta);
3496 deltaIRExpr(st->Ist.AbiHint.nia, delta);
3499 deltaIRExpr(st->Ist.Put.data, delta);
3502 deltaIRExpr(st->Ist.PutI.ix, delta);
3503 deltaIRExpr(st->Ist.PutI.data, delta);
3506 st->Ist.WrTmp.tmp += delta;
3507 deltaIRExpr(st->Ist.WrTmp.data, delta);
3510 deltaIRExpr(st->Ist.Exit.guard, delta);
3513 deltaIRExpr(st->Ist.Store.addr, delta);
3514 deltaIRExpr(st->Ist.Store.data, delta);
3517 if (st->Ist.CAS.details->oldHi != IRTemp_INVALID)
3518 st->Ist.CAS.details->oldHi += delta;
3519 st->Ist.CAS.details->oldLo += delta;
3520 deltaIRExpr(st->Ist.CAS.details->addr, delta);
3521 if (st->Ist.CAS.details->expdHi)
3522 deltaIRExpr(st->Ist.CAS.details->expdHi, delta);
3523 deltaIRExpr(st->Ist.CAS.details->expdLo, delta);
3524 if (st->Ist.CAS.details->dataHi)
3525 deltaIRExpr(st->Ist.CAS.details->dataHi, delta);
3526 deltaIRExpr(st->Ist.CAS.details->dataLo, delta);
3529 st->Ist.LLSC.result += delta;
3530 deltaIRExpr(st->Ist.LLSC.addr, delta);
3531 if (st->Ist.LLSC.storedata)
3532 deltaIRExpr(st->Ist.LLSC.storedata, delta);
3535 d = st->Ist.Dirty.details;
3677 if (st->Ist.Exit.jk != Ijk_Boring)
3680 con = st->Ist.Exit.dst;
3684 ? st->Ist.Exit.dst->Ico.U64
3685 : (Addr64)(st->Ist.Exit.dst->Ico.U32);
3718 con = st->Ist.Exit.dst;
3737 st->Ist.Exit.guard
3738 = IRExpr_Unop(Iop_Not1,deepCopyIRExpr(st->Ist.Exit.guard));
3971 aoccCount_Expr(uses, st->Ist.AbiHint.base);
3972 aoccCount_Expr(uses, st->Ist.AbiHint.nia);
3975 aoccCount_Expr(uses, st->Ist.WrTmp.data);
3978 aoccCount_Expr(uses, st->Ist.Put.data);
3981 aoccCount_Expr(uses, st->Ist.PutI.ix);
3982 aoccCount_Expr(uses, st->Ist.PutI.data);
3985 aoccCount_Expr(uses, st->Ist.Store.addr);
3986 aoccCount_Expr(uses, st->Ist.Store.data);
3989 cas = st->Ist.CAS.details;
3999 aoccCount_Expr(uses, st->Ist.LLSC.addr);
4000 if (st->Ist.LLSC.storedata)
4001 aoccCount_Expr(uses, st->Ist.LLSC.storedata);
4004 d = st->Ist.Dirty.details;
4016 aoccCount_Expr(uses, st->Ist.Exit.guard);
4266 atbSubst_Expr(env, st->Ist.AbiHint.base),
4267 st->Ist.AbiHint.len,
4268 atbSubst_Expr(env, st->Ist.AbiHint.nia)
4272 st->Ist.Store.end,
4273 atbSubst_Expr(env, st->Ist.Store.addr),
4274 atbSubst_Expr(env, st->Ist.Store.data)
4278 st->Ist.WrTmp.tmp,
4279 atbSubst_Expr(env, st->Ist.WrTmp.data)
4283 st->Ist.Put.offset,
4284 atbSubst_Expr(env, st->Ist.Put.data)
4288 st->Ist.PutI.descr,
4289 atbSubst_Expr(env, st->Ist.PutI.ix),
4290 st->Ist.PutI.bias,
4291 atbSubst_Expr(env, st->Ist.PutI.data)
4296 atbSubst_Expr(env, st->Ist.Exit.guard),
4297 st->Ist.Exit.jk,
4298 st->Ist.Exit.dst
4301 return IRStmt_IMark(st->Ist.IMark.addr,
4302 st->Ist.IMark.len,
4303 st->Ist.IMark.delta);
4307 return IRStmt_MBE(st->Ist.MBE.event);
4309 cas = st->Ist.CAS.details;
4321 st->Ist.LLSC.end,
4322 st->Ist.LLSC.result,
4323 atbSubst_Expr(env, st->Ist.LLSC.addr),
4324 st->Ist.LLSC.storedata
4325 ? atbSubst_Expr(env, st->Ist.LLSC.storedata) : NULL
4328 d = st->Ist.Dirty.details;
4428 if (st->tag == Ist_WrTmp && uses[st->Ist.WrTmp.tmp] <= 1) {
4433 if (uses[st->Ist.WrTmp.tmp] == 0) {
4437 vassert(uses[st->Ist.WrTmp.tmp] == 1);
4441 e = st->Ist.WrTmp.data;
4443 addToEnvFront(env, st->Ist.WrTmp.tmp, e2);
4630 vassert(isIRAtom(st->Ist.AbiHint.base));
4631 vassert(isIRAtom(st->Ist.AbiHint.nia));
4637 if (st->Ist.WrTmp.data->tag == Iex_GetI)
4639 switch (typeOfIRTemp(bb->tyenv, st->Ist.WrTmp.tmp)) {
4651 vassert(isIRAtom(st->Ist.Put.data));
4654 vassert(isIRAtom(st->Ist.Store.addr));
4655 vassert(isIRAtom(st->Ist.Store.data));
4658 cas = st->Ist.CAS.details;
4666 vassert(isIRAtom(st->Ist.LLSC.addr));
4667 if (st->Ist.LLSC.storedata)
4668 vassert(isIRAtom(st->Ist.LLSC.storedata));
4671 d = st->Ist.Dirty.details;
4683 vassert(isIRAtom(st->Ist.Exit.guard));