>  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

Reply via email to