Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-9915

Disassembler armobjdump -d generates incorrect output

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium

      Attached are two .out files and a Windows batch file. Run the batch file to create two sets of text disassembly output files.

      rm_gcc.dis
      rm_llvm.dis
      rm_ti.dis
      
      tms_gcc.dis
      tms_llvm.dis
      tms_ti.dis
      

      The rm_* ones are based on RM48L952_rtiblinky.out, and the tms_* ones are based on TMS570LC4357_TI_halcogen.out. The *_llvm ones are produced by armobjdump, which is the llvm object file dumper. The *_gcc ones are produced by arm-none-eabi-objdump, which is the GCC object file dumper. The *_ti ones are produced by armdis, the TI disassembler.

      Here is the version for the GCC object file dumper ...

      % arm-none-eabi-objdump --version
      GNU objdump (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 2.29.51.20171128
      Copyright (C) 2017 Free Software Foundation, Inc.
      This program is free software; you may redistribute it under the terms of
      the GNU General Public License version 3 or (at your option) any later version.
      This program has absolutely no warranty.
      

      Compare the files. The GCC and TI files mostly agree, though there are minor differences in how symbols, register names, etc. are handled. The LLVM ones are different. The file rm_llvm.dis has lots of agreements, except for many instructions that are not recognized and disassemble as ...

           284: d1 4f 0e e3                   <unknown>
      ...
           28c: ff 4f 4f e3                   <unknown>
      ...
           290: ed 5f 0e e3                   <unknown>
      

      The file tms_llvm.dis is not the same at all.

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: