Hi Julian,

Pleased to get an answer from the original author of Valgrind !

The fix you suggested seems to work on my application.

I had to fix the following cases found afterwards.
Could you confirm the fixes are correct ?

Regards,
Marc

vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0x64 0x74 0x1C 0x20 0xF 
0xDB

      case 0x64: 
      case 0x65: 
      case 0x66: /* PCMPGTgg (src)mmxreg-or-mem, (dst)mmxreg */
         if (sz != 4 && sz != 8)
            goto mmx_decode_failure;
         delta = dis_MMXop_regmem_to_reg ( vbi, pfx, delta, opc, "pcmpgt", True 
);
         break;

vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0xD7 0xC0 0x48 0x85 0xC0 
0xF

   /* ***--- this is an MMX class insn introduced in SSE1 ---*** */
   /* 0F D7 = PMOVMSKB -- extract sign bits from each of 8 lanes in
      mmx(G), turn them into a byte, and put zero-extend of it in
      ireg(G). */
   if (haveNo66noF2noF3(pfx) && ( sz == 4 || sz == 8 )
       && insn[0] == 0x0F && insn[1] == 0xD7) {


vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0xEB 0x7C 0x24 0x60 0xF 
0x6F

      case 0xEB: /* POR (src)mmxreg-or-mem, (dst)mmxreg */
         if (sz != 4 && sz != 8)
            goto mmx_decode_failure;
         delta = dis_MMXop_regmem_to_reg ( vbi, pfx, delta, opc, "por", False );
         break;



-----Message d'origine-----
De : Julian Seward [mailto:[email protected]] 
Envoyé : mardi 5 juin 2012 02:47
À : [email protected]; [email protected]
Cc : Amstoutz Marc
Objet : Re: [Valgrind-users] how to disable unhandled instruction bytes error 
reporting

On Monday, June 04, 2012, Eliot Moss wrote:
> unhandled here).  A quick look suggests that this is a PADDB instruction.

Yes, 64-bit (MMX) PADDB.  Problem is it has a redundant REX prefix
(IPP is very strong on those, for some reason), and Valgrind pretty
much rejects all redundant REX prefixes.

Marc, in guest_amd64_toIR.c find this

      case 0xFC: 
      case 0xFD: 
      case 0xFE: /* PADDgg (src)mmxreg-or-mem, (dst)mmxreg */
         if (sz != 4) 
            goto mmx_decode_failure;
         delta = dis_MMXop_regmem_to_reg ( vbi, pfx, delta, opc, "padd", True 
);
         break;

and change (sz != 4) to (sz != 4 && sz != 8).  That might help.

J



> I think someone has been working on adding some of those instructions
> latelt; it *might* be covered if you grab and build from svn head.
> 
> Regards -- Eliot Moss (a fellow user and occasional patch contributor)
> 
> ---------------------------------------------------------------------------
> --- Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Valgrind-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/valgrind-users


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to