H A D | mc_translate.c | 128 static IRExpr* expr2vbits ( struct _MCEnv* mce, IRExpr* e ); 129 static IRTemp findShadowTmpB ( struct _MCEnv* mce, IRTemp orig ); 184 "typeOfIRExpr(mce->bb->tyenv, ...)" at various places in the 210 Shadow IRTemps are therefore allocated on demand. mce.tmpMap is a 228 both the table in mce->sb and to our auxiliary mapping. Note that 229 newTemp may cause mce->tmpMap to resize, hence previous results 230 from VG_(indexXA)(mce->tmpMap) are invalidated. */ 231 static IRTemp newTemp ( MCEnv* mce, IRType ty, TempKind kind ) argument 235 IRTemp tmp = newIRTemp(mce->sb->tyenv, ty); 239 newIx = VG_(addToXA)( mce 247 findShadowTmpV( MCEnv* mce, IRTemp orig ) argument 277 newShadowTmpV( MCEnv* mce, IRTemp orig ) argument 311 isOriginalAtom( MCEnv* mce, IRAtom* a1 ) argument 324 isShadowAtom( MCEnv* mce, IRAtom* a1 ) argument 395 stmt( HChar cat, MCEnv* mce, IRStmt* st ) argument 406 assign( HChar cat, MCEnv* mce, IRTemp tmp, IRExpr* expr ) argument 430 assignNew( HChar cat, MCEnv* mce, IRType ty, IRExpr* e ) argument 468 mkDifD8( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 474 mkDifD16( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 480 mkDifD32( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 486 mkDifD64( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 492 mkDifDV128( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 500 mkUifU8( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 506 mkUifU16( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 512 mkUifU32( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 518 mkUifU64( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 524 mkUifU128( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 538 mkUifUV128( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 544 mkUifU( MCEnv* mce, IRType vty, IRAtom* a1, IRAtom* a2 ) argument 560 mkLeft8( MCEnv* mce, IRAtom* a1 ) argument 565 mkLeft16( MCEnv* mce, IRAtom* a1 ) argument 570 mkLeft32( MCEnv* mce, IRAtom* a1 ) argument 575 mkLeft64( MCEnv* mce, IRAtom* a1 ) argument 585 mkImproveAND8( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 593 mkImproveAND16( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 601 mkImproveAND32( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 609 mkImproveAND64( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 617 mkImproveANDV128( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 628 mkImproveOR8( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 640 mkImproveOR16( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 652 mkImproveOR32( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 664 mkImproveOR64( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 676 mkImproveORV128( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 694 mkPCastTo( MCEnv* mce, IRType dst_ty, IRAtom* vbits ) argument 817 expensiveCmpEQorNE( MCEnv* mce, IRType ty, IRAtom* vxx, IRAtom* vyy, IRAtom* xx, IRAtom* yy ) argument 929 doCmpORD( MCEnv* mce, IROp cmp_op, IRAtom* xxhash, IRAtom* yyhash, IRAtom* xx, IRAtom* yy ) argument 1013 setHelperAnns( MCEnv* mce, IRDirty* di ) argument 1034 complainIfUndefined( MCEnv* mce, IRAtom* atom ) argument 1192 isAlwaysDefd( MCEnv* mce, Int offset, Int size ) argument 1224 do_shadow_PUT( MCEnv* mce, Int offset, IRAtom* atom, IRAtom* vatom ) argument 1262 do_shadow_PUTI( MCEnv* mce, IRRegArray* descr, IRAtom* ix, Int bias, IRAtom* atom ) argument 1304 shadow_GET( MCEnv* mce, Int offset, IRType ty ) argument 1325 shadow_GETI( MCEnv* mce, IRRegArray* descr, IRAtom* ix, Int bias ) argument 1357 mkLazy2( MCEnv* mce, IRType finalVty, IRAtom* va1, IRAtom* va2 ) argument 1405 mkLazy3( MCEnv* mce, IRType finalVty, IRAtom* va1, IRAtom* va2, IRAtom* va3 ) argument 1502 mkLazy4( MCEnv* mce, IRType finalVty, IRAtom* va1, IRAtom* va2, IRAtom* va3, IRAtom* va4 ) argument 1574 mkLazyN( MCEnv* mce, IRAtom** exprvec, IRType finalVtype, IRCallee* cee ) argument 1626 expensiveAddSub( MCEnv* mce, Bool add, IRType ty, IRAtom* qaa, IRAtom* qbb, IRAtom* aa, IRAtom* bb ) argument 1735 scalarShift( MCEnv* mce, IRType ty, IROp original_op, IRAtom* qaa, IRAtom* qbb, IRAtom* aa, IRAtom* bb ) argument 1764 mkPCast8x16( MCEnv* mce, IRAtom* at ) argument 1769 mkPCast16x8( MCEnv* mce, IRAtom* at ) argument 1774 mkPCast32x4( MCEnv* mce, IRAtom* at ) argument 1779 mkPCast64x2( MCEnv* mce, IRAtom* at ) argument 1784 mkPCast32x2( MCEnv* mce, IRAtom* at ) argument 1789 mkPCast16x4( MCEnv* mce, IRAtom* at ) argument 1794 mkPCast8x8( MCEnv* mce, IRAtom* at ) argument 1799 mkPCast16x2( MCEnv* mce, IRAtom* at ) argument 1804 mkPCast8x4( MCEnv* mce, IRAtom* at ) argument 1847 binary32Fx4( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY ) argument 1858 unary32Fx4( MCEnv* mce, IRAtom* vatomX ) argument 1867 binary32F0x4( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY ) argument 1880 unary32F0x4( MCEnv* mce, IRAtom* vatomX ) argument 1893 binary64Fx2( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY ) argument 1904 unary64Fx2( MCEnv* mce, IRAtom* vatomX ) argument 1913 binary64F0x2( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY ) argument 1926 unary64F0x2( MCEnv* mce, IRAtom* vatomX ) argument 1939 binary32Fx2( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY ) argument 1950 unary32Fx2( MCEnv* mce, IRAtom* vatomX ) argument 2046 vectorNarrowBinV128( MCEnv* mce, IROp narrow_op, IRAtom* vatom1, IRAtom* vatom2) argument 2070 vectorNarrowBin64( MCEnv* mce, IROp narrow_op, IRAtom* vatom1, IRAtom* vatom2) argument 2091 vectorNarrowUnV128( MCEnv* mce, IROp narrow_op, IRAtom* vatom1) argument 2129 vectorWidenI64( MCEnv* mce, IROp longen_op, IRAtom* vatom1) argument 2157 binary8Ix16( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2166 binary16Ix8( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2175 binary32Ix4( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2184 binary64Ix2( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2195 binary8Ix8( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2204 binary16Ix4( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2213 binary32Ix2( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2222 binary64Ix1( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2233 binary8Ix4( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2242 binary16Ix2( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 2256 expr2vbits_Qop( MCEnv* mce, IROp op, IRAtom* atom1, IRAtom* atom2, IRAtom* atom3, IRAtom* atom4 ) argument 2299 expr2vbits_Triop( MCEnv* mce, IROp op, IRAtom* atom1, IRAtom* atom2, IRAtom* atom3 ) argument 2368 expr2vbits_Binop( MCEnv* mce, IROp op, IRAtom* atom1, IRAtom* atom2 ) argument 3288 expr2vbits_Unop( MCEnv* mce, IROp op, IRAtom* atom ) argument 3558 expr2vbits_Load_WRK( MCEnv* mce, IREndness end, IRType ty, IRAtom* addr, UInt bias ) argument 3643 expr2vbits_Load( MCEnv* mce, IREndness end, IRType ty, IRAtom* addr, UInt bias ) argument 3673 expr2vbits_Mux0X( MCEnv* mce, IRAtom* cond, IRAtom* expr0, IRAtom* exprX ) argument 3701 expr2vbits( MCEnv* mce, IRExpr* e ) argument 3772 zwidenToHostWord( MCEnv* mce, IRAtom* vatom ) argument 3824 do_shadow_Store( MCEnv* mce, IREndness end, IRAtom* addr, UInt bias, IRAtom* data, IRAtom* vdata, IRAtom* guard ) argument 4016 do_shadow_Dirty( MCEnv* mce, IRDirty* d ) argument 4205 do_AbiHint( MCEnv* mce, IRExpr* base, Int len, IRExpr* nia ) argument 4263 bind_shadow_tmp_to_orig( UChar how, MCEnv* mce, IRAtom* orig, IRAtom* shadow ) argument 4291 do_shadow_CAS( MCEnv* mce, IRCAS* cas ) argument 4424 do_shadow_CAS_single( MCEnv* mce, IRCAS* cas ) argument 4513 do_shadow_CAS_double( MCEnv* mce, IRCAS* cas ) argument 4675 do_shadow_LLSC( MCEnv* mce, IREndness stEnd, IRTemp stResult, IRExpr* stAddr, IRExpr* stStoredata ) argument 4876 MCEnv mce; local 5308 findShadowTmpB( MCEnv* mce, IRTemp orig ) argument 5328 gen_maxU32( MCEnv* mce, IRAtom* b1, IRAtom* b2 ) argument 5333 gen_load_b( MCEnv* mce, Int szB, IRAtom* baseaddr, Int offset ) argument 5390 gen_store_b( MCEnv* mce, Int szB, IRAtom* baseaddr, Int offset, IRAtom* dataB, IRAtom* guard ) argument 5441 narrowTo32( MCEnv* mce, IRAtom* e ) argument 5450 zWidenFrom32( MCEnv* mce, IRType dstTy, IRAtom* e ) argument 5459 schemeE( MCEnv* mce, IRExpr* e ) argument 5595 do_origins_Dirty( MCEnv* mce, IRDirty* d ) argument 5752 do_origins_Store( MCEnv* mce, IREndness stEnd, IRExpr* stAddr, IRExpr* stData ) argument 5771 schemeS( MCEnv* mce, IRStmt* st ) argument [all...] |
H A D | test_main.c | 506 static IRExpr* expr2vbits ( struct _MCEnv* mce, IRExpr* e ); 547 Shadow IRTemps are therefore allocated on demand. mce.tmpMap is a 566 static IRTemp findShadowTmp ( MCEnv* mce, IRTemp orig ) argument 568 tl_assert(orig < mce->n_originalTmps); 569 if (mce->tmpMap[orig] == IRTemp_INVALID) { 570 mce->tmpMap[orig] 571 = newIRTemp(mce->bb->tyenv, 572 shadowType(mce->bb->tyenv->types[orig])); 574 return mce->tmpMap[orig]; 583 static void newShadowTmp ( MCEnv* mce, IRTem argument 607 isOriginalAtom( MCEnv* mce, IRAtom* a1 ) argument 618 isShadowAtom( MCEnv* mce, IRAtom* a1 ) argument 704 assignNew( MCEnv* mce, IRType ty, IRExpr* e ) argument 717 mkDifD8( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 723 mkDifD16( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 729 mkDifD32( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 735 mkDifD64( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 741 mkDifDV128( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 749 mkUifU8( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 755 mkUifU16( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 761 mkUifU32( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 767 mkUifU64( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 773 mkUifUV128( MCEnv* mce, IRAtom* a1, IRAtom* a2 ) argument 779 mkUifU( MCEnv* mce, IRType vty, IRAtom* a1, IRAtom* a2 ) argument 794 mkLeft8( MCEnv* mce, IRAtom* a1 ) argument 804 mkLeft16( MCEnv* mce, IRAtom* a1 ) argument 814 mkLeft32( MCEnv* mce, IRAtom* a1 ) argument 829 mkImproveAND8( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 837 mkImproveAND16( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 845 mkImproveAND32( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 853 mkImproveAND64( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 861 mkImproveANDV128( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 872 mkImproveOR8( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 884 mkImproveOR16( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 896 mkImproveOR32( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 908 mkImproveOR64( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 920 mkImproveORV128( MCEnv* mce, IRAtom* data, IRAtom* vbits ) argument 934 mkPCastTo( MCEnv* mce, IRType dst_ty, IRAtom* vbits ) argument 995 setHelperAnns( MCEnv* mce, IRDirty* di ) argument 1016 complainIfUndefined( MCEnv* mce, IRAtom* atom ) argument 1098 isAlwaysDefd( MCEnv* mce, Int offset, Int size ) argument 1130 do_shadow_PUT( MCEnv* mce, Int offset, IRAtom* atom, IRAtom* vatom ) argument 1160 do_shadow_PUTI( MCEnv* mce, IRRegArray* descr, IRAtom* ix, Int bias, IRAtom* atom ) argument 1195 shadow_GET( MCEnv* mce, Int offset, IRType ty ) argument 1214 shadow_GETI( MCEnv* mce, IRRegArray* descr, IRAtom* ix, Int bias ) argument 1245 mkLazy2( MCEnv* mce, IRType finalVty, IRAtom* va1, IRAtom* va2 ) argument 1264 mkLazyN( MCEnv* mce, IRAtom** exprvec, IRType finalVtype, IRCallee* cee ) argument 1297 expensiveAdd32( MCEnv* mce, IRAtom* qaa, IRAtom* qbb, IRAtom* aa, IRAtom* bb ) argument 1355 mkPCast8x16( MCEnv* mce, IRAtom* at ) argument 1360 mkPCast16x8( MCEnv* mce, IRAtom* at ) argument 1365 mkPCast32x4( MCEnv* mce, IRAtom* at ) argument 1370 mkPCast64x2( MCEnv* mce, IRAtom* at ) argument 1413 binary32Fx4( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY ) argument 1424 unary32Fx4( MCEnv* mce, IRAtom* vatomX ) argument 1433 binary32F0x4( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY ) argument 1446 unary32F0x4( MCEnv* mce, IRAtom* vatomX ) argument 1459 binary64Fx2( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY ) argument 1470 unary64Fx2( MCEnv* mce, IRAtom* vatomX ) argument 1479 binary64F0x2( MCEnv* mce, IRAtom* vatomX, IRAtom* vatomY ) argument 1492 unary64F0x2( MCEnv* mce, IRAtom* vatomX ) argument 1531 vectorNarrowV128( MCEnv* mce, IROp narrow_op, IRAtom* vatom1, IRAtom* vatom2) argument 1555 binary8Ix16( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 1564 binary16Ix8( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 1573 binary32Ix4( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 1582 binary64Ix2( MCEnv* mce, IRAtom* vatom1, IRAtom* vatom2 ) argument 1596 expr2vbits_Binop( MCEnv* mce, IROp op, IRAtom* atom1, IRAtom* atom2 ) argument 1917 expr2vbits_Unop( MCEnv* mce, IROp op, IRAtom* atom ) argument 2007 expr2vbits_LDle_WRK( MCEnv* mce, IRType ty, IRAtom* addr, UInt bias ) argument 2068 expr2vbits_LDle( MCEnv* mce, IRType ty, IRAtom* addr, UInt bias ) argument 2090 expr2vbits_Mux0X( MCEnv* mce, IRAtom* cond, IRAtom* expr0, IRAtom* exprX ) argument 2117 expr2vbits( MCEnv* mce, IRExpr* e ) argument 2172 zwidenToHostWord( MCEnv* mce, IRAtom* vatom ) argument 2203 do_shadow_STle( MCEnv* mce, IRAtom* addr, UInt bias, IRAtom* data, IRAtom* vdata ) argument 2332 do_shadow_Dirty( MCEnv* mce, IRDirty* d ) argument 2581 MCEnv mce; local [all...] |