valgrind does not recognize opcode 0x660F3A21 (INSERTPS of SSE 4.1)

Bug #514771 reported by Sebastian Scherer
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
valgrind (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: valgrind

I wanted to use valgrind's memcheck to debug a program. Unfortunately, it relies on some SSE intrinsics.

Valgrind stops (unhandled instruction bytes) when it encounters this opcode: 0x66 0xF 0x3A 0x21. The opcode is in this case produced by gcc (4.4.1) from the instrinsic _mm_setr_ps, defined in xmmintrin.h. It seems to correspond to the mnemonic INSERTPS introduced in SSE 4.1.

I am using the 1:3.5.0-2ubuntu2 version of valgrind which is the latest one in Karmic Koala.

Tags: sse valgrind
Revision history for this message
Loïc Minier (lool) wrote :

Would you mind attaching a test case?

Revision history for this message
Alessandro Ghedini (ghedo) wrote :

Valgrind has a quite complete support for SSE 4.1 now. Also, I cannot reproduce the problem with the following test case:

% cat insertps.c
int main(void) {
 asm(".byte 0x66, 0xF, 0x3A, 0x21");

 return 0;
}

Which is disassembled by gdb as:

   0x00000000004004a0 <+0>: mov eax,0x0
   0x00000000004004a5 <+5>: mov DWORD PTR [rsp-0x4],0x0
   0x00000000004004ad <+13>: insertps xmm0,xmm3,0x90

Changed in valgrind (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.