Bug 292430 - 3.8.0svn build encounters unrecognized instruction in __intel_get_new_mem_ops_cpuid
Summary: 3.8.0svn build encounters unrecognized instruction in __intel_get_new_mem_ops...
Status: RESOLVED FIXED
Alias: None
Product: valgrind
Classification: Developer tools
Component: memcheck (other bugs)
Version First Reported In: 3.7 SVN
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-26 03:14 UTC by Wayne Arnold
Modified: 2012-02-16 19:47 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
test case for reproducing Ilegal Instruction with 3.8.0 svn (306 bytes, text/x-c++src)
2012-01-26 21:21 UTC, Wayne Arnold
Details
binary executable that shows the crash - requires Intel runtim libraries (52.68 KB, application/octet-stream)
2012-01-26 21:23 UTC, Wayne Arnold
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Wayne Arnold 2012-01-26 03:14:27 UTC
Version:           3.7 SVN (using KDE 4.7.4) 
OS:                Linux

build of 3.8.0svn crashes when starting application Maya with  

vex amd64->IR: unhandled instruction bytes: 0xC2 0x0 0x0 0x66 0x66 0x66 0x90 0x6
6
==29784== valgrind: Unrecognised instruction at address 0x12291c95.
==29784==    at 0x12291C95: __intel_get_new_mem_ops_cpuid (in /home/mayadev/bran
ch/main/build/optim/runTime/lib/libintlc.so.5)
==29784==    by 0x3DC180F195: call_init.part.0 (in /lib64/ld-2.14.90.so)
==29784==    by 0x3DC180F272: _dl_init (in /lib64/ld-2.14.90.so)
==29784==    by 0x3DC1801719: ??? (in /lib64/ld-2.14.90.so)
==29784== Your program just tried to execute an instruction that Valgrind


released valgrind 3.7.0 runs the app just fine.   wondering if new code for AVX not quite correct ?

this is from the Intel  11.1.073 compiler   libintlc.so.5

0000000000025c70 <__intel_get_new_mem_ops_cpuid>:
   25c70:       49 89 f8                mov    %rdi,%r8
   25c73:       49 89 f1                mov    %rsi,%r9
   25c76:       50                      push   %rax
   25c77:       53                      push   %rbx
   25c78:       51                      push   %rcx
   25c79:       52                      push   %rdx
   25c7a:       44 89 c0                mov    %r8d,%eax
   25c7d:       0f a2                   cpuid  
   25c7f:       41 89 01                mov    %eax,(%r9)
   25c82:       41 89 59 04             mov    %ebx,0x4(%r9)
   25c86:       41 89 49 08             mov    %ecx,0x8(%r9)
   25c8a:       41 89 51 0c             mov    %edx,0xc(%r9)
   25c8e:       5a                      pop    %rdx
   25c8f:       59                      pop    %rcx
   25c90:       5b                      pop    %rbx
   25c91:       58                      pop    %rax
   25c92:       44 89 c0                mov    %r8d,%eax
   25c95:       c2 00 00                retq   $0x0
   25c98:       66 66 66 90             data32 data32 xchg %ax,%ax
   25c9c:       66 66 66 90             data32 data32 xchg %ax,%ax

--30426-- Contents of /proc/version:
--30426--   Linux version 3.1.9-1.fc16.x86_64 (mockbuild@x86-15.phx2.fedoraproject.org) (gcc version 4.6.2 20111027 (Red Hat 4.6.2-1) (GCC) ) #1 SMP Fri Jan 13 16:37:42 UTC 2012
--30426-- Arch and hwcaps: AMD64, amd64-sse3-cx16
--30426-- Page sizes: currently 4096, max supported 4096
--30426-- Valgrind library directory: /opt/valgrind371svn/lib/valgrind
--30426-- TT/TC: VG_(init_tt_tc) (startup of code management)
--30426-- TT/TC: cache: 8 sectors of 27597024 bytes each = 220776192 total
--30426-- TT/TC: table: 524168 total entries, max occupancy 340704 (65%)


Reproducible: Didn't try

Steps to Reproduce:
attempt to run Maya 2012 under valgrind.   

Actual Results:  
valgrind crashes with unrecognized instruction

Expected Results:  
should run as released valgrind 3.7.0 does

If required I can try to create a simple test case, once I figure out how to call the Intel function
Comment 1 Wayne Arnold 2012-01-26 21:21:57 UTC
Created attachment 68207 [details]
test case for reproducing Ilegal Instruction with 3.8.0 svn

to compile, using Intel 11.1.073  (or probably any Intel 11.1 compiler)

source /opt/intel/Compiler/11.1/073/bin/iccvars.sh intel64
icpc -o C2-crashes -fPIC -xsse3 -axSSE4.2 testme.cpp

then run 3.8.0 svn build of valgrind

valgrind380svn ./C2-crashes
Comment 2 Wayne Arnold 2012-01-26 21:23:42 UTC
Created attachment 68208 [details]
binary executable that shows the crash - requires Intel runtim libraries
Comment 3 Julian Seward 2012-02-10 15:52:17 UTC
Urr, this is a regression caused by the recent overhaul of the
instruction decoding framework for x86_64.  Easily fixed.
Comment 4 Julian Seward 2012-02-16 19:17:51 UTC
Fixed, vex r2255.
Comment 5 Patrick J. LoPresti 2012-02-16 19:47:09 UTC
I can verify that this bug is fixed.  Thanks!