[all-commits] [llvm/llvm-project] 657e06: [ARMInstPrinter] Print the target address of a bra...

Igor Kudrin via All-commits all-commits at lists.llvm.org
Wed Jun 30 02:36:12 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 657e067bb58c585400d62d6b260301ca0fdb7b48
      https://github.com/llvm/llvm-project/commit/657e067bb58c585400d62d6b260301ca0fdb7b48
  Author: Igor Kudrin <ikudrin at accesssoftek.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M lld/test/COFF/arm-thumb-thunks-multipass.s
    M lld/test/COFF/arm-thumb-thunks.s
    M lld/test/COFF/armnt-blx23t.test
    M lld/test/COFF/armnt-branch24t.test
    M lld/test/COFF/delayimports-armnt.yaml
    M lld/test/ELF/arm-bl-v6-inrange.s
    M lld/test/ELF/arm-bl-v6.s
    M lld/test/ELF/arm-blx.s
    M lld/test/ELF/arm-branch-rangethunk.s
    M lld/test/ELF/arm-branch-undef-weak-plt-thunk.s
    M lld/test/ELF/arm-branch.s
    M lld/test/ELF/arm-exidx-canunwind.s
    M lld/test/ELF/arm-exidx-gc.s
    M lld/test/ELF/arm-extreme-range-pi-thunk.s
    M lld/test/ELF/arm-fix-cortex-a8-blx.s
    M lld/test/ELF/arm-fix-cortex-a8-nopatch.s
    M lld/test/ELF/arm-fix-cortex-a8-plt.s
    M lld/test/ELF/arm-fix-cortex-a8-recognize.s
    M lld/test/ELF/arm-fix-cortex-a8-thunk-align.s
    M lld/test/ELF/arm-fix-cortex-a8-thunk.s
    M lld/test/ELF/arm-force-pi-thunk.s
    M lld/test/ELF/arm-gnu-ifunc-plt.s
    M lld/test/ELF/arm-gnu-ifunc.s
    M lld/test/ELF/arm-long-thunk-converge.s
    M lld/test/ELF/arm-plt-reloc.s
    M lld/test/ELF/arm-thumb-branch.s
    M lld/test/ELF/arm-thumb-condbranch-thunk.s
    M lld/test/ELF/arm-thumb-interwork-abs.s
    M lld/test/ELF/arm-thumb-interwork-ifunc.s
    M lld/test/ELF/arm-thumb-interwork-notfunc.s
    M lld/test/ELF/arm-thumb-interwork-shared.s
    M lld/test/ELF/arm-thumb-interwork-thunk-v5.s
    M lld/test/ELF/arm-thumb-interwork-thunk.s
    M lld/test/ELF/arm-thumb-mix-range-thunk-os.s
    M lld/test/ELF/arm-thumb-narrow-branch-check.s
    M lld/test/ELF/arm-thumb-no-undefined-thunk.s
    M lld/test/ELF/arm-thumb-plt-range-thunk-os.s
    M lld/test/ELF/arm-thumb-plt-reloc.s
    M lld/test/ELF/arm-thumb-range-thunk-os.s
    M lld/test/ELF/arm-thumb-thunk-empty-pass.s
    M lld/test/ELF/arm-thumb-thunk-v6m.s
    M lld/test/ELF/arm-thumb-undefined-weak-narrow.test
    M lld/test/ELF/arm-thumb-undefined-weak.s
    M lld/test/ELF/arm-thunk-arm-thumb-reuse.s
    M lld/test/ELF/arm-thunk-largesection.s
    M lld/test/ELF/arm-thunk-linkerscript-dotexpr.s
    M lld/test/ELF/arm-thunk-linkerscript-large.s
    M lld/test/ELF/arm-thunk-linkerscript-orphan.s
    M lld/test/ELF/arm-thunk-linkerscript-sort.s
    M lld/test/ELF/arm-thunk-linkerscript.s
    M lld/test/ELF/arm-thunk-many-passes.s
    M lld/test/ELF/arm-thunk-multipass-plt.s
    M lld/test/ELF/arm-thunk-multipass.s
    M lld/test/ELF/arm-thunk-nosuitable.s
    M lld/test/ELF/arm-thunk-re-add.s
    M lld/test/ELF/arm-undefined-weak.s
    M llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
    M llvm/test/CodeGen/ARM/Windows/division-range.ll
    M llvm/test/MC/ARM/arm-macho-calls.s
    M llvm/test/MC/ARM/branch-disassemble.s
    M llvm/test/MC/ARM/coff-relocations.s
    M llvm/test/MC/ARM/thumb-cb-thumbfunc.s
    M llvm/test/MC/ARM/thumb1-relax-bcc.s
    M llvm/test/MC/ARM/thumb1-relax-br.s
    M llvm/test/MC/ARM/thumb2-b.w-target.s
    M llvm/test/MC/ARM/thumb2-cbn-to-next-inst.s
    M llvm/test/MC/Disassembler/ARM/mve-lol.txt
    M llvm/test/tools/llvm-objdump/ELF/ARM/branch-symbols.s
    M llvm/test/tools/llvm-objdump/ELF/ARM/invalid-instruction.s
    M llvm/test/tools/llvm-objdump/ELF/ARM/tblxi-target.s
    M llvm/test/tools/llvm-objdump/ELF/ARM/unknown-instr.test

  Log Message:
  -----------
  [ARMInstPrinter] Print the target address of a branch instruction

This follows other patches that changed printing immediate values of
branch instructions to target addresses, see D76580 (x86), D76591 (PPC),
D77853 (AArch64).

As observing immediate values might sometimes be useful, they are
printed as comments for branch instructions.

// llvm-objdump -d output (before)
000200b4 <_start>:
   200b4: ff ff ff fa   blx     #-4 <thumb>
000200b8 <thumb>:
   200b8: ff f7 fc ef   blx     #-8 <_start>

// llvm-objdump -d output (after)
000200b4 <_start>:
   200b4: ff ff ff fa   blx     0x200b8 <thumb>         @ imm = #-4
000200b8 <thumb>:
   200b8: ff f7 fc ef   blx     0x200b4 <_start>        @ imm = #-8

// GNU objdump -d.
000200b4 <_start>:
   200b4:       faffffff        blx     200b8 <thumb>
000200b8 <thumb>:
   200b8:       f7ff effc       blx     200b4 <_start>

Differential Revision: https://reviews.llvm.org/D104701




More information about the All-commits mailing list