From: Fangrui Song Date: Wed, 1 May 2019 10:40:48 +0000 (+0000) Subject: [llvm-objdump] Print newlines before and after "Disassembly of section ...:" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2a774bf95f823db240e3e16624516dc3b8e519ed;p=llvm [llvm-objdump] Print newlines before and after "Disassembly of section ...:" This improves readability and the behavior is consistent with GNU objdump. The new test test/tools/llvm-objdump/X86/disassemble-section-name.s checks we print newlines before and after "Disassembly of section ...:" Differential Revision: https://reviews.llvm.org/D61127 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359668 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/MC/ARM/elf-movt.s b/test/MC/ARM/elf-movt.s index d1e6bd7916d..e7ffeba9744 100644 --- a/test/MC/ARM/elf-movt.s +++ b/test/MC/ARM/elf-movt.s @@ -30,6 +30,7 @@ bar: @ ASM-NEXT: movt r0, :upper16:((foo-bar)+1234) @OBJ: Disassembly of section .text: +@OBJ-EMPTY: @OBJ-NEXT: barf: @OBJ-NEXT: 0: f0 0f 0f e3 movw r0, #65520 @OBJ-NEXT: 00000000: R_ARM_MOVW_PREL_NC GOT @@ -43,6 +44,7 @@ bar: @OBJ-NEXT: 14: 00 00 40 e3 movt r0, #0 @THUMB: Disassembly of section .text: +@THUMB-EMPTY: @THUMB-NEXT: barf: @THUMB-NEXT: 0: 4f f6 f0 70 movw r0, #65520 @THUMB-NEXT: 00000000: R_ARM_THM_MOVW_PREL_NC GOT diff --git a/test/MC/ELF/relax-arith.s b/test/MC/ELF/relax-arith.s index 56b7c399c44..1591a77f22d 100644 --- a/test/MC/ELF/relax-arith.s +++ b/test/MC/ELF/relax-arith.s @@ -5,6 +5,7 @@ bar: // CHECK: Disassembly of section imul: +// CHECK-EMPTY: // CHECK-NEXT: imul: // CHECK-NEXT: 0: 66 69 db 00 00 imulw $0, %bx, %bx // CHECK-NEXT: 5: 66 69 1c 25 00 00 00 00 00 00 imulw $0, 0, %bx @@ -21,6 +22,7 @@ bar: imul $foo, bar, %rbx // CHECK: Disassembly of section and: +// CHECK-EMPTY: // CHECK-NEXT: and: // CHECK-NEXT: 0: 66 81 e3 00 00 andw $0, %bx // CHECK-NEXT: 5: 66 81 24 25 00 00 00 00 00 00 andw $0, 0 @@ -37,6 +39,7 @@ bar: andq $foo, bar // CHECK: Disassembly of section or: +// CHECK-EMPTY: // CHECK-NEXT: or: // CHECK-NEXT: 0: 66 81 cb 00 00 orw $0, %bx // CHECK-NEXT: 5: 66 81 0c 25 00 00 00 00 00 00 orw $0, 0 @@ -53,6 +56,7 @@ bar: orq $foo, bar // CHECK: Disassembly of section xor: +// CHECK-EMPTY: // CHECK-NEXT: xor: // CHECK-NEXT: 0: 66 81 f3 00 00 xorw $0, %bx // CHECK-NEXT: 5: 66 81 34 25 00 00 00 00 00 00 xorw $0, 0 @@ -69,6 +73,7 @@ bar: xorq $foo, bar // CHECK: Disassembly of section add: +// CHECK-EMPTY: // CHECK-NEXT: add: // CHECK-NEXT: 0: 66 81 c3 00 00 addw $0, %bx // CHECK-NEXT: 5: 66 81 04 25 00 00 00 00 00 00 addw $0, 0 @@ -85,6 +90,7 @@ bar: addq $foo, bar // CHECK: Disassembly of section sub: +// CHECK-EMPTY: // CHECK-NEXT: sub: // CHECK-NEXT: 0: 66 81 eb 00 00 subw $0, %bx // CHECK-NEXT: 5: 66 81 2c 25 00 00 00 00 00 00 subw $0, 0 @@ -101,6 +107,7 @@ bar: subq $foo, bar // CHECK: Disassembly of section cmp: +// CHECK-EMPTY: // CHECK-NEXT: cmp: // CHECK-NEXT: 0: 66 81 fb 00 00 cmpw $0, %bx // CHECK-NEXT: 5: 66 81 3c 25 00 00 00 00 00 00 cmpw $0, 0 @@ -117,6 +124,7 @@ bar: cmpq $foo, bar // CHECK: Disassembly of section push: +// CHECK-EMPTY: // CHECK-NEXT: push: // CHECK-NEXT: 0: 66 68 00 00 pushw $0 // CHECK-NEXT: 4: 68 00 00 00 00 pushq $0 @@ -125,6 +133,7 @@ bar: push $foo // CHECK: Disassembly of section adc: +// CHECK-EMPTY: // CHECK-NEXT: adc: // CHECK-NEXT: 0: 66 81 d3 00 00 adcw $0, %bx // CHECK-NEXT: 5: 66 81 14 25 00 00 00 00 00 00 adcw $0, 0 @@ -141,6 +150,7 @@ bar: adcq $foo, bar // CHECK: Disassembly of section sbb: +// CHECK-EMPTY: // CHECK-NEXT: sbb: // CHECK-NEXT: 0: 66 81 db 00 00 sbbw $0, %bx // CHECK-NEXT: 5: 66 81 1c 25 00 00 00 00 00 00 sbbw $0, 0 diff --git a/test/MC/ELF/relax-arith2.s b/test/MC/ELF/relax-arith2.s index b05418482e3..19dacbf64ef 100644 --- a/test/MC/ELF/relax-arith2.s +++ b/test/MC/ELF/relax-arith2.s @@ -5,6 +5,7 @@ bar: // CHECK: Disassembly of section imul: +// CHECK-EMPTY: // CHECK-NEXT: imul: // CHECK-NEXT: 0: 66 6b db 80 imulw $-128, %bx, %bx // CHECK-NEXT: 4: 66 6b 1c 25 00 00 00 00 7f imulw $127, 0, %bx @@ -22,6 +23,7 @@ bar: // CHECK: Disassembly of section and: +// CHECK-EMPTY: // CHECK-NEXT: and: // CHECK-NEXT: 0: 66 83 e3 7f andw $127, %bx // CHECK-NEXT: 4: 66 83 24 25 00 00 00 00 00 andw $0, 0 @@ -38,6 +40,7 @@ bar: andq $-128, bar // CHECK: Disassembly of section or: +// CHECK-EMPTY: // CHECK-NEXT: or: // CHECK-NEXT: 0: 66 83 cb 00 orw $0, %bx // CHECK-NEXT: 4: 66 83 0c 25 00 00 00 00 01 orw $1, 0 @@ -54,6 +57,7 @@ bar: orq $127, bar // CHECK: Disassembly of section xor: +// CHECK-EMPTY: // CHECK-NEXT: xor: // CHECK-NEXT: 0: 66 83 f3 01 xorw $1, %bx // CHECK-NEXT: 4: 66 83 34 25 00 00 00 00 ff xorw $-1, 0 @@ -70,6 +74,7 @@ bar: xorq $0, bar // CHECK: Disassembly of section add: +// CHECK-EMPTY: // CHECK-NEXT: add: // CHECK-NEXT: 0: 66 83 c3 ff addw $-1, %bx // CHECK-NEXT: 4: 66 83 04 25 00 00 00 00 2a addw $42, 0 @@ -86,6 +91,7 @@ bar: addq $1, bar // CHECK: Disassembly of section sub: +// CHECK-EMPTY: // CHECK-NEXT: sub: // CHECK-NEXT: 0: 66 83 eb 2a subw $42, %bx // CHECK-NEXT: 4: 66 83 2c 25 00 00 00 00 80 subw $-128, 0 @@ -102,6 +108,7 @@ bar: subq $-1, bar // CHECK: Disassembly of section cmp: +// CHECK-EMPTY: // CHECK-NEXT: cmp: // CHECK-NEXT: 0: 66 83 fb 80 cmpw $-128, %bx // CHECK-NEXT: 4: 66 83 3c 25 00 00 00 00 7f cmpw $127, 0 @@ -118,6 +125,7 @@ bar: cmpq $42, bar // CHECK: Disassembly of section push: +// CHECK-EMPTY: // CHECK-NEXT: push: // CHECK-NEXT: 0: 66 6a 80 pushw $-128 // CHECK-NEXT: 3: 66 6a 7f pushw $127 diff --git a/test/MC/ELF/relax-arith3.s b/test/MC/ELF/relax-arith3.s index 3be8b0ee870..88f7ba30e32 100644 --- a/test/MC/ELF/relax-arith3.s +++ b/test/MC/ELF/relax-arith3.s @@ -5,6 +5,7 @@ bar: // CHECK: Disassembly of section imul: +// CHECK-EMPTY: // CHECK-NEXT: imul: // CHECK-NEXT: 0: 66 69 1d 00 00 00 00 00 00 imulw $0, (%rip), %bx // CHECK-NEXT: 9: 69 1d 00 00 00 00 00 00 00 00 imull $0, (%rip), %ebx @@ -16,6 +17,7 @@ bar: // CHECK: Disassembly of section and: +// CHECK-EMPTY: // CHECK-NEXT: and: // CHECK-NEXT: 0: 66 81 25 00 00 00 00 00 00 andw $0, (%rip) // CHECK-NEXT: 9: 81 25 00 00 00 00 00 00 00 00 andl $0, (%rip) @@ -26,6 +28,7 @@ bar: andq $foo, bar(%rip) // CHECK: Disassembly of section or: +// CHECK-EMPTY: // CHECK-NEXT: or: // CHECK-NEXT: 0: 66 81 0d 00 00 00 00 00 00 orw $0, (%rip) // CHECK-NEXT: 9: 81 0d 00 00 00 00 00 00 00 00 orl $0, (%rip) @@ -36,6 +39,7 @@ bar: orq $foo, bar(%rip) // CHECK: Disassembly of section xor: +// CHECK-EMPTY: // CHECK-NEXT: xor: // CHECK-NEXT: 0: 66 81 35 00 00 00 00 00 00 xorw $0, (%rip) // CHECK-NEXT: 9: 81 35 00 00 00 00 00 00 00 00 xorl $0, (%rip) @@ -46,6 +50,7 @@ bar: xorq $foo, bar(%rip) // CHECK: Disassembly of section add: +// CHECK-EMPTY: // CHECK-NEXT: add: // CHECK-NEXT: 0: 66 81 05 00 00 00 00 00 00 addw $0, (%rip) // CHECK-NEXT: 9: 81 05 00 00 00 00 00 00 00 00 addl $0, (%rip) @@ -56,6 +61,7 @@ bar: addq $foo, bar(%rip) // CHECK: Disassembly of section sub: +// CHECK-EMPTY: // CHECK-NEXT: sub: // CHECK-NEXT: 0: 66 81 2d 00 00 00 00 00 00 subw $0, (%rip) // CHECK-NEXT: 9: 81 2d 00 00 00 00 00 00 00 00 subl $0, (%rip) @@ -66,6 +72,7 @@ bar: subq $foo, bar(%rip) // CHECK: Disassembly of section cmp: +// CHECK-EMPTY: // CHECK-NEXT: cmp: // CHECK-NEXT: 0: 66 81 3d 00 00 00 00 00 00 cmpw $0, (%rip) // CHECK-NEXT: 9: 81 3d 00 00 00 00 00 00 00 00 cmpl $0, (%rip) diff --git a/test/MC/ELF/relax-arith4.s b/test/MC/ELF/relax-arith4.s index 3fd3cadb76a..2a01fb3e7ab 100644 --- a/test/MC/ELF/relax-arith4.s +++ b/test/MC/ELF/relax-arith4.s @@ -5,6 +5,7 @@ // relax-arith.s and relax-arith2.s. // CHECK: Disassembly of section push8: +// CHECK-EMPTY: // CHECK-NEXT: push8: // CHECK-NEXT: 0: 66 6a 80 pushw $-128 // CHECK-NEXT: 3: 66 6a 7f pushw $127 @@ -17,6 +18,7 @@ push $127 // CHECK: Disassembly of section push32: +// CHECK-EMPTY: // CHECK-NEXT: push32: // CHECK-NEXT: 0: 66 68 00 00 pushw $0 // CHECK-NEXT: 4: 68 00 00 00 00 pushl $0 diff --git a/test/MC/X86/disassemble-zeroes.s b/test/MC/X86/disassemble-zeroes.s index 2ecfdad0c2d..b84b86808fb 100644 --- a/test/MC/X86/disassemble-zeroes.s +++ b/test/MC/X86/disassemble-zeroes.s @@ -5,8 +5,7 @@ // This test checks that we follow these rules and can force // dissasembly of zero blocks with the -z and --disassemble-zeroes options. -// NODISASM: Disassembly of section .text: -// NODISASM-NEXT: 0000000000000000 main: +// NODISASM: 0000000000000000 main: // NODISASM-NEXT: 0: 00 00 addb %al, (%rax) // NODISASM-NEXT: 2: 00 00 addb %al, (%rax) // NODISASM-NEXT: 4: 00 00 addb %al, (%rax) @@ -23,8 +22,7 @@ // Check that with -z we disassemble blocks of zeroes. // RUN: llvm-objdump -d -z %t | FileCheck %s --check-prefix=DISASM -// DISASM: Disassembly of section .text: -// DISASM-NEXT: 0000000000000000 main: +// DISASM: 0000000000000000 main: // DISASM-NEXT: 0: 00 00 addb %al, (%rax) // DISASM-NEXT: 2: 00 00 addb %al, (%rax) // DISASM-NEXT: 4: 00 00 addb %al, (%rax) diff --git a/test/Object/X86/no-start-symbol.test b/test/Object/X86/no-start-symbol.test index b468894c7b6..53c33deefab 100644 --- a/test/Object/X86/no-start-symbol.test +++ b/test/Object/X86/no-start-symbol.test @@ -3,6 +3,7 @@ RUN: llvm-objdump -d %p/../Inputs/no-start-symbol.elf-x86_64 | FileCheck %s Test that we disassemble the start of the section. CHECK: Disassembly of section .text: +CHECK-EMPTY: CHECK-NEXT: .text: CHECK-NEXT: 0: 90 nop CHECK: foo: diff --git a/test/tools/llvm-objdump/X86/disasm-specific-funcs.test b/test/tools/llvm-objdump/X86/disasm-specific-funcs.test index ad4274b31e6..8e6155710a4 100644 --- a/test/tools/llvm-objdump/X86/disasm-specific-funcs.test +++ b/test/tools/llvm-objdump/X86/disasm-specific-funcs.test @@ -2,6 +2,7 @@ // RUN: llvm-objdump -d %t.out -disassemble-functions=main | FileCheck %s // CHECK: Disassembly of section .anothertext: +// CHECK-EMPTY: // CHECK-NEXT: main: // CHECK-NEXT: 10: 55 pushq %rbp // CHECK-NEXT: 11: 48 89 e5 movq %rsp, %rbp diff --git a/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test b/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test index e84a5ac9611..ee8acb9edd4 100644 --- a/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test +++ b/test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test @@ -20,6 +20,7 @@ # SKIP: 0000000000000000 .rodata: # SKIP-NEXT: ... +# SKIP-EMPTY: # SKIP-NEXT: Disassembly of section .rela.rodata: --- !ELF diff --git a/test/tools/llvm-objdump/X86/disassemble-section-name.s b/test/tools/llvm-objdump/X86/disassemble-section-name.s new file mode 100644 index 00000000000..655d5adc9c9 --- /dev/null +++ b/test/tools/llvm-objdump/X86/disassemble-section-name.s @@ -0,0 +1,9 @@ +# RUN: yaml2obj %p/Inputs/simple-executable-x86_64.yaml -o %t +# RUN: llvm-objdump -d %t | FileCheck %s + +# CHECK: : file format ELF64-x86-64 +# CHECK-EMPTY: +# CHECK-EMPTY: +# CHECK-NEXT: Disassembly of section .text: +# CHECK-EMPTY: +# CHECK-NEXT: 0000000000000000 foo: diff --git a/test/tools/llvm-objdump/X86/out-of-section-sym.test b/test/tools/llvm-objdump/X86/out-of-section-sym.test index 40fabbde58c..4da81c63ca3 100644 --- a/test/tools/llvm-objdump/X86/out-of-section-sym.test +++ b/test/tools/llvm-objdump/X86/out-of-section-sym.test @@ -6,6 +6,7 @@ // RUN: FileCheck --input-file %t0 %s CHECK: Disassembly of section .text: +CHECK-EMPTY: CHECK-NEXT: _start: CHECK-NEXT: 10: c3 retl CHECK-NEXT: SYMBOL TABLE: diff --git a/test/tools/llvm-objdump/X86/start-stop-address.test b/test/tools/llvm-objdump/X86/start-stop-address.test index 97c1f45b03a..4df49a92818 100644 --- a/test/tools/llvm-objdump/X86/start-stop-address.test +++ b/test/tools/llvm-objdump/X86/start-stop-address.test @@ -4,6 +4,7 @@ // RUN: llvm-objdump -d %t.out --start-address=0x40 --stop-address=0x47 | FileCheck %s --check-prefix "CROSSDATA" // CHECK: Disassembly of section .anothertext: +// CHECK-EMPTY: // CHECK-NEXT: main: // CHECK-NEXT: 18: 48 8d 04 25 a8 00 00 00 leaq 168, %rax // CHECK-NEXT: 20: c7 45 fc 00 00 00 00 movl $0, -4(%rbp) @@ -12,10 +13,13 @@ // CHECK-NOT: 2f: // CROSSSECTION: Disassembly of section .text: +// CROSSSECTION-EMPTY: // CROSSSECTION-NEXT: foo: // CROSSSECTION-NEXT: c: c3 retq // CROSSSECTION-NEXT: d: 0f 1f 00 nopl (%rax) +// CROSSSECTION-EMPTY: // CROSSSECTION-NEXT: Disassembly of section .anothertext: +// CROSSSECTION-EMPTY: // CROSSSECTION-NEXT: main: // CROSSSECTION-NEXT: 10: 55 pushq %rbp // CROSSSECTION-NOT: 11: diff --git a/tools/llvm-objdump/llvm-objdump.cpp b/tools/llvm-objdump/llvm-objdump.cpp index 8a3d6d7980f..77307bf6fbb 100644 --- a/tools/llvm-objdump/llvm-objdump.cpp +++ b/tools/llvm-objdump/llvm-objdump.cpp @@ -1164,10 +1164,10 @@ static void disassembleObject(const Target *TheTarget, const ObjectFile *Obj, if (!PrintedSection) { PrintedSection = true; - outs() << "Disassembly of section "; + outs() << "\nDisassembly of section "; if (!SegmentName.empty()) outs() << SegmentName << ","; - outs() << SectionName << ':'; + outs() << SectionName << ":\n"; } if (Obj->isELF() && Obj->getArch() == Triple::amdgcn) {