[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 111851] New: vex x86->IR: unhandled instruction bytes: 0x9F 0x89
From:       Christopher Tate <christopher.tate () palmsource ! com>
Date:       2005-08-31 22:03:08
Message-ID: 20050901000306.111851.christopher.tate () palmsource ! com
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=111851         
           Summary: vex x86->IR: unhandled instruction bytes: 0x9F 0x89 0x5C
                    0x24
           Product: valgrind
           Version: 3.0 SVN
          Platform: Compiled Sources
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: memcheck
        AssignedTo: jseward acm org
        ReportedBy: christopher.tate palmsource com


Valgrind 3.x SVN, synced Wednesday 8/31/05 around noon Pacific time, is
apparently unable to handle the "lahf"/"sahf" x86 instructions, and dies via
SIGILL.  Valgrind 2.4 handled these instructions fine.

The code in question isn't easy to provide a reproducible case for; it's the
result of a JIT translation from an ARM instruction stream.  Here's the error
message from valgrind:

vex x86->IR: unhandled instruction bytes: 0x9F 0x89 0x5C 0x24
==4877==
==4877== Process terminating with default action of signal 4 (SIGILL)
==4877==  Illegal opcode at address 0x1D68A775
==4877==    at 0x1D68A775: ???
==4877==    at ....

and here's the full generated code fragment:

        0x1d68a720:     push    ebp
        0x1d68a721:     mov     ebp, esp
        0x1d68a723:     sub     esp, 044h
        0x1d68a726:     push    ebx
        0x1d68a727:     push    ecx
        0x1d68a728:     push    edi
        0x1d68a729:     push    esi
        0x1d68a72a:     mov     eax, [esp+00000005ch]
        0x1d68a72e:     mov     [esp+000000010h], eax
        0x1d68a732:     mov     eax, [esp+000000060h]
        0x1d68a736:     mov     [esp+000000014h], eax
        0x1d68a73a:     mov     eax, [esp+000000010h]
        0x1d68a73e:     mov     ecx, [esp+000000044h]
        0x1d68a742:     mov     [eax+000000b30h], ecx
        0x1d68a748:     mov     edx, eax
        0x1d68a74a:     mov     ebx, [edx+00000081ch]
        0x1d68a750:     mov     esi, [edx+000000818h]
        0x1d68a756:     mov     edi, [edx+000000964h]
        0x1d68a75c:     sub     ebx, 000010000h
        0x1d68a762:     mov     [esp+00000003ch], esi
        0x1d68a766:     shr     esi, 010h
        0x1d68a769:     imul    edi, [esp+000000014h]
        0x1d68a76e:     add     edi, esi
        0x1d68a770:     mov     eax, [esp+000000050h]
        0x1d68a774:     sahf
        0x1d68a775:     lahf
        0x1d68a776:     mov     [esp+000000018h], ebx
        0x1d68a77a:     shr     ebx, 010h
        0x1d68a77d:     mov     [esp+00000003ch], esi
        0x1d68a781:     xchg    esi, ebx
        0x1d68a783:     sub     esi, ebx
        0x1d68a785:     mov     [esp+000000018h], esi
        0x1d68a789:     shl     esi, 010h
        0x1d68a78c:     mov     ebx, [edx+000000968h]
        0x1d68a792:     mov     [esp+000000040h], edi
        0x1d68a796:     shl     edi, 1
        0x1d68a798:     add     ebx, edi
        0x1d68a79a:     mov     edi, [edx+000000e68h]
        0x1d68a7a0:     mov     [esp+000000050h], eax
        0x1d68a7a4:     mov     [esp+000000034h], edx
        0x1d68a7a8:     mov     [esp+000000014h], ebx
        0x1d68a7ac:     mov     [esp+000000018h], esi
        0x1d68a7b0:     mov     [esp+000000020h], edi
        0x1d68a7b4:     mov     eax, [esp+000000014h]
        0x1d68a7b8:     mov     ecx, [esp+000000020h]
        0x1d68a7bc:     mov     [eax], cx
        0x1d68a7c2:     mov     [esp+000000014h], eax
        0x1d68a7c6:     mov     eax, [esp+000000018h]
        0x1d68a7ca:     sub     eax, 000010000h
        0x1d68a7cf:     mov     [esp+000000018h], eax
        0x1d68a7d3:     jnl     01d68a7b4h
        0x1d68a7d9:     mov     eax, [esp+000000034h]
        0x1d68a7dd:     mov     ecx, [eax+000000b30h]
        0x1d68a7e3:     pop     esi
        0x1d68a7e4:     pop     edi
        0x1d68a7e5:     pop     ecx
        0x1d68a7e6:     pop     ebx
        0x1d68a7e7:     mov     esp, ebp
        0x1d68a7e9:     pop     ebp
        0x1d68a7ea:     retn
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic