IRSB* sbIn,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
Int i, isize;
IRSB* sbIn,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
Int i;
void VG_(basic_tool_funcs)(
void(*post_clo_init)(void),
IRSB*(*instrument)(VgCallbackClosure*, IRSB*,
- VexGuestLayout*, VexGuestExtents*, IRType, IRType),
+ VexGuestLayout*, VexGuestExtents*, VexArchInfo*,
+ IRType, IRType),
void(*fini)(Int)
)
{
IRSB* sb_in,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* vai,
IRType gWordTy,
IRType hWordTy )
{
sb_in,
layout,
vge,
+ vai,
gWordTy,
hWordTy),
layout,
IRSB* sb_in,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* vai,
IRType gWordTy,
IRType hWordTy )
{
They are entirely legal but longwinded so as to maximise the
chance of the C typechecker picking up any type snafus. */
IRSB*(*f)(VgCallbackClosure*,
- IRSB*,VexGuestLayout*,VexGuestExtents*,
+ IRSB*,VexGuestLayout*,VexGuestExtents*, VexArchInfo*,
IRType,IRType)
= VG_(clo_vgdb) != Vg_VgdbNo
? tool_instrument_then_gdbserver_if_needed
: VG_(tdict).tool_instrument;
IRSB*(*g)(void*,
- IRSB*,VexGuestLayout*,VexGuestExtents*,
+ IRSB*,VexGuestLayout*,VexGuestExtents*,VexArchInfo*,
IRType,IRType)
- = (IRSB*(*)(void*,IRSB*,VexGuestLayout*,VexGuestExtents*,IRType,IRType))f;
+ = (IRSB*(*)(void*,IRSB*,VexGuestLayout*,VexGuestExtents*,
+ VexArchInfo*,IRType,IRType))f;
vta.instrument1 = g;
}
/* No need for type kludgery here. */
IRSB* (*tool_instrument) (VgCallbackClosure*,
IRSB*,
VexGuestLayout*, VexGuestExtents*,
- IRType, IRType);
+ VexArchInfo*, IRType, IRType);
void (*tool_fini) (Int);
// VG_(needs).core_errors
IRSB* const bb_in,
VexGuestLayout* const layout,
VexGuestExtents* const vge,
+ VexArchInfo* archinfo_host,
IRType const gWordTy,
IRType const hWordTy)
{
IRSB* const bb_in,
VexGuestLayout* const layout,
VexGuestExtents* const vge,
+ VexArchInfo* const archinfo_host,
IRType const gWordTy,
IRType const hWordTy);
void DRD_(trace_mem_access)(const Addr addr, const SizeT size,
static IRSB* bbv_instrument ( VgCallbackClosure* closure,
IRSB* sbIn, VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
Int i,n_instrs=1;
IRSB* sbIn,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
Int i, n = 0;
IRSB* sbIn,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
Bool verboze = 0||False;
IRSB* sbIn,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy );
#endif
IRSB* bbIn,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
Int i;
IRSB* sb_in,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy,
IRType hWordTy),
IRSB* sbIn,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
IRDirty* di;
IRSB* sbIn,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
if (! have_started_executing_code) {
IRSB* bb_in,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy );
IRSB* MC_(final_tidy) ( IRSB* );
IRSB* sb_in,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
Bool verboze = 0||False;
IRSB* bb,
VexGuestLayout* layout,
VexGuestExtents* vge,
+ VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
return bb;