Bug 339416 - unhandled instruction bytes 0xC5 0xF1 0xEF 0xC9 [AVX]
Summary: unhandled instruction bytes 0xC5 0xF1 0xEF 0xC9 [AVX]
Status: REOPENED
Alias: None
Product: valgrind
Classification: Developer tools
Component: vex (show other bugs)
Version: 3.9.0
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-26 10:37 UTC by Pedro Ferreira
Modified: 2023-05-09 09:03 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pedro Ferreira 2014-09-26 10:37:41 UTC
This is against version 3.10 which doesn't show on the "Version" field.

The relevant log is:
vex x86->IR: unhandled instruction bytes: 0xC5 0xF1 0xEF 0xC9
==16952== valgrind: Unrecognised instruction at address 0x41b220b5.
==16952==    at 0x41B220B5: _mm_unpacklo_epi8 (emmintrin.h:968)
==16952==    by 0x41B220B5: fromLatin1_helper (qstring.cpp:3848)
==16952==    by 0x41B220B5: QString::fromLatin1_helper(char const*, int) (qstring.cpp:3815)
==16952==    by 0x41ACA677: QString (qstring.h:694)
==16952==    by 0x41ACA677: QLibraryInfoPrivate::findConfiguration() (qlibraryinfo.cpp:111)
==16952==    by 0x41ACA892: QLibrarySettings::QLibrarySettings() (qlibraryinfo.cpp:102)
==16952==    by 0x41ACA93E: qt_library_settings() (qlibraryinfo.cpp:82)
==16952==    by 0x41ACAC1F: configuration (qlibraryinfo.cpp:96)
==16952==    by 0x41ACAC1F: QLibraryInfo::location(QLibraryInfo::LibraryLocation) (qlibraryinfo.cpp:242)
==16952==    by 0x41BE9BE1: QCoreApplication::libraryPaths() (qcoreapplication.cpp:2502)
==16952==    by 0x41BEA45B: QCoreApplication::init() (qcoreapplication.cpp:778)
==16952==    by 0x41BEA658: QCoreApplication::QCoreApplication(QCoreApplicationPrivate&) (qcoreapplication.cpp:667)
==16952==    by 0x425CD91F: QApplication::QApplication(int&, char**, int) (qapplication.cpp:740)

GDB disassembly says:
1: x/i 0x41B220B5
   0x41b220b5 <QString::fromLatin1_helper(char const*, int)+117>:       vpxor  %xmm1,%xmm1,%xmm1

Reproducible: Always

Steps to Reproduce:
1. Build a Qt4 app
2. Call the Qt function using the unhandled instruction
3. Valgrind returns an error and kills the application with SIGILL

Actual Results:  
Valgrind returns an error and kills the application with SIGILL
Comment 1 Tom Hughes 2023-05-09 09:02:58 UTC
That is an AVX512 instruction, or at least uses EVEX encoding, which means it is dependent on AVX512 support being added.

*** This bug has been marked as a duplicate of bug 383010 ***
Comment 2 Tom Hughes 2023-05-09 09:03:29 UTC
Scratch that I'm talking nonsense - that is VEX encoding.