bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/16893] New: libopcodes decodes some x86 prefixes incorrect


From: rsc at swtch dot com
Subject: [Bug binutils/16893] New: libopcodes decodes some x86 prefixes incorrectly
Date: Thu, 01 May 2014 19:35:57 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=16893

            Bug ID: 16893
           Summary: libopcodes decodes some x86 prefixes incorrectly
           Product: binutils
           Version: 2.24
            Status: NEW
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: rsc at swtch dot com

Created attachment 7574
  --> https://sourceware.org/bugzilla/attachment.cgi?id=7574&action=edit
32-bit x86 elf executable containing test sequences

[Related to PR binutils/16891 but not the same.]

The attached test.elf contains a torture test every 32 bytes. libopcodes gets
the wrong answer for all of them. (I removed the ones it gets correct.)

g% x86_64-linux-elf-objdump -d -z test.elf | grep '[89][0-9a-f][02468ace]0:' |
sed 's/.*://' | sort | uniq -c
   2     66                       addr16
   2     66                       ds
   1     66                       lock
   5     66                       ss
  20     f2                       addr16
  22     f2                       data16
   8     f2                       ds
  10     f2                       lock
   3     f2                       ss
  27     f3                       addr16
  22     f3                       data16
   6     f3                       ds
  25     f3                       lock
  16     f3                       repnz
   4     f3                       ss
g% 

(66 is data16, f2 is repnz, f3 is repz).

Here are the first few. I am attaching the full objdump output as objdump.out.

    8000:    f2                       data16
    8001:    66 0f 11 22              movupd %xmm4,(%edx)
    8005:    33 44 55 66              xor    0x66(%ebp,%edx,2),%eax
    8009:    77 88                    ja     0x7f93
    800b:    5f                       pop    %edi

    8020:    f2                       data16
    8021:    66 90                    xchg   %ax,%ax
    8023:    11 22                    adc    %esp,(%edx)
    8025:    33 44 55 66              xor    0x66(%ebp,%edx,2),%eax
    8029:    77 88                    ja     0x7fb3
    802b:    5f                       pop    %edi

    8040:    f2                       addr16
    8041:    67 66 0f 11 22           movupd %xmm4,(%bp,%si)
    8046:    33 44 55 66              xor    0x66(%ebp,%edx,2),%eax
    804a:    77 88                    ja     0x7fd4
    804c:    5f                       pop    %edi

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]