diff --git a/llvm/test/tools/llvm-objdump/BPF/disassemble-symbolize-operands.s b/llvm/test/tools/llvm-objdump/BPF/disassemble-symbolize-operands.s new file mode 100644 index 0000000000000..a52ed56d680e3 --- /dev/null +++ b/llvm/test/tools/llvm-objdump/BPF/disassemble-symbolize-operands.s @@ -0,0 +1,24 @@ +# REQUIRES: bpf-registered-target + +## Verify generation of 'Lxx' labels for local jump targets, when +## --symbolize-operands option is specified. + +# RUN: llvm-mc -triple=bpfel %s -filetype=obj -o %t +# RUN: llvm-objdump -d --symbolize-operands --no-show-raw-insn --no-leading-addr %t | \ +# RUN: FileCheck %s + .text +main: + if r1 > 42 goto +2 + r1 -= 10 + goto -3 + r0 = 0 + exit + +# CHECK:
: +# CHECK-NEXT: : +# CHECK-NEXT: if r1 > 0x2a goto +0x2 +# CHECK-NEXT: r1 -= 0xa +# CHECK-NEXT: goto -0x3
+# CHECK-NEXT: : +# CHECK-NEXT: r0 = 0x0 +# CHECK-NEXT: exit diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index d1240025625ca..768a976cd9202 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -1484,9 +1484,11 @@ collectLocalBranchTargets(ArrayRef Bytes, MCInstrAnalysis *MIA, const MCSubtargetInfo *STI, uint64_t SectionAddr, uint64_t Start, uint64_t End, std::unordered_map &Labels) { - // So far only supports PowerPC and X86. + // Supported by certain targets. const bool isPPC = STI->getTargetTriple().isPPC(); - if (!isPPC && !STI->getTargetTriple().isX86()) + const bool isX86 = STI->getTargetTriple().isX86(); + const bool isBPF = STI->getTargetTriple().isBPF(); + if (!isPPC && !isX86 && !isBPF) return; if (MIA)