| Summary: | unsupported AVX instruction on 32 bit | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | hanno |
| Component: | general | Assignee: | Julian Seward <jseward> |
| Status: | REPORTED --- | ||
| Severity: | wishlist | CC: | mark, sam |
| Priority: | NOR | ||
| Version First Reported In: | 3.10.0 | ||
| Target Milestone: | --- | ||
| Platform: | Gentoo Packages | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | c file calling vzeroupper | ||
VZEROUPPER is an AVX instruction only supported by valgrind for amd64 (x86_64) executables, not for i386 executables. |
Created attachment 89535 [details] c file calling vzeroupper When I try to valgrind a 32-bit program which contains the vzeroupper instruction valgrind will report an illegal instruction: vex x86->IR: unhandled instruction bytes: 0xC5 0xF8 0x77 0x5D See attached PoC, compile it with gcc -m32 and run valgrind on the output. This is not a constructed example, it happened to me while running real-world debugging. Seems the 32 bit libc on my system contains this instruction in the function vsprintf.