Lines Matching defs:st
420 static inline void stmt ( HChar cat, MCEnv* mce, IRStmt* st ) {
423 ppIRStmt(st);
426 addStmtToIRSB(mce->sb, st);
1644 /* Widen 1st arg to I64. Since 1st arg is typically a rounding
1660 /* Widen 1st and 2nd args to I64. Since 1st arg is typically a
1701 /* Widen 1st arg to I128. Since 1st arg is typically a rounding
1719 args to I64 to start with. 1st arg is typically a rounding
1780 /* Widen 1st arg to I64. Since 1st arg is typically a rounding
6105 static void schemeS ( MCEnv* mce, IRStmt* st );
6144 static Bool checkForBogusLiterals ( /*FLAT*/ IRStmt* st )
6150 switch (st->tag) {
6152 e = st->Ist.WrTmp.data;
6191 d = st->Ist.Dirty.details;
6205 return isBogusAtom(st->Ist.Put.data);
6207 return isBogusAtom(st->Ist.PutI.details->ix)
6208 || isBogusAtom(st->Ist.PutI.details->data);
6210 return isBogusAtom(st->Ist.Store.addr)
6211 || isBogusAtom(st->Ist.Store.data);
6213 IRStoreG* sg = st->Ist.StoreG.details;
6218 IRLoadG* lg = st->Ist.LoadG.details;
6223 return isBogusAtom(st->Ist.Exit.guard);
6225 return isBogusAtom(st->Ist.AbiHint.base)
6226 || isBogusAtom(st->Ist.AbiHint.nia);
6232 cas = st->Ist.CAS.details;
6239 return isBogusAtom(st->Ist.LLSC.addr)
6240 || (st->Ist.LLSC.storedata
6241 ? isBogusAtom(st->Ist.LLSC.storedata)
6245 ppIRStmt(st);
6260 IRStmt* st;
6333 st = sb_in->stmts[i];
6334 tl_assert(st);
6335 tl_assert(isFlatIRStmt(st));
6338 bogus = checkForBogusLiterals(st);
6341 ppIRStmt(st);
6358 st = sb_in->stmts[i];
6359 tl_assert(st);
6360 tl_assert(isFlatIRStmt(st));
6418 st = sb_in->stmts[i];
6423 ppIRStmt(st);
6429 if (st->tag != Ist_CAS)
6430 schemeS( &mce, st );
6435 switch (st->tag) {
6438 assign( 'V', &mce, findShadowTmpV(&mce, st->Ist.WrTmp.tmp),
6439 expr2vbits( &mce, st->Ist.WrTmp.data) );
6444 st->Ist.Put.offset,
6445 st->Ist.Put.data,
6450 do_shadow_PUTI( &mce, st->Ist.PutI.details);
6454 do_shadow_Store( &mce, st->Ist.Store.end,
6455 st->Ist.Store.addr, 0/* addr bias */,
6456 st->Ist.Store.data,
6462 do_shadow_StoreG( &mce, st->Ist.StoreG.details );
6466 do_shadow_LoadG( &mce, st->Ist.LoadG.details );
6470 complainIfUndefined( &mce, st->Ist.Exit.guard, NULL );
6481 do_shadow_Dirty( &mce, st->Ist.Dirty.details );
6485 do_AbiHint( &mce, st->Ist.AbiHint.base,
6486 st->Ist.AbiHint.len,
6487 st->Ist.AbiHint.nia );
6491 do_shadow_CAS( &mce, st->Ist.CAS.details );
6502 st->Ist.LLSC.end,
6503 st->Ist.LLSC.result,
6504 st->Ist.LLSC.addr,
6505 st->Ist.LLSC.storedata );
6510 ppIRStmt(st);
6514 } /* switch (st->tag) */
6528 if (st->tag != Ist_CAS)
6529 stmt('C', &mce, st);
6670 IRStmt* st;
6682 st = sb_in->stmts[i];
6683 tl_assert(st);
6684 if (st->tag != Ist_Dirty)
6686 di = st->Ist.Dirty.details;
7339 static void schemeS ( MCEnv* mce, IRStmt* st )
7343 switch (st->tag) {
7354 IRPutI *puti = st->Ist.PutI.details;
7382 do_origins_Dirty( mce, st->Ist.Dirty.details );
7386 do_origins_Store_plain( mce, st->Ist.Store.end,
7387 st->Ist.Store.addr,
7388 st->Ist.Store.data );
7392 do_origins_StoreG( mce, st->Ist.StoreG.details );
7396 do_origins_LoadG( mce, st->Ist.LoadG.details );
7404 if (st->Ist.LLSC.storedata == NULL) {
7407 = typeOfIRTemp(mce->sb->tyenv, st->Ist.LLSC.result);
7409 = IRExpr_Load(st->Ist.LLSC.end, resTy, st->Ist.LLSC.addr);
7412 assign( 'B', mce, findShadowTmpB(mce, st->Ist.LLSC.result),
7416 do_origins_Store_plain( mce, st->Ist.LLSC.end,
7417 st->Ist.LLSC.addr,
7418 st->Ist.LLSC.storedata );
7423 assign( 'B', mce, findShadowTmpB(mce, st->Ist.LLSC.result),
7432 st->Ist.Put.offset,
7433 sizeofIRType(typeOfIRExpr(mce->sb->tyenv, st->Ist.Put.data))
7438 schemeE( mce, st->Ist.Put.data )) );
7444 assign( 'B', mce, findShadowTmpB(mce, st->Ist.WrTmp.tmp),
7445 schemeE(mce, st->Ist.WrTmp.data) );
7456 ppIRStmt(st);