Bug 233638 - Unhandled instructions bytes: 0x48 0xF 0xFE 0x7E 0x70 0x48
Summary: Unhandled instructions bytes: 0x48 0xF 0xFE 0x7E 0x70 0x48
Status: REPORTED
Alias: None
Product: valgrind
Classification: Developer tools
Component: vex (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks: 253451
  Show dependency treegraph
 
Reported: 2010-04-07 20:14 UTC by Sebastien Cote
Modified: 2016-04-09 11:15 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
workaround for rex.W prefix (2.76 KB, patch)
2010-04-17 16:45 UTC, Sebastien Cote
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sebastien Cote 2010-04-07 20:14:32 UTC
Version:           SVN r1969 (using Devel)
OS:                Linux
Installed from:    Compiled sources

Running valgrind on an application using Intel Performance Primitive libraries, valgrind exits with the following message:

vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0xFE 0x7E 0x70 0x48
==23588== valgrind: Unrecognised instruction at address 0x17783a16.

This can be reproduced with valgrind r11100 and VEX r1969.

Running objdump -d on the library and grepping for these bytes, I get the following instruction:

8e1a4:       48 0f fe 7e 70          rex.W paddd  0x70(%rsi),%mm7
Comment 1 Sebastien Cote 2010-04-07 20:17:39 UTC
I also get another unhandled instruction with IPP (in a different part of the code):

vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0xFC 0xD 0x77 0x8A
==21616== valgrind: Unrecognised instruction at address 0x182e0171.


I get the following from objdump:
65171:   48 0f fc 0d 77 8a 24   rex.W paddb  0x248a77(%rip),%mm1    # 2adbf0 <const_array_of_127b>


I can open another bug for the second instruction if it matters.
Comment 2 Sebastien Cote 2010-04-17 16:45:35 UTC
Created attachment 42847 [details]
workaround for rex.W prefix

Attached workaround for the REX.W prefix. The PMOVMSKB instruction is just ignored for now but with these changes my application can run inside valgrind with memcheck.