Bug 340849

Summary: unsupported AVX instruction on 32 bit
Product: [Developer tools] valgrind Reporter: hanno
Component: generalAssignee: Julian Seward <jseward>
Status: REPORTED ---    
Severity: wishlist CC: mark, sam
Priority: NOR    
Version: 3.10.0   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: c file calling vzeroupper

Description hanno 2014-11-11 14:03:00 UTC
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.
Comment 1 Mark Wielaard 2014-11-18 20:11:56 UTC
 VZEROUPPER is an AVX instruction only supported by valgrind for amd64 (x86_64) executables, not for i386 executables.