> I don't understand why it fails unless if was added since you checked
out from SVN.
Ok apparently there have been some changes to the guest_amd64_toIR.c file
since I checked out, everything runs fine with the HEAD revision :).
Apologies for not having tested this, but what are the chances that my
problem got fixed in the last week right ;).
Thank you Eliot and Philippe for your time.
Steve
On Sun, Feb 26, 2012 at 11:32 AM, Philippe Waroquiers <
philippe.waroqui...@skynet.be> wrote:
> On Sat, 2012-02-25 at 22:10 +0100, Steve Burden wrote:
> >
> > I should've mentioned of course that I'm using 3.8.0-SVN, checked out
> > about a week ago (at home now so I cannot check the exact revision
> > number right now).
> >
> >
> > In any case, the fresh air on the walk home made me think:
> > 0x000000000616aeee <+606>: prefetchw BYTE PTR [rdi+0x340]
> > The prefetchw instruction doesn't sound as something common to me, so
> > I would not be surprised if it is not implemented in Callgrind/LibVex.
> > I can't explain yet why that instruction is hit only with certain data
> > though.
> >
> >
> > Is there an 'implemented instructions' list available for LibVex ?
> I guess the only way for this is to look at guest_amd64_toIR.c
>
> It looks like that prefetchw instruction should be supported
> (see below extract of the code).
> What you could do is to replace the 'goto decode_failure'
> with {
> VG_(printf) ("describe decode failure here\n");
> goto decode_failure;
> }
> then run and see why it cannot be decoded.
> You might also put Valgrind in gdb (see README_DEVELOPPERS),
> and put breaks on the VG_(printf).
>
> Philippe
>
>
>
> /* =-=-=-=-=-=-=-=-=- PREFETCH =-=-=-=-=-=-=-=-=-= */
> case 0x0D: /* 0F 0D /0 -- prefetch mem8 */
> /* 0F 0D /1 -- prefetchw mem8 */
> if (have66orF2orF3(pfx)) goto decode_failure;
> modrm = getUChar(delta);
> if (epartIsReg(modrm)) goto decode_failure;
> if (gregLO3ofRM(modrm) != 0 && gregLO3ofRM(modrm) != 1)
> goto decode_failure;
>
> addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
> delta += alen;
>
> switch (gregLO3ofRM(modrm)) {
> case 0: DIP("prefetch %s\n", dis_buf); break;
> case 1: DIP("prefetchw %s\n", dis_buf); break;
> default: vassert(0); /*NOTREACHED*/
> }
> break;
>
>
>
>
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users