|
From: <sv...@va...> - 2006-12-24 02:24:15
|
Author: sewardj
Date: 2006-12-24 02:24:11 +0000 (Sun, 24 Dec 2006)
New Revision: 6416
Log:
Non-functional commit: track IR renaming in vex r1689.
Modified:
trunk/cachegrind/cg_main.c
trunk/callgrind/bb.c
trunk/callgrind/global.h
trunk/callgrind/main.c
trunk/coregrind/m_tooliface.c
trunk/coregrind/m_translate.c
trunk/coregrind/m_transtab.c
trunk/coregrind/pub_core_tooliface.h
trunk/helgrind/hg_main.c
trunk/include/pub_tool_tooliface.h
trunk/lackey/lk_main.c
trunk/massif/ms_main.c
trunk/memcheck/mc_include.h
trunk/memcheck/mc_translate.c
trunk/none/nl_main.c
Modified: trunk/cachegrind/cg_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/cachegrind/cg_main.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/cachegrind/cg_main.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -115,11 +115,11 @@
//------------------------------------------------------------
// Primary data structure #2: InstrInfo table
// - Holds the cached info about each instr that is used for simulation.
-// - table(BB_start_addr, list(InstrInfo))
-// - For each BB, each InstrInfo in the list holds info about the
+// - table(SB_start_addr, list(InstrInfo))
+// - For each SB, each InstrInfo in the list holds info about the
// instruction (instrLen, instrAddr, etc), plus a pointer to its line
// CC. This node is what's passed to the simulation function.
-// - When BBs are discarded the relevant list(instr_details) is freed.
+// - When SBs are discarded the relevant list(instr_details) is freed.
=20
typedef struct _InstrInfo InstrInfo;
struct _InstrInfo {
@@ -128,9 +128,9 @@
LineCC* parent; // parent line-CC
};
=20
-typedef struct _BB_info BB_info;
-struct _BB_info {
- Addr BB_addr; // key; MUST BE FIRST
+typedef struct _SB_info SB_info;
+struct _SB_info {
+ Addr SB_addr; // key; MUST BE FIRST
Int n_instrs;
InstrInfo instrs[0];
};
@@ -407,13 +407,13 @@
Int events_used;
=20
/* The array of InstrInfo bins for the BB. */
- BB_info* bbInfo;
+ SB_info* sbInfo;
=20
/* Number InstrInfo bins 'used' so far. */
- Int bbInfo_i;
+ Int sbInfo_i;
=20
- /* The output BB being constructed. */
- IRBB* bbOut;
+ /* The output SB being constructed. */
+ IRSB* sbOut;
}
CgState;
=20
@@ -425,16 +425,16 @@
// Note that origAddr is the real origAddr, not the address of the first
// instruction in the block (they can be different due to redirection).
static
-BB_info* get_BB_info(IRBB* bbIn, Addr origAddr)
+SB_info* get_SB_info(IRSB* sbIn, Addr origAddr)
{
Int i, n_instrs;
IRStmt* st;
- BB_info* bbInfo;
+ SB_info* sbInfo;
=20
- // Count number of original instrs in BB
+ // Count number of original instrs in SB
n_instrs =3D 0;
- for (i =3D 0; i < bbIn->stmts_used; i++) {
- st =3D bbIn->stmts[i];
+ for (i =3D 0; i < sbIn->stmts_used; i++) {
+ st =3D sbIn->stmts[i];
if (Ist_IMark =3D=3D st->tag) n_instrs++;
}
=20
@@ -442,19 +442,19 @@
// If this assertion fails, there has been some screwup: some
// translations must have been discarded but Cachegrind hasn't discar=
ded
// the corresponding entries in the instr-info table.
- bbInfo =3D VG_(OSet_Lookup)(instrInfoTable, &origAddr);
- tl_assert(NULL =3D=3D bbInfo);
+ sbInfo =3D VG_(OSet_Lookup)(instrInfoTable, &origAddr);
+ tl_assert(NULL =3D=3D sbInfo);
=20
// BB never translated before (at this address, at least; could have
// been unloaded and then reloaded elsewhere in memory)
- bbInfo =3D VG_(OSet_AllocNode)(instrInfoTable,
- sizeof(BB_info) + n_instrs*sizeof(InstrI=
nfo));=20
- bbInfo->BB_addr =3D origAddr;
- bbInfo->n_instrs =3D n_instrs;
- VG_(OSet_Insert)( instrInfoTable, bbInfo );
+ sbInfo =3D VG_(OSet_AllocNode)(instrInfoTable,
+ sizeof(SB_info) + n_instrs*sizeof(InstrI=
nfo));=20
+ sbInfo->SB_addr =3D origAddr;
+ sbInfo->n_instrs =3D n_instrs;
+ VG_(OSet_Insert)( instrInfoTable, sbInfo );
distinct_instrs++;
=20
- return bbInfo;
+ return sbInfo;
}
=20
=20
@@ -490,20 +490,20 @@
InstrInfo* setup_InstrInfo ( CgState* cgs, Addr instr_addr, UInt instr_l=
en )
{
InstrInfo* i_node;
- tl_assert(cgs->bbInfo_i >=3D 0);
- tl_assert(cgs->bbInfo_i < cgs->bbInfo->n_instrs);
- i_node =3D &cgs->bbInfo->instrs[ cgs->bbInfo_i ];
+ tl_assert(cgs->sbInfo_i >=3D 0);
+ tl_assert(cgs->sbInfo_i < cgs->sbInfo->n_instrs);
+ i_node =3D &cgs->sbInfo->instrs[ cgs->sbInfo_i ];
i_node->instr_addr =3D instr_addr;
i_node->instr_len =3D instr_len;
i_node->parent =3D get_lineCC(instr_addr);
- cgs->bbInfo_i++;
+ cgs->sbInfo_i++;
return i_node;
}
=20
=20
/* Generate code for all outstanding memory events, and mark the queue
empty. Code is generated into cgs->bbOut, and this activity
- 'consumes' slots in cgs->bbInfo. */
+ 'consumes' slots in cgs->sbInfo. */
=20
static void flushEvents ( CgState* cgs )
{
@@ -632,7 +632,7 @@
di =3D unsafeIRDirty_0_N( regparms,=20
helperName, VG_(fnptr_to_fnentry)( helperA=
ddr ),=20
argv );
- addStmtToIRBB( cgs->bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( cgs->sbOut, IRStmt_Dirty(di) );
}
=20
cgs->events_used =3D 0;
@@ -706,8 +706,8 @@
=20
=20
static
-IRBB* cg_instrument ( VgCallbackClosure* closure,
- IRBB* bbIn,=20
+IRSB* cg_instrument ( VgCallbackClosure* closure,
+ IRSB* sbIn,=20
VexGuestLayout* layout,=20
VexGuestExtents* vge,
IRType gWordTy, IRType hWordTy )
@@ -716,7 +716,7 @@
IRStmt* st;
Addr64 cia; /* address of current insn */
CgState cgs;
- IRTypeEnv* tyenv =3D bbIn->tyenv;
+ IRTypeEnv* tyenv =3D sbIn->tyenv;
InstrInfo* curr_inode =3D NULL;
=20
if (gWordTy !=3D hWordTy) {
@@ -724,37 +724,37 @@
VG_(tool_panic)("host/guest word size mismatch");
}
=20
- // Set up new BB
- cgs.bbOut =3D dopyIRBBExceptStmts(bbIn);
+ // Set up new SB
+ cgs.sbOut =3D deepCopyIRSBExceptStmts(sbIn);
=20
// Copy verbatim any IR preamble preceding the first IMark
i =3D 0;
- while (i < bbIn->stmts_used && bbIn->stmts[i]->tag !=3D Ist_IMark) {
- addStmtToIRBB( cgs.bbOut, bbIn->stmts[i] );
+ while (i < sbIn->stmts_used && sbIn->stmts[i]->tag !=3D Ist_IMark) {
+ addStmtToIRSB( cgs.sbOut, sbIn->stmts[i] );
i++;
}
=20
// Get the first statement, and initial cia from it
- tl_assert(bbIn->stmts_used > 0);
- tl_assert(i < bbIn->stmts_used);
- st =3D bbIn->stmts[i];
+ tl_assert(sbIn->stmts_used > 0);
+ tl_assert(i < sbIn->stmts_used);
+ st =3D sbIn->stmts[i];
tl_assert(Ist_IMark =3D=3D st->tag);
cia =3D st->Ist.IMark.addr;
=20
// Set up running state and get block info
tl_assert(closure->readdr =3D=3D vge->base[0]);
cgs.events_used =3D 0;
- cgs.bbInfo =3D get_BB_info(bbIn, (Addr)closure->readdr);
- cgs.bbInfo_i =3D 0;
+ cgs.sbInfo =3D get_SB_info(sbIn, (Addr)closure->readdr);
+ cgs.sbInfo_i =3D 0;
=20
if (DEBUG_CG)
VG_(printf)("\n\n---------- cg_instrument ----------\n");
=20
// Traverse the block, initialising inodes, adding events and flushin=
g as
// necessary.
- for (/*use current i*/; i < bbIn->stmts_used; i++) {
+ for (/*use current i*/; i < sbIn->stmts_used; i++) {
=20
- st =3D bbIn->stmts[i];
+ st =3D sbIn->stmts[i];
tl_assert(isFlatIRStmt(st));
=20
switch (st->tag) {
@@ -785,8 +785,8 @@
addEvent_Ir( &cgs, curr_inode );
break;
=20
- case Ist_Tmp: {
- IRExpr* data =3D st->Ist.Tmp.data;
+ case Ist_WrTmp: {
+ IRExpr* data =3D st->Ist.WrTmp.data;
if (data->tag =3D=3D Iex_Load) {
IRExpr* aexpr =3D data->Iex.Load.addr;
// Note also, endianness info is ignored. I guess
@@ -842,7 +842,7 @@
}
=20
/* Copy the original statement */
- addStmtToIRBB( cgs.bbOut, st );
+ addStmtToIRSB( cgs.sbOut, st );
=20
if (DEBUG_CG) {
ppIRStmt(st);
@@ -854,17 +854,17 @@
flushEvents( &cgs );
=20
/* done. stay sane ... */
- tl_assert(cgs.bbInfo_i =3D=3D cgs.bbInfo->n_instrs);
+ tl_assert(cgs.sbInfo_i =3D=3D cgs.sbInfo->n_instrs);
=20
if (DEBUG_CG) {
VG_(printf)( "goto {");
- ppIRJumpKind(bbIn->jumpkind);
+ ppIRJumpKind(sbIn->jumpkind);
VG_(printf)( "} ");
- ppIRExpr( bbIn->next );
+ ppIRExpr( sbIn->next );
VG_(printf)( "}\n");
}
=20
- return cgs.bbOut;
+ return cgs.sbOut;
}
=20
/*------------------------------------------------------------*/
@@ -1232,9 +1232,9 @@
// any reason at all: to free up space, because the guest code was
// unmapped or modified, or for any arbitrary reason.
static
-void cg_discard_basic_block_info ( Addr64 orig_addr64, VexGuestExtents v=
ge )
+void cg_discard_superblock_info ( Addr64 orig_addr64, VexGuestExtents vg=
e )
{
- BB_info* bbInfo;
+ SB_info* sbInfo;
Addr orig_addr =3D (Addr)vge.base[0];
=20
tl_assert(vge.n_used > 0);
@@ -1246,9 +1246,9 @@
=20
// Get BB info, remove from table, free BB info. Simple! Note that =
we
// use orig_addr, not the first instruction address in vge.
- bbInfo =3D VG_(OSet_Remove)(instrInfoTable, &orig_addr);
- tl_assert(NULL !=3D bbInfo);
- VG_(OSet_FreeNode)(instrInfoTable, bbInfo);
+ sbInfo =3D VG_(OSet_Remove)(instrInfoTable, &orig_addr);
+ tl_assert(NULL !=3D sbInfo);
+ VG_(OSet_FreeNode)(instrInfoTable, sbInfo);
}
=20
/*--------------------------------------------------------------------*/
@@ -1349,7 +1349,7 @@
cg_instrument,
cg_fini);
=20
- VG_(needs_basic_block_discards)(cg_discard_basic_block_info);
+ VG_(needs_superblock_discards)(cg_discard_superblock_info);
VG_(needs_command_line_options)(cg_process_cmd_line_option,
cg_print_usage,
cg_print_debug_usage);
Modified: trunk/callgrind/bb.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/bb.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/callgrind/bb.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -235,7 +235,7 @@
* bbIn=3D=3D0 is possible for artifical BB without real code.
* Such a BB is created when returning to an unknown function.
*/
-BB* CLG_(get_bb)(Addr addr, IRBB* bbIn, /*OUT*/ Bool *seen_before)
+BB* CLG_(get_bb)(Addr addr, IRSB* bbIn, /*OUT*/ Bool *seen_before)
{
BB* bb;
obj_node* obj;
Modified: trunk/callgrind/global.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/global.h 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/callgrind/global.h 2006-12-24 02:24:11 UTC (rev 6416)
@@ -668,7 +668,7 @@
/* from main.c */
Bool CLG_(get_debug_info)(Addr, Char filename[FILENAME_LEN],
Char fn_name[FN_NAME_LEN], UInt*, SegInfo**);
-void CLG_(collectBlockInfo)(IRBB* bbIn, UInt*, UInt*, Bool*);
+void CLG_(collectBlockInfo)(IRSB* bbIn, UInt*, UInt*, Bool*);
void CLG_(set_instrument_state)(Char*,Bool);
void CLG_(dump_profile)(Char* trigger,Bool only_current_thread);
void CLG_(zero_all_cost)(Bool only_current_thread);
@@ -683,7 +683,7 @@
/* from bb.c */
void CLG_(init_bb_hash)(void);
bb_hash* CLG_(get_bb_hash)(void);
-BB* CLG_(get_bb)(Addr addr, IRBB* bb_in, Bool *seen_before);
+BB* CLG_(get_bb)(Addr addr, IRSB* bb_in, Bool *seen_before);
void CLG_(delete_bb)(Addr addr);
=20
static __inline__ Addr bb_addr(BB* bb)
Modified: trunk/callgrind/main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/main.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/callgrind/main.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -112,7 +112,7 @@
}
=20
static
-EventSet* insert_simcall(IRBB* bbOut, InstrInfo* ii, UInt dataSize,
+EventSet* insert_simcall(IRSB* bbOut, InstrInfo* ii, UInt dataSize,
Bool instrIssued,
IRExpr* loadAddrExpr, IRExpr* storeAddrExpr)
{
@@ -228,7 +228,7 @@
=20
di =3D unsafeIRDirty_0_N( argc, helperName,=20
VG_(fnptr_to_fnentry)( helperAddr ), a=
rgv);
- addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( bbOut, IRStmt_Dirty(di) );
=20
return es;
}
@@ -239,7 +239,7 @@
* Fills the InstrInfo struct if not seen before
*/
static
-void endOfInstr(IRBB* bbOut, InstrInfo* ii, Bool bb_seen_before,
+void endOfInstr(IRSB* bbOut, InstrInfo* ii, Bool bb_seen_before,
UInt instr_offset, UInt instrLen, UInt dataSize,=20
UInt* cost_offset, Bool instrIssued,
IRExpr* loadAddrExpr, IRExpr* storeAddrExpr)
@@ -344,7 +344,7 @@
*
* Called from CLG_(get_bb)
*/
-void CLG_(collectBlockInfo)(IRBB* bbIn,
+void CLG_(collectBlockInfo)(IRSB* bbIn,
/*INOUT*/ UInt* instrs,
/*INOUT*/ UInt* cjmps,
/*INOUT*/ Bool* cjmp_inverted)
@@ -389,7 +389,7 @@
}
=20
static
-void collectStatementInfo(IRTypeEnv* tyenv, IRBB* bbOut, IRStmt* st,
+void collectStatementInfo(IRTypeEnv* tyenv, IRSB* bbOut, IRStmt* st,
Addr* instrAddr, UInt* instrLen,
IRExpr** loadAddrExpr, IRExpr** storeAddrExpr,
UInt* dataSize, IRType hWordTy)
@@ -419,8 +419,8 @@
*instrLen =3D st->Ist.IMark.len;
break;
=20
- case Ist_Tmp: {
- IRExpr* data =3D st->Ist.Tmp.data;
+ case Ist_WrTmp: {
+ IRExpr* data =3D st->Ist.WrTmp.data;
if (data->tag =3D=3D Iex_Load) {
IRExpr* aexpr =3D data->Iex.Load.addr;
CLG_ASSERT( isIRAtom(aexpr) );
@@ -481,9 +481,9 @@
}
=20
static
-void addConstMemStoreStmt( IRBB* bbOut, UWord addr, UInt val, IRType hWo=
rdTy)
+void addConstMemStoreStmt( IRSB* bbOut, UWord addr, UInt val, IRType hWo=
rdTy)
{
- addStmtToIRBB( bbOut,
+ addStmtToIRSB( bbOut,
IRStmt_Store(CLGEndness,
IRExpr_Const(hWordTy =3D=3D Ity_I32 ?
IRConst_U32( addr ) :
@@ -492,14 +492,14 @@
} =20
=20
static
-IRBB* CLG_(instrument)( VgCallbackClosure* closure,
- IRBB* bbIn,
+IRSB* CLG_(instrument)( VgCallbackClosure* closure,
+ IRSB* bbIn,
VexGuestLayout* layout,
VexGuestExtents* vge,
IRType gWordTy, IRType hWordTy )
{
Int i;
- IRBB* bbOut;
+ IRSB* bbOut;
IRStmt* st, *stnext;
Addr instrAddr, origAddr;
UInt instrLen =3D 0, dataSize;
@@ -529,13 +529,13 @@
=20
CLG_DEBUG(3, "+ instrument(BB %p)\n", (Addr)closure->readdr);
=20
- /* Set up BB for instrumented IR */
- bbOut =3D dopyIRBBExceptStmts(bbIn);
+ /* Set up SB for instrumented IR */
+ bbOut =3D deepCopyIRSBExceptStmts(bbIn);
=20
// Copy verbatim any IR preamble preceding the first IMark
i =3D 0;
while (i < bbIn->stmts_used && bbIn->stmts[i]->tag !=3D Ist_IMark) {
- addStmtToIRBB( bbOut, bbIn->stmts[i] );
+ addStmtToIRSB( bbOut, bbIn->stmts[i] );
i++;
}
=20
@@ -580,7 +580,7 @@
di =3D unsafeIRDirty_0_N( 1, "setup_bbcc",=20
VG_(fnptr_to_fnentry)( & CLG_(setup_bbcc) =
),=20
argv);
- addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( bbOut, IRStmt_Dirty(di) );
=20
instrCount =3D 0;
costOffset =3D 0;
@@ -640,7 +640,7 @@
cJumps++;
}
=20
- addStmtToIRBB( bbOut, st );
+ addStmtToIRSB( bbOut, st );
st =3D stnext;
}=20
while (!beforeIBoundary);
@@ -701,14 +701,14 @@
// any reason at all: to free up space, because the guest code was
// unmapped or modified, or for any arbitrary reason.
static
-void clg_discard_basic_block_info ( Addr64 orig_addr64, VexGuestExtents =
vge )
+void clg_discard_superblock_info ( Addr64 orig_addr64, VexGuestExtents v=
ge )
{
Addr orig_addr =3D (Addr)orig_addr64;
=20
tl_assert(vge.n_used > 0);
=20
if (0)
- VG_(printf)( "discard_basic_block_info: %p, %p, %llu\n",
+ VG_(printf)( "discard_superblock_info: %p, %p, %llu\n",
(void*)(Addr)orig_addr,
(void*)(Addr)vge.base[0], (ULong)vge.len[0]);
=20
@@ -1096,7 +1096,7 @@
CLG_(instrument),
CLG_(fini));
=20
- VG_(needs_basic_block_discards)(clg_discard_basic_block_info);
+ VG_(needs_superblock_discards)(clg_discard_superblock_info);
=20
=20
VG_(needs_command_line_options)(CLG_(process_cmd_line_option),
Modified: trunk/coregrind/m_tooliface.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_tooliface.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/coregrind/m_tooliface.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -40,7 +40,7 @@
=20
void VG_(basic_tool_funcs)(
void(*post_clo_init)(void),
- IRBB*(*instrument)(VgCallbackClosure*, IRBB*,=20
+ IRSB*(*instrument)(VgCallbackClosure*, IRSB*,=20
VexGuestLayout*, VexGuestExtents*, IRType, IRType)=
,
void(*fini)(Int)
)
@@ -86,7 +86,7 @@
.core_errors =3D False,
.tool_errors =3D False,
.libc_freeres =3D False,
- .basic_block_discards =3D False,
+ .superblock_discards =3D False,
.command_line_options =3D False,
.client_requests =3D False,
.syscall_wrapper =3D False,
@@ -164,12 +164,12 @@
NEEDS(data_syms)
NEEDS(xml_output)
=20
-void VG_(needs_basic_block_discards)(
+void VG_(needs_superblock_discards)(
void (*discard)(Addr64, VexGuestExtents)
)
{
- VG_(needs).basic_block_discards =3D True;
- VG_(tdict).tool_discard_basic_block_info =3D discard;
+ VG_(needs).superblock_discards =3D True;
+ VG_(tdict).tool_discard_superblock_info =3D discard;
}
=20
void VG_(needs_tool_errors)(
Modified: trunk/coregrind/m_translate.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_translate.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/coregrind/m_translate.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -208,26 +208,26 @@
we fall back to the case that handles an unknown SP change.
*/
static
-IRBB* vg_SP_update_pass ( void* closureV,
- IRBB* bb_in,=20
+IRSB* vg_SP_update_pass ( void* closureV,
+ IRSB* sb_in,=20
VexGuestLayout* layout,=20
VexGuestExtents* vge,
IRType gWordTy,=20
IRType hWordTy )
{
- Int i, j, minoff_ST, maxoff_ST, sizeof_SP, offset_SP;
- IRDirty *dcall, *d;
- IRStmt* st;
- IRExpr* e;
- IRArray* descr;
- IRType typeof_SP;
- Long delta, con;
+ Int i, j, minoff_ST, maxoff_ST, sizeof_SP, offset_SP;
+ IRDirty *dcall, *d;
+ IRStmt* st;
+ IRExpr* e;
+ IRRegArray* descr;
+ IRType typeof_SP;
+ Long delta, con;
=20
/* Set up BB */
- IRBB* bb =3D emptyIRBB();
- bb->tyenv =3D dopyIRTypeEnv(bb_in->tyenv);
- bb->next =3D dopyIRExpr(bb_in->next);
- bb->jumpkind =3D bb_in->jumpkind;
+ IRSB* bb =3D emptyIRSB();
+ bb->tyenv =3D deepCopyIRTypeEnv(sb_in->tyenv);
+ bb->next =3D deepCopyIRExpr(sb_in->next);
+ bb->jumpkind =3D sb_in->jumpkind;
=20
delta =3D 0;
=20
@@ -258,14 +258,14 @@
"track_" #kind "_mem_stack_" #syze, =
\
VG_(fnptr_to_fnentry)( =
\
VG_(tdict).track_##kind##_mem_stack_##syze ), =
\
- mkIRExprVec_1(IRExpr_Tmp(tmpp)) =
\
+ mkIRExprVec_1(IRExpr_RdTmp(tmpp)) =
\
); =
\
dcall->nFxState =3D 1; =
\
dcall->fxState[0].fx =3D Ifx_Read; =
\
dcall->fxState[0].offset =3D layout->offset_SP; =
\
dcall->fxState[0].size =3D layout->sizeof_SP; =
\
=
\
- addStmtToIRBB( bb, IRStmt_Dirty(dcall) ); =
\
+ addStmtToIRSB( bb, IRStmt_Dirty(dcall) ); =
\
=
\
update_SP_aliases(-delta); =
\
=
\
@@ -275,75 +275,75 @@
=20
clear_SP_aliases();
=20
- for (i =3D 0; i < bb_in->stmts_used; i++) {
+ for (i =3D 0; i < sb_in->stmts_used; i++) {
=20
- st =3D bb_in->stmts[i];
+ st =3D sb_in->stmts[i];
=20
/* t =3D Get(sp): curr =3D t, delta =3D 0 */
- if (st->tag !=3D Ist_Tmp) goto case2;
- e =3D st->Ist.Tmp.data;
+ if (st->tag !=3D Ist_WrTmp) goto case2;
+ e =3D st->Ist.WrTmp.data;
if (e->tag !=3D Iex_Get) goto case2;
if (e->Iex.Get.offset !=3D offset_SP) goto case2;
if (e->Iex.Get.ty !=3D typeof_SP) goto case2;
- add_SP_alias(st->Ist.Tmp.tmp, 0);
- addStmtToIRBB( bb, st );
+ add_SP_alias(st->Ist.WrTmp.tmp, 0);
+ addStmtToIRSB( bb, st );
continue;
=20
case2:
/* t' =3D curr +/- const: curr =3D t', delta +=3D/-=3D const */
- if (st->tag !=3D Ist_Tmp) goto case3;
- e =3D st->Ist.Tmp.data;
+ if (st->tag !=3D Ist_WrTmp) goto case3;
+ e =3D st->Ist.WrTmp.data;
if (e->tag !=3D Iex_Binop) goto case3;
- if (e->Iex.Binop.arg1->tag !=3D Iex_Tmp) goto case3;
- if (!get_SP_delta(e->Iex.Binop.arg1->Iex.Tmp.tmp, &delta)) goto ca=
se3;
+ if (e->Iex.Binop.arg1->tag !=3D Iex_RdTmp) goto case3;
+ if (!get_SP_delta(e->Iex.Binop.arg1->Iex.RdTmp.tmp, &delta)) goto =
case3;
if (e->Iex.Binop.arg2->tag !=3D Iex_Const) goto case3;
if (!IS_ADD_OR_SUB(e->Iex.Binop.op)) goto case3;
con =3D GET_CONST(e->Iex.Binop.arg2->Iex.Const.con);
if (IS_ADD(e->Iex.Binop.op)) {
- add_SP_alias(st->Ist.Tmp.tmp, delta + con);
+ add_SP_alias(st->Ist.WrTmp.tmp, delta + con);
} else {
- add_SP_alias(st->Ist.Tmp.tmp, delta - con);
+ add_SP_alias(st->Ist.WrTmp.tmp, delta - con);
}
- addStmtToIRBB( bb, st );
+ addStmtToIRSB( bb, st );
continue;
=20
case3:
/* t' =3D curr: curr =3D t' */
- if (st->tag !=3D Ist_Tmp) goto case4;
- e =3D st->Ist.Tmp.data;
- if (e->tag !=3D Iex_Tmp) goto case4;
- if (!get_SP_delta(e->Iex.Tmp.tmp, &delta)) goto case4;
- add_SP_alias(st->Ist.Tmp.tmp, delta);
- addStmtToIRBB( bb, st );
+ if (st->tag !=3D Ist_WrTmp) goto case4;
+ e =3D st->Ist.WrTmp.data;
+ if (e->tag !=3D Iex_RdTmp) goto case4;
+ if (!get_SP_delta(e->Iex.RdTmp.tmp, &delta)) goto case4;
+ add_SP_alias(st->Ist.WrTmp.tmp, delta);
+ addStmtToIRSB( bb, st );
continue;
=20
case4:
/* Put(sp) =3D curr */
if (st->tag !=3D Ist_Put) goto case5;
if (st->Ist.Put.offset !=3D offset_SP) goto case5;
- if (st->Ist.Put.data->tag !=3D Iex_Tmp) goto case5;
- if (get_SP_delta(st->Ist.Put.data->Iex.Tmp.tmp, &delta)) {
- IRTemp tttmp =3D st->Ist.Put.data->Iex.Tmp.tmp;
+ if (st->Ist.Put.data->tag !=3D Iex_RdTmp) goto case5;
+ if (get_SP_delta(st->Ist.Put.data->Iex.RdTmp.tmp, &delta)) {
+ IRTemp tttmp =3D st->Ist.Put.data->Iex.RdTmp.tmp;
switch (delta) {
- case 0: addStmtToIRBB(bb,st); contin=
ue;
- case 4: DO(die, 4, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case -4: DO(new, 4, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case 8: DO(die, 8, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case -8: DO(new, 8, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case 12: DO(die, 12, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case -12: DO(new, 12, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case 16: DO(die, 16, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case -16: DO(new, 16, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case 32: DO(die, 32, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case -32: DO(new, 32, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case 112: DO(die, 112, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case -112: DO(new, 112, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case 128: DO(die, 128, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case -128: DO(new, 128, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case 144: DO(die, 144, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case -144: DO(new, 144, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case 160: DO(die, 160, tttmp); addStmtToIRBB(bb,st); contin=
ue;
- case -160: DO(new, 160, tttmp); addStmtToIRBB(bb,st); contin=
ue;
+ case 0: addStmtToIRSB(bb,st); contin=
ue;
+ case 4: DO(die, 4, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case -4: DO(new, 4, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case 8: DO(die, 8, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case -8: DO(new, 8, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case 12: DO(die, 12, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case -12: DO(new, 12, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case 16: DO(die, 16, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case -16: DO(new, 16, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case 32: DO(die, 32, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case -32: DO(new, 32, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case 112: DO(die, 112, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case -112: DO(new, 112, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case 128: DO(die, 128, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case -128: DO(new, 128, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case 144: DO(die, 144, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case -144: DO(new, 144, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case 160: DO(die, 160, tttmp); addStmtToIRSB(bb,st); contin=
ue;
+ case -160: DO(new, 160, tttmp); addStmtToIRSB(bb,st); contin=
ue;
default: =20
/* common values for ppc64: 144 128 160 112 176 */
n_SP_updates_generic_known++;
@@ -359,23 +359,23 @@
generic:
/* Pass both the old and new SP values to this helper. */
old_SP =3D newIRTemp(bb->tyenv, typeof_SP);
- addStmtToIRBB(=20
+ addStmtToIRSB(=20
bb,
- IRStmt_Tmp( old_SP, IRExpr_Get(offset_SP, typeof_SP) )=20
+ IRStmt_WrTmp( old_SP, IRExpr_Get(offset_SP, typeof_SP) )=20
);
=20
dcall =3D unsafeIRDirty_0_N(=20
2/*regparms*/,=20
"VG_(unknown_SP_update)",=20
VG_(fnptr_to_fnentry)( &VG_(unknown_SP_update) ),
- mkIRExprVec_2( IRExpr_Tmp(old_SP), st->Ist.Put.data =
)=20
+ mkIRExprVec_2( IRExpr_RdTmp(old_SP), st->Ist.Put.dat=
a )=20
);
- addStmtToIRBB( bb, IRStmt_Dirty(dcall) );
+ addStmtToIRSB( bb, IRStmt_Dirty(dcall) );
=20
- addStmtToIRBB( bb, st );
+ addStmtToIRSB( bb, st );
=20
clear_SP_aliases();
- add_SP_alias(st->Ist.Put.data->Iex.Tmp.tmp, 0);
+ add_SP_alias(st->Ist.Put.data->Iex.RdTmp.tmp, 0);
continue;
}
=20
@@ -403,9 +403,9 @@
}
=20
/* well, not interesting. Just copy and keep going. */
- addStmtToIRBB( bb, st );
+ addStmtToIRSB( bb, st );
=20
- } /* for (i =3D 0; i < bb_in->stmts_used; i++) */
+ } /* for (i =3D 0; i < sb_in->stmts_used; i++) */
=20
return bb;
=20
@@ -617,11 +617,11 @@
redir stack, checking for stack overflow and generating code to
bomb out if so. */
=20
-static void gen_PUSH ( IRBB* bb, IRExpr* e )
+static void gen_PUSH ( IRSB* bb, IRExpr* e )
{
- IRArray* descr;
- IRTemp t1;
- IRExpr* one;
+ IRRegArray* descr;
+ IRTemp t1;
+ IRExpr* one;
=20
# if defined(VGP_ppc64_linux) || defined(VGP_ppc64_aix5)
Int stack_size =3D VEX_GUEST_PPC64_REDIR_STACK_SIZE;
@@ -655,16 +655,16 @@
vg_assert(sizeof(Word) =3D=3D VG_WORDSIZE);
vg_assert(sizeof(Addr) =3D=3D VG_WORDSIZE);
=20
- descr =3D mkIRArray( offB_REDIR_STACK, ty_Word, stack_size );
+ descr =3D mkIRRegArray( offB_REDIR_STACK, ty_Word, stack_size );
t1 =3D newIRTemp( bb->tyenv, ty_Word );
one =3D mkU(1);
=20
vg_assert(typeOfIRExpr(bb->tyenv, e) =3D=3D ty_Word);
=20
/* t1 =3D guest_REDIR_SP + 1 */
- addStmtToIRBB(
+ addStmtToIRSB(
bb,=20
- IRStmt_Tmp(
+ IRStmt_WrTmp(
t1,=20
IRExpr_Binop(op_Add, IRExpr_Get( offB_REDIR_SP, ty_Word ), one)
)
@@ -675,18 +675,18 @@
this is an unrecoverable error and will lead to Valgrind
shutting down. _EMWARN is set regardless - that's harmless
since is only has a meaning if the exit is taken. */
- addStmtToIRBB(
+ addStmtToIRSB(
bb,
IRStmt_Put(offB_EMWARN, mkU32(EmWarn_PPC64_redir_overflow))
);
- addStmtToIRBB(
+ addStmtToIRSB(
bb,
IRStmt_Exit(
IRExpr_Binop(
op_CmpNE,
IRExpr_Binop(
op_Sar,
- IRExpr_Binop(op_Sub,mkU(stack_size-1),IRExpr_Tmp(t1)),
+ IRExpr_Binop(op_Sub,mkU(stack_size-1),IRExpr_RdTmp(t1)),
mkU8(8 * VG_WORDSIZE - 1)
),
mkU(0)
@@ -697,13 +697,13 @@
);
=20
/* guest_REDIR_SP =3D t1 */
- addStmtToIRBB(bb, IRStmt_Put(offB_REDIR_SP, IRExpr_Tmp(t1)));
+ addStmtToIRSB(bb, IRStmt_Put(offB_REDIR_SP, IRExpr_RdTmp(t1)));
=20
/* guest_REDIR_STACK[t1+0] =3D e */
/* PutI/GetI have I32-typed indexes regardless of guest word size */
- addStmtToIRBB(
+ addStmtToIRSB(
bb,=20
- IRStmt_PutI(descr, narrowTo32(bb->tyenv,IRExpr_Tmp(t1)), 0, e)
+ IRStmt_PutI(descr, narrowTo32(bb->tyenv,IRExpr_RdTmp(t1)), 0, e)
);
}
=20
@@ -712,7 +712,7 @@
stack, binding it to a new temporary, which is returned. As with
gen_PUSH, an overflow check is also performed. */
=20
-static IRTemp gen_POP ( IRBB* bb )
+static IRTemp gen_POP ( IRSB* bb )
{
# if defined(VGP_ppc64_linux) || defined(VGP_ppc64_aix5)
Int stack_size =3D VEX_GUEST_PPC64_REDIR_STACK_SIZE;
@@ -738,34 +738,34 @@
IRExpr*(*mkU)(UInt) =3D mkU32;
# endif
=20
- IRArray* descr =3D mkIRArray( offB_REDIR_STACK, ty_Word, stack_size )=
;
- IRTemp t1 =3D newIRTemp( bb->tyenv, ty_Word );
- IRTemp res =3D newIRTemp( bb->tyenv, ty_Word );
- IRExpr* one =3D mkU(1);
+ IRRegArray* descr =3D mkIRRegArray( offB_REDIR_STACK, ty_Word, stack_=
size );
+ IRTemp t1 =3D newIRTemp( bb->tyenv, ty_Word );
+ IRTemp res =3D newIRTemp( bb->tyenv, ty_Word );
+ IRExpr* one =3D mkU(1);
=20
vg_assert(sizeof(void*) =3D=3D VG_WORDSIZE);
vg_assert(sizeof(Word) =3D=3D VG_WORDSIZE);
vg_assert(sizeof(Addr) =3D=3D VG_WORDSIZE);
=20
/* t1 =3D guest_REDIR_SP */
- addStmtToIRBB(
+ addStmtToIRSB(
bb,=20
- IRStmt_Tmp( t1, IRExpr_Get( offB_REDIR_SP, ty_Word ) )
+ IRStmt_WrTmp( t1, IRExpr_Get( offB_REDIR_SP, ty_Word ) )
);
=20
/* Bomb out if t1 < 0. Same comments as gen_PUSH apply. */
- addStmtToIRBB(
+ addStmtToIRSB(
bb,
IRStmt_Put(offB_EMWARN, mkU32(EmWarn_PPC64_redir_underflow))
);
- addStmtToIRBB(
+ addStmtToIRSB(
bb,
IRStmt_Exit(
IRExpr_Binop(
op_CmpNE,
IRExpr_Binop(
op_Sar,
- IRExpr_Tmp(t1),
+ IRExpr_RdTmp(t1),
mkU8(8 * VG_WORDSIZE - 1)
),
mkU(0)
@@ -777,18 +777,18 @@
=20
/* res =3D guest_REDIR_STACK[t1+0] */
/* PutI/GetI have I32-typed indexes regardless of guest word size */
- addStmtToIRBB(
+ addStmtToIRSB(
bb,
- IRStmt_Tmp(
+ IRStmt_WrTmp(
res,=20
- IRExpr_GetI(descr, narrowTo32(bb->tyenv,IRExpr_Tmp(t1)), 0)
+ IRExpr_GetI(descr, narrowTo32(bb->tyenv,IRExpr_RdTmp(t1)), 0)
)
);
=20
/* guest_REDIR_SP =3D t1-1 */
- addStmtToIRBB(
+ addStmtToIRSB(
bb,=20
- IRStmt_Put(offB_REDIR_SP, IRExpr_Binop(op_Sub, IRExpr_Tmp(t1), one=
))
+ IRStmt_Put(offB_REDIR_SP, IRExpr_Binop(op_Sub, IRExpr_RdTmp(t1), o=
ne))
);
=20
return res;
@@ -801,7 +801,7 @@
intercept the return and restore R2 and L2 to the values saved
here. */
=20
-static void gen_push_and_set_LR_R2 ( IRBB* bb, Addr64 new_R2_value )
+static void gen_push_and_set_LR_R2 ( IRSB* bb, Addr64 new_R2_value )
{
# if defined(VGP_ppc64_linux) || defined(VGP_ppc64_aix5)
Addr64 bogus_RA =3D (Addr64)&VG_(ppctoc_magic_redirect_return_stub);
@@ -809,8 +809,8 @@
Int offB_LR =3D offsetof(VexGuestPPC64State,guest_LR);
gen_PUSH( bb, IRExpr_Get(offB_LR, Ity_I64) );
gen_PUSH( bb, IRExpr_Get(offB_GPR2, Ity_I64) );
- addStmtToIRBB( bb, IRStmt_Put( offB_LR, mkU64( bogus_RA )) );
- addStmtToIRBB( bb, IRStmt_Put( offB_GPR2, mkU64( new_R2_value )) );
+ addStmtToIRSB( bb, IRStmt_Put( offB_LR, mkU64( bogus_RA )) );
+ addStmtToIRSB( bb, IRStmt_Put( offB_GPR2, mkU64( new_R2_value )) );
=20
# elif defined(VGP_ppc32_aix5)
Addr32 bogus_RA =3D (Addr32)&VG_(ppctoc_magic_redirect_return_stub);
@@ -818,15 +818,15 @@
Int offB_LR =3D offsetof(VexGuestPPC32State,guest_LR);
gen_PUSH( bb, IRExpr_Get(offB_LR, Ity_I32) );
gen_PUSH( bb, IRExpr_Get(offB_GPR2, Ity_I32) );
- addStmtToIRBB( bb, IRStmt_Put( offB_LR, mkU32( bogus_RA )) );
- addStmtToIRBB( bb, IRStmt_Put( offB_GPR2, mkU32( new_R2_value )) );
+ addStmtToIRSB( bb, IRStmt_Put( offB_LR, mkU32( bogus_RA )) );
+ addStmtToIRSB( bb, IRStmt_Put( offB_GPR2, mkU32( new_R2_value )) );
=20
# else
# error Platform is not TOC-afflicted, fortunately
# endif
}
=20
-static void gen_pop_R2_LR_then_bLR ( IRBB* bb )
+static void gen_pop_R2_LR_then_bLR ( IRSB* bb )
{
# if defined(VGP_ppc64_linux) || defined(VGP_ppc64_aix5)
Int offB_GPR2 =3D offsetof(VexGuestPPC64State,guest_GPR2);
@@ -835,16 +835,16 @@
IRTemp old_LR =3D newIRTemp( bb->tyenv, Ity_I64 );
/* Restore R2 */
old_R2 =3D gen_POP( bb );
- addStmtToIRBB( bb, IRStmt_Put( offB_GPR2, IRExpr_Tmp(old_R2)) );
+ addStmtToIRSB( bb, IRStmt_Put( offB_GPR2, IRExpr_RdTmp(old_R2)) );
/* Restore LR */
old_LR =3D gen_POP( bb );
- addStmtToIRBB( bb, IRStmt_Put( offB_LR, IRExpr_Tmp(old_LR)) );
+ addStmtToIRSB( bb, IRStmt_Put( offB_LR, IRExpr_RdTmp(old_LR)) );
/* Branch to LR */
/* re boring, we arrived here precisely because a wrapped fn did a
blr (hence Ijk_Ret); so we should just mark this jump as Boring,
else one _Call will have resulted in two _Rets. */
bb->jumpkind =3D Ijk_Boring;
- bb->next =3D IRExpr_Binop(Iop_And64, IRExpr_Tmp(old_LR), mkU64(~(3ULL=
)));
+ bb->next =3D IRExpr_Binop(Iop_And64, IRExpr_RdTmp(old_LR), mkU64(~(3U=
LL)));
=20
# elif defined(VGP_ppc32_aix5)
Int offB_GPR2 =3D offsetof(VexGuestPPC32State,guest_GPR2);
@@ -853,17 +853,17 @@
IRTemp old_LR =3D newIRTemp( bb->tyenv, Ity_I32 );
/* Restore R2 */
old_R2 =3D gen_POP( bb );
- addStmtToIRBB( bb, IRStmt_Put( offB_GPR2, IRExpr_Tmp(old_R2)) );
+ addStmtToIRSB( bb, IRStmt_Put( offB_GPR2, IRExpr_RdTmp(old_R2)) );
/* Restore LR */
old_LR =3D gen_POP( bb );
- addStmtToIRBB( bb, IRStmt_Put( offB_LR, IRExpr_Tmp(old_LR)) );
+ addStmtToIRSB( bb, IRStmt_Put( offB_LR, IRExpr_RdTmp(old_LR)) );
=20
/* Branch to LR */
/* re boring, we arrived here precisely because a wrapped fn did a
blr (hence Ijk_Ret); so we should just mark this jump as Boring,
else one _Call will have resulted in two _Rets. */
bb->jumpkind =3D Ijk_Boring;
- bb->next =3D IRExpr_Binop(Iop_And32, IRExpr_Tmp(old_LR), mkU32(~3));
+ bb->next =3D IRExpr_Binop(Iop_And32, IRExpr_RdTmp(old_LR), mkU32(~3))=
;
=20
# else
# error Platform is not TOC-afflicted, fortunately
@@ -871,13 +871,13 @@
}
=20
static
-Bool mk_preamble__ppctoc_magic_return_stub ( void* closureV, IRBB* bb )
+Bool mk_preamble__ppctoc_magic_return_stub ( void* closureV, IRSB* bb )
{
VgCallbackClosure* closure =3D (VgCallbackClosure*)closureV;
- /* Since we're creating the entire IRBB right here, give it a
+ /* Since we're creating the entire IRSB right here, give it a
proper IMark, as it won't get one any other way, and cachegrind
will barf if it doesn't have one (fair enough really). */
- addStmtToIRBB( bb, IRStmt_IMark( closure->readdr, 4 ) );
+ addStmtToIRSB( bb, IRStmt_IMark( closure->readdr, 4 ) );
/* Generate the magic sequence:
pop R2 from hidden stack
pop LR from hidden stack
@@ -911,13 +911,13 @@
return stub address, and that in that case it can get the real LR
value from the hidden stack instead. */
static=20
-Bool mk_preamble__set_NRADDR_to_zero ( void* closureV, IRBB* bb )
+Bool mk_preamble__set_NRADDR_to_zero ( void* closureV, IRSB* bb )
{
Int nraddr_szB
=3D sizeof(((VexGuestArchState*)0)->guest_NRADDR);
vg_assert(nraddr_szB =3D=3D 4 || nraddr_szB =3D=3D 8);
vg_assert(nraddr_szB =3D=3D VG_WORDSIZE);
- addStmtToIRBB(=20
+ addStmtToIRSB(=20
bb,
IRStmt_Put(=20
offsetof(VexGuestArchState,guest_NRADDR),
@@ -926,7 +926,7 @@
);
# if defined(VG_PLAT_USES_PPCTOC)
{ VgCallbackClosure* closure =3D (VgCallbackClosure*)closureV;
- addStmtToIRBB(
+ addStmtToIRSB(
bb,
IRStmt_Put(
offsetof(VexGuestArchState,guest_NRADDR_GPR2),
@@ -944,14 +944,14 @@
can read _NRADDR and find the address of the function being
wrapped. On toc-afflicted platforms we must also snarf r2. */
static=20
-Bool mk_preamble__set_NRADDR_to_nraddr ( void* closureV, IRBB* bb )
+Bool mk_preamble__set_NRADDR_to_nraddr ( void* closureV, IRSB* bb )
{
VgCallbackClosure* closure =3D (VgCallbackClosure*)closureV;
Int nraddr_szB
=3D sizeof(((VexGuestArchState*)0)->guest_NRADDR);
vg_assert(nraddr_szB =3D=3D 4 || nraddr_szB =3D=3D 8);
vg_assert(nraddr_szB =3D=3D VG_WORDSIZE);
- addStmtToIRBB(=20
+ addStmtToIRSB(=20
bb,
IRStmt_Put(=20
offsetof(VexGuestArchState,guest_NRADDR),
@@ -962,7 +962,7 @@
);
# if defined(VGP_ppc64_linux) || defined(VGP_ppc32_aix5) \
|| defined(VGP_ppc64_aix5)
- addStmtToIRBB(=20
+ addStmtToIRSB(=20
bb,
IRStmt_Put(=20
offsetof(VexGuestArchState,guest_NRADDR_GPR2),
@@ -1067,10 +1067,10 @@
Int tmpbuf_used, verbosity, i;
Bool notrace_until_done, do_self_check;
UInt notrace_until_limit =3D 0;
- Bool (*preamble_fn)(void*,IRBB*);
+ Bool (*preamble_fn)(void*,IRSB*);
VexArch vex_arch;
VexArchInfo vex_archinfo;
- VexMiscInfo vex_miscinfo;
+ VexAbiInfo vex_abiinfo;
VexGuestExtents vge;
VexTranslateArgs vta;
VexTranslateResult tres;
@@ -1217,27 +1217,27 @@
/* Get the CPU info established at startup. */
VG_(machine_get_VexArchInfo)( &vex_arch, &vex_archinfo );
=20
- /* Set up 'misc info' structure with stuff Vex needs to know about
+ /* Set up 'abiinfo' structure with stuff Vex needs to know about
the guest and host ABIs. */
=20
- LibVEX_default_VexMiscInfo( &vex_miscinfo );
- vex_miscinfo.guest_stack_redzone_size =3D VG_STACK_REDZONE_SZB;
+ LibVEX_default_VexAbiInfo( &vex_abiinfo );
+ vex_abiinfo.guest_stack_redzone_size =3D VG_STACK_REDZONE_SZB;
=20
# if defined(VGP_ppc32_linux)
- vex_miscinfo.guest_ppc_zap_RZ_at_blr =3D False;
- vex_miscinfo.guest_ppc_zap_RZ_at_bl =3D NULL;
- vex_miscinfo.host_ppc32_regalign_int64_args =3D True;
+ vex_abiinfo.guest_ppc_zap_RZ_at_blr =3D False;
+ vex_abiinfo.guest_ppc_zap_RZ_at_bl =3D NULL;
+ vex_abiinfo.host_ppc32_regalign_int64_args =3D True;
# endif
# if defined(VGP_ppc64_linux)
- vex_miscinfo.guest_ppc_zap_RZ_at_blr =3D True;
- vex_miscinfo.guest_ppc_zap_RZ_at_bl =3D const_True;
- vex_miscinfo.host_ppc_calls_use_fndescrs =3D True;
+ vex_abiinfo.guest_ppc_zap_RZ_at_blr =3D True;
+ vex_abiinfo.guest_ppc_zap_RZ_at_bl =3D const_True;
+ vex_abiinfo.host_ppc_calls_use_fndescrs =3D True;
# endif
# if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
- vex_miscinfo.guest_ppc_zap_RZ_at_blr =3D False;
- vex_miscinfo.guest_ppc_zap_RZ_at_bl =3D bl_RZ_zap_ok_for_AIX;
- vex_miscinfo.guest_ppc_sc_continues_at_LR =3D True;
- vex_miscinfo.host_ppc_calls_use_fndescrs =3D True;
+ vex_abiinfo.guest_ppc_zap_RZ_at_blr =3D False;
+ vex_abiinfo.guest_ppc_zap_RZ_at_bl =3D bl_RZ_zap_ok_for_AIX;
+ vex_abiinfo.guest_ppc_sc_continues_at_LR =3D True;
+ vex_abiinfo.host_ppc_calls_use_fndescrs =3D True;
# endif
=20
/* Set up closure args. */
@@ -1250,7 +1250,7 @@
vta.archinfo_guest =3D vex_archinfo;
vta.arch_host =3D vex_arch;
vta.archinfo_host =3D vex_archinfo;
- vta.miscinfo_both =3D vex_miscinfo;
+ vta.abiinfo_both =3D vex_abiinfo;
vta.guest_bytes =3D (UChar*)ULong_to_Ptr(addr);
vta.guest_bytes_addr =3D (Addr64)addr;
vta.callback_opaque =3D (void*)&closure;
@@ -1266,14 +1266,14 @@
VgCallbackClosure*. Hence the following longwinded casts.
They are entirely legal but longwinded so as to maximise the
chance of the C typechecker picking up any type snafus. */
- IRBB*(*f)(VgCallbackClosure*,
- IRBB*,VexGuestLayout*,VexGuestExtents*,
+ IRSB*(*f)(VgCallbackClosure*,
+ IRSB*,VexGuestLayout*,VexGuestExtents*,
IRType,IRType)
=3D VG_(tdict).tool_instrument;
- IRBB*(*g)(void*,
- IRBB*,VexGuestLayout*,VexGuestExtents*,
+ IRSB*(*g)(void*,
+ IRSB*,VexGuestLayout*,VexGuestExtents*,
IRType,IRType)
- =3D (IRBB*(*)(void*,IRBB*,VexGuestLayout*,VexGuestExtents*,IRType=
,IRType))f;
+ =3D (IRSB*(*)(void*,IRSB*,VexGuestLayout*,VexGuestExtents*,IRType=
,IRType))f;
vta.instrument1 =3D g;
}
/* No need for type kludgery here. */
Modified: trunk/coregrind/m_transtab.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_transtab.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/coregrind/m_transtab.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -701,8 +701,8 @@
vg_assert(sec->tt[i].n_tte2ec <=3D 3);
n_dump_osize +=3D vge_osize(&sec->tt[i].vge);
/* Tell the tool too. */
- if (VG_(needs).basic_block_discards) {
- VG_TDICT_CALL( tool_discard_basic_block_info,
+ if (VG_(needs).superblock_discards) {
+ VG_TDICT_CALL( tool_discard_superblock_info,
sec->tt[i].entry,
sec->tt[i].vge );
}
@@ -1034,8 +1034,8 @@
n_disc_osize +=3D vge_osize(&tte->vge);
=20
/* Tell the tool too. */
- if (VG_(needs).basic_block_discards) {
- VG_TDICT_CALL( tool_discard_basic_block_info,
+ if (VG_(needs).superblock_discards) {
+ VG_TDICT_CALL( tool_discard_superblock_info,
tte->entry,
tte->vge );
}
Modified: trunk/coregrind/pub_core_tooliface.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/pub_core_tooliface.h 2006-12-24 02:21:49 UTC (rev 641=
5)
+++ trunk/coregrind/pub_core_tooliface.h 2006-12-24 02:24:11 UTC (rev 641=
6)
@@ -83,7 +83,7 @@
Bool libc_freeres;
Bool core_errors;
Bool tool_errors;
- Bool basic_block_discards;
+ Bool superblock_discards;
Bool command_line_options;
Bool client_requests;
Bool syscall_wrapper;
@@ -105,8 +105,8 @@
// Basic functions
void (*tool_pre_clo_init) (void);
void (*tool_post_clo_init)(void);
- IRBB* (*tool_instrument) (VgCallbackClosure*,
- IRBB*,=20
+ IRSB* (*tool_instrument) (VgCallbackClosure*,
+ IRSB*,=20
VexGuestLayout*, VexGuestExtents*,=20
IRType, IRType);
void (*tool_fini) (Int);
@@ -124,8 +124,8 @@
Char* (*tool_get_error_name) (Error*);
void (*tool_print_extra_suppression_info)(Error*);
=20
- // VG_(needs).basic_block_discards
- void (*tool_discard_basic_block_info)(Addr64, VexGuestExtents);
+ // VG_(needs).superblock_discards
+ void (*tool_discard_superblock_info)(Addr64, VexGuestExtents);
=20
// VG_(needs).command_line_options
Bool (*tool_process_cmd_line_option)(Char*);
Modified: trunk/helgrind/hg_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/helgrind/hg_main.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/helgrind/hg_main.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -2297,8 +2297,8 @@
}
#endif
static
-IRBB* hg_instrument ( VgCallbackClosure* closure,
- IRBB* bb,
+IRSB* hg_instrument ( VgCallbackClosure* closure,
+ IRSB* bb,
VexGuestLayout* layout,=20
VexGuestExtents* vge,
IRType gWordTy, IRType hWordTy )
Modified: trunk/include/pub_tool_tooliface.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/pub_tool_tooliface.h 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/include/pub_tool_tooliface.h 2006-12-24 02:24:11 UTC (rev 6416)
@@ -130,8 +130,8 @@
// with code addresses it will get into deep trouble if it does
// make this assumption.
//
- // IRBB* bb_in is the incoming bb to be instrumented, in flat IR
- // form.
+ // IRSB* sb_in is the incoming superblock to be instrumented,
+ // in flat IR form.
//
// VexGuestLayout* layout contains limited info on the layout of
// the guest state: where the stack pointer and program counter
@@ -232,8 +232,8 @@
comment in MC_(instrument) in memcheck/mc_translate.c for
details.
*/
- IRBB*(*instrument)(VgCallbackClosure* closure,=20
- IRBB* bb_in,=20
+ IRSB*(*instrument)(VgCallbackClosure* closure,=20
+ IRSB* sb_in,=20
VexGuestLayout* layout,=20
VexGuestExtents* vge,=20
IRType gWordTy,=20
@@ -345,7 +345,7 @@
.so unloading, or otherwise at the discretion of m_transtab, eg
when the table becomes too full) to avoid stale information being
reused for new translations. */
-extern void VG_(needs_basic_block_discards) (
+extern void VG_(needs_superblock_discards) (
// Discard any information that pertains to specific translations
// or instructions within the address range given. There are two
// possible approaches.
@@ -362,7 +362,7 @@
// translation, and so could be covered by the "extents" of more th=
an
// one call to this function.
// Doing it the first way (as eg. Cachegrind does) is probably easier=
.
- void (*discard_basic_block_info)(Addr64 orig_addr, VexGuestExtents ex=
tents)
+ void (*discard_superblock_info)(Addr64 orig_addr, VexGuestExtents ext=
ents)
);
=20
/* Tool defines its own command line options? */
Modified: trunk/lackey/lk_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/lackey/lk_main.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/lackey/lk_main.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -302,7 +302,7 @@
}
=20
/* A helper that adds the instrumentation for a detail. */
-static void instrument_detail(IRBB* bb, Op op, IRType type)
+static void instrument_detail(IRSB* bb, Op op, IRType type)
{
IRDirty* di;
IRExpr** argv;
@@ -315,7 +315,7 @@
di =3D unsafeIRDirty_0_N( 1, "increment_detail",
VG_(fnptr_to_fnentry)( &increment_detail )=
,=20
argv);
- addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ addStmtToIRSB( bb, IRStmt_Dirty(di) );
}
=20
/* Summarize and print the details. */
@@ -417,7 +417,7 @@
}
=20
=20
-static void flushEvents(IRBB* bb)
+static void flushEvents(IRSB* bb)
{
Int i;
Char* helperName;
@@ -452,7 +452,7 @@
di =3D unsafeIRDirty_0_N( /*regparms*/2,=20
helperName, VG_(fnptr_to_fnentry)( helpe=
rAddr ),
argv );
- addStmtToIRBB( bb, IRStmt_Dirty(di) );
+ addStmtToIRSB( bb, IRStmt_Dirty(di) );
}
=20
events_used =3D 0;
@@ -463,7 +463,7 @@
// must still call this function, addEvent_Ir() -- it is necessary to ad=
d
// the Ir events to the events list so that merging of paired load/store
// events into modify events works correctly.
-static void addEvent_Ir ( IRBB* bb, IRAtom* iaddr, UInt isize )
+static void addEvent_Ir ( IRSB* bb, IRAtom* iaddr, UInt isize )
{
Event* evt;
tl_assert( (VG_MIN_INSTR_SZB <=3D isize && isize <=3D VG_MAX_INSTR_SZ=
B)
@@ -479,7 +479,7 @@
}
=20
static
-void addEvent_Dr ( IRBB* bb, IRAtom* daddr, Int dsize )
+void addEvent_Dr ( IRSB* bb, IRAtom* daddr, Int dsize )
{
Event* evt;
tl_assert(isIRAtom(daddr));
@@ -495,7 +495,7 @@
}
=20
static
-void addEvent_Dw ( IRBB* bb, IRAtom* daddr, Int dsize )
+void addEvent_Dw ( IRSB* bb, IRAtom* daddr, Int dsize )
{
Event* lastEvt;
Event* evt;
@@ -541,15 +541,15 @@
}
=20
static
-IRBB* lk_instrument ( VgCallbackClosure* closure,
- IRBB* bbIn,=20
+IRSB* lk_instrument ( VgCallbackClosure* closure,
+ IRSB* bbIn,=20
VexGuestLayout* layout,=20
VexGuestExtents* vge,
IRType gWordTy, IRType hWordTy )
{
IRDirty* di;
Int i;
- IRBB* bbOut;
+ IRSB* bbOut;
Char fnname[100];
IRType type;
IRTypeEnv* tyenv =3D bbIn->tyenv;
@@ -560,12 +560,12 @@
}
=20
/* Set up BB */
- bbOut =3D dopyIRBBExceptStmts(bbIn);
+ bbOut =3D deepCopyIRSBExceptStmts(bbIn);
=20
// Copy verbatim any IR preamble preceding the first IMark
i =3D 0;
while (i < bbIn->stmts_used && bbIn->stmts[i]->tag !=3D Ist_IMark) {
- addStmtToIRBB( bbOut, bbIn->stmts[i] );
+ addStmtToIRSB( bbOut, bbIn->stmts[i] );
i++;
}
=20
@@ -574,7 +574,7 @@
di =3D unsafeIRDirty_0_N( 0, "add_one_BB_entered",=20
VG_(fnptr_to_fnentry)( &add_one_BB_ente=
red ),
mkIRExprVec_0() );
- addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( bbOut, IRStmt_Dirty(di) );
}
=20
if (clo_trace_mem) {
@@ -590,7 +590,7 @@
di =3D unsafeIRDirty_0_N( 0, "add_one_IRStmt",=20
VG_(fnptr_to_fnentry)( &add_one_IRSt=
mt ),=20
mkIRExprVec_0() );
- addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( bbOut, IRStmt_Dirty(di) );
}
=20
switch (st->tag) {
@@ -599,7 +599,7 @@
case Ist_Put:
case Ist_PutI:
case Ist_MFence:
- addStmtToIRBB( bbOut, st );
+ addStmtToIRSB( bbOut, st );
break;
=20
case Ist_IMark:
@@ -608,10 +608,10 @@
di =3D unsafeIRDirty_0_N( 0, "add_one_guest_instr",
VG_(fnptr_to_fnentry)( &add_on=
e_guest_instr ),=20
mkIRExprVec_0() );
- addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( bbOut, IRStmt_Dirty(di) );
=20
/* An unconditional branch to a known destination in the
- * guest's instructions can be represented, in the IRBB t=
o
+ * guest's instructions can be represented, in the IRSB t=
o
* instrument, by the VEX statements that are the
* translation of that known destination. This feature is
* called 'BB chasing' and can be influenced by command
@@ -631,7 +631,7 @@
0, "add_one_func_call",=20
VG_(fnptr_to_fnentry)( &add_one_func_call )=
,=20
mkIRExprVec_0() );
- addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( bbOut, IRStmt_Dirty(di) );
}
}
if (clo_trace_mem) {
@@ -641,20 +641,20 @@
addEvent_Ir( bbOut, mkIRExpr_HWord( (HWord)st->Ist.IMark.=
addr ),
st->Ist.IMark.len );
}
- addStmtToIRBB( bbOut, st );
+ addStmtToIRSB( bbOut, st );
break;
=20
- case Ist_Tmp:
+ case Ist_WrTmp:
// Add a call to trace_load() if --trace-mem=3Dyes.
if (clo_trace_mem) {
- IRExpr* data =3D st->Ist.Tmp.data;
+ IRExpr* data =3D st->Ist.WrTmp.data;
if (data->tag =3D=3D Iex_Load) {
addEvent_Dr( bbOut, data->Iex.Load.addr,
sizeofIRType(data->Iex.Load.ty) );
}
}
if (clo_detailed_counts) {
- IRExpr* expr =3D st->Ist.Tmp.data;
+ IRExpr* expr =3D st->Ist.WrTmp.data;
type =3D typeOfIRExpr(bbOut->tyenv, expr);
tl_assert(type !=3D Ity_INVALID);
switch (expr->tag) {
@@ -672,7 +672,7 @@
break;
}
}
- addStmtToIRBB( bbOut, st );
+ addStmtToIRSB( bbOut, st );
break;
=20
case Ist_Store:
@@ -686,7 +686,7 @@
tl_assert(type !=3D Ity_INVALID);
instrument_detail( bbOut, OpStore, type );
}
- addStmtToIRBB( bbOut, st );
+ addStmtToIRSB( bbOut, st );
break;
=20
case Ist_Dirty: {
@@ -705,7 +705,7 @@
tl_assert(d->mAddr =3D=3D NULL);
tl_assert(d->mSize =3D=3D 0);
}
- addStmtToIRBB( bbOut, st );
+ addStmtToIRSB( bbOut, st );
break;
}
=20
@@ -715,13 +715,13 @@
di =3D unsafeIRDirty_0_N( 0, "add_one_Jcc",=20
VG_(fnptr_to_fnentry)( &add_on=
e_Jcc ),=20
mkIRExprVec_0() );
- addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( bbOut, IRStmt_Dirty(di) );
}
if (clo_trace_mem) {
flushEvents(bbOut);
}
=20
- addStmtToIRBB( bbOut, st ); // Original statement
+ addStmtToIRSB( bbOut, st ); // Original statement
=20
if (clo_basic_counts) {
/* Count non-taken Jcc */
@@ -729,7 +729,7 @@
VG_(fnptr_to_fnentry)(
&add_one_Jcc_untaken ),
mkIRExprVec_0() );
- addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( bbOut, IRStmt_Dirty(di) );
}
break;
=20
@@ -743,7 +743,7 @@
di =3D unsafeIRDirty_0_N( 0, "add_one_BB_completed",=20
VG_(fnptr_to_fnentry)( &add_one_BB_comp=
leted ),
mkIRExprVec_0() );
- addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
+ addStmtToIRSB( bbOut, IRStmt_Dirty(di) );
}
=20
if (clo_trace_mem) {
Modified: trunk/massif/ms_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/massif/ms_main.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/massif/ms_main.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -1096,8 +1096,8 @@
/*------------------------------------------------------------*/
=20
static
-IRBB* ms_instrument ( VgCallbackClosure* closure,
- IRBB* bb_in,=20
+IRSB* ms_instrument ( VgCallbackClosure* closure,
+ IRSB* bb_in,=20
VexGuestLayout* layout,=20
VexGuestExtents* vge,
IRType gWordTy, IRType hWordTy )
Modified: trunk/memcheck/mc_include.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mc_include.h 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/memcheck/mc_include.h 2006-12-24 02:24:11 UTC (rev 6416)
@@ -314,8 +314,8 @@
=20
/* Functions defined in mc_translate.c */
extern
-IRBB* MC_(instrument) ( VgCallbackClosure* closure,
- IRBB* bb_in,=20
+IRSB* MC_(instrument) ( VgCallbackClosure* closure,
+ IRSB* bb_in,=20
VexGuestLayout* layout,=20
VexGuestExtents* vge,
IRType gWordTy, IRType hWordTy );
Modified: trunk/memcheck/mc_translate.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mc_translate.c 2006-12-24 02:21:49 UTC (rev 6415)
+++ trunk/memcheck/mc_translate.c 2006-12-24 02:24:11 UTC (rev 6416)
@@ -69,8 +69,9 @@
/* Carries around state during memcheck instrumentation. */
typedef
struct _MCEnv {
- /* MODIFIED: the bb being constructed. IRStmts are added. */
- IRBB* bb;
+ /* MODIFIED: the superblock being constructed. IRStmts are
+ added. */
+ IRSB* bb;
=20
/* MODIFIED: a table [0 .. #temps_in_original_bb-1] which maps
original temps to their current their current shadow temp.
@@ -169,7 +170,7 @@
{
if (a1->tag =3D=3D Iex_Const)
return True;
- if (a1->tag =3D=3D Iex_Tmp && a1->Iex.Tmp.tmp < mc...
[truncated message content] |