| Summary: | amd64->IR: unhandled instruction bytes | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | 4ctrl.alt.del |
| Component: | vex | Assignee: | Julian Seward <jseward> |
| Status: | RESOLVED NOT A BUG | ||
| Severity: | crash | CC: | mark, tom |
| Priority: | NOR | ||
| Version First Reported In: | 3.14.0 | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | Full output of valgrind crashing | ||
It seems to be executing code in the qtcore library. This library was compiled with the following relevant flags from my systems configuration: "-O2 -march=bdver1 -pipe" I'm guessing the -march flag is relevant to this. This is vpcomw xmm1,xmm0,xmm1,0x4 disassembled. vpcomw is part of the AMD XOP instruction set: https://en.wikipedia.org/wiki/XOP_instruction_set gcc -march=bdver1 enables this instruction set (among others): bdver1 CPUs based on AMD Family 15h cores with x86-64 instruction set support. (This supersets FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM and 64-bit instruction set extensions.) I'm confused why valgrind version 3.14 released in October of 2018 does not recognize an XOP instruction that AMD announced in May of 2008. Because nobody has provided a patch to implement it? Perhaps you are under the belief that we have a full time team of programmers paid to read each new architecture and immediately implement all the new instructions? I'm afraid that is not how it works. The simple answer is that commonly used instructions are always going to be the first to get implemented when only limited resources are available, and instructions specific to a minority processor brand are less likely to get done because most people build code to target a broad range of processors so will never encounter such instructions. Of course if somebody offers a high quality patch to implement them then I'm sure it would be gratefully accepted. That makes sense thanks. It looks like XOP was abandoned by AMD with Zen which probably makes it even less of a priority. I'm going to close this, since supporting this insn set extension is not on our radar. Plus, it seems easy to work around. |
Created attachment 121325 [details] Full output of valgrind crashing When I call valgrind to profile my Qt program it fails with the following vex message: vex amd64->IR: unhandled instruction bytes: 0x8F 0xE8 0x78 0xCD 0xC9 0x4 0xC5 0xF9 0xD7 0xC9 vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0 vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 uname -a: Linux chimera 4.19.27-gentoo-r1 #1 SMP Tue Apr 16 08:41:25 PDT 2019 x86_64 AMD FX(tm)-9370 Eight-Core Processor AuthenticAMD GNU/Linux GCC: gcc (Gentoo 8.3.0-r1 p1.1) 8.3.0 KDE Plasma version: 5.15.5 Qt Version: 5.12.3