Bug 110464 - vex amd64->IR: unhandled instruction bytes: 0xDC 0x1D 0xD0 0x32 (fcomp)
Summary: vex amd64->IR: unhandled instruction bytes: 0xDC 0x1D 0xD0 0x32 (fcomp)
Status: RESOLVED FIXED
Alias: None
Product: valgrind
Classification: Developer tools
Component: general (show other bugs)
Version: 3.0.0
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-09 13:54 UTC by Martin Kretzschmar
Modified: 2005-08-10 14:42 UTC (History)
0 users

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 Martin Kretzschmar 2005-08-09 13:54:31 UTC
Version:           3.0.0 (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 4.0.1 
OS:                Linux

I was trying to run OpenOffice.org 2 under valgrind 3.0.0 on AMD64. Didn't work:

==15374== Nulgrind, a binary JIT-compiler.
==15374== Copyright (C) 2002-2005, and GNU GPL'd, by Nicholas Nethercote.
==15374== Using LibVEX rev 1313, a library for dynamic binary translation.
==15374== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==15374== Using valgrind-3.0.0, a dynamic binary instrumentation framework.
==15374== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==15374== For more details, rerun with: -v
==15374==
unhandled opc_aux = 0x 3
first_opcode == 0xDC
vex amd64->IR: unhandled instruction bytes: 0xDC 0x1D 0xD0 0x32

assumed next %rip = 0x27F61B68
 actual next %rip = 0x27F61B62

vex: the `impossible' happened:
   bbToIR_AMD64: disInstr miscalculated next %rip
vex storage:  P 640,  T total 37651088 (804109),  T curr 12360 (343)

valgrind: the 'impossible' happened:
   LibVEX called failure_exit().
==15374==    at 0x7001AB53: vgPlain_core_panic_at (m_libcassert.c:181)
==15374==    by 0x7014CFFF: ???
==15374==    by 0x70029282: vgPlain_do_syscall (m_syscall.c:207)
==15374==    by 0x7001AEAB: vgPlain_write (m_libcfile.c:106)
==15374==    by 0x7001BB31: send_bytes_to_logging_sink (m_libcprint.c:57)
==15374==    by 0x7001AEAB: vgPlain_write (m_libcfile.c:106)
==15374==    by 0x7001BB31: send_bytes_to_logging_sink (m_libcprint.c:57)
==15374==    by 0x7001BC2D: vgPlain_vprintf (m_libcprint.c:103)
==15374==    by 0x700E77FF: (within /usr/lib/valgrind/stage2)

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable
==15374==    at 0x27F647B0: logl (in /lib/libm-2.3.5.so)
==15374==    by 0x27BF10BE: (within /usr/lib/libstlport_gcc.so.4.6)
==15374==    by 0x27BF7151: (within /usr/lib/libstlport_gcc.so.4.6)
==15374==    by 0x27B8FD82: (within /usr/lib/libstlport_gcc.so.4.6)
Comment 1 Tom Hughes 2005-08-09 20:24:58 UTC
That's an fcomp floating point instruction.
Comment 2 Julian Seward 2005-08-10 13:51:34 UTC
Fixed (vex r1323), although I could not test it properly.  Can you
check out the 3.0 line as described at http://www.valgrind.org/devel/cvs_svn.html
and see if it works now?
Comment 3 Martin Kretzschmar 2005-08-10 14:42:01 UTC
Seems to work now. Thanks a lot for the fast fix.