|
From: John R. <jr...@bi...> - 2012-03-13 19:39:05
|
> vex x86->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0x16 > ==18426== at 0x804BE18: manhattan(unsigned char const*, unsigned char const*) (emmintrin.h:208) That's "PEXTRD r/m32, xmm2, Ib" which extracts a 32-bit wide, 32-bit aligned, known-in-advance slice from xmm2, then places the slice into a general register or memory location. The opcode is from the SSE4.1 extensions, and occupies four bytes; the valgrind report omits the operands. The easiest way to deal with this is to ask the compiler not to use SSE4.1. (In this case the compiler probably would store the 128-bit xmm2 into memory, then fetch the selected 32-bit slice.) Otherwise, it's somewhat tedious work inside valgrind's VEX x86->IR translator. -- |