Bug 340849 - unsupported AVX instruction on 32 bit
Summary: unsupported AVX instruction on 32 bit
Status: REPORTED
Alias: None
Product: valgrind
Classification: Unclassified
Component: general (show other bugs)
Version: 3.10.0
Platform: Gentoo Packages Linux
: NOR wishlist (vote)
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-11 14:03 UTC by hanno
Modified: 2014-11-18 20:11 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
c file calling vzeroupper (38 bytes, text/x-csrc)
2014-11-11 14:03 UTC, hanno
Details

Note You need to log in before you can comment on or make changes to this bug.
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.