]> granicus.if.org Git - llvm/commitdiff
[llvm-objdump] Print newlines before and after "Disassembly of section ...:"
authorFangrui Song <maskray@google.com>
Wed, 1 May 2019 10:40:48 +0000 (10:40 +0000)
committerFangrui Song <maskray@google.com>
Wed, 1 May 2019 10:40:48 +0000 (10:40 +0000)
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

13 files changed:
test/MC/ARM/elf-movt.s
test/MC/ELF/relax-arith.s
test/MC/ELF/relax-arith2.s
test/MC/ELF/relax-arith3.s
test/MC/ELF/relax-arith4.s
test/MC/X86/disassemble-zeroes.s
test/Object/X86/no-start-symbol.test
test/tools/llvm-objdump/X86/disasm-specific-funcs.test
test/tools/llvm-objdump/X86/disasm-zeroes-relocations.test
test/tools/llvm-objdump/X86/disassemble-section-name.s [new file with mode: 0644]
test/tools/llvm-objdump/X86/out-of-section-sym.test
test/tools/llvm-objdump/X86/start-stop-address.test
tools/llvm-objdump/llvm-objdump.cpp

index d1e6bd7916d0228b41909b0fb9a5d495041b782e..e7ffeba9744304a01d4958e6a0f28ae5f370b31c 100644 (file)
@@ -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
index 56b7c399c4414a34741cd323151bad2febb90cd0..1591a77f22d0d4a48a06d3cc832c09027e51cca0 100644 (file)
@@ -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
index b05418482e322a1ef6e7d5747ea1320f98ee9317..19dacbf64ef26a9a78a50be110896e01f104beae 100644 (file)
@@ -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
index 3be8b0ee870388eeb348535725086ee8b247a566..88f7ba30e3259c30dc8e9f3a21cd76c5b3ffe014 100644 (file)
@@ -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)
index 3fd3cadb76ab7c3827493e8141c3811079ddf8a1..2a01fb3e7ab1bac9403eec71fb9452fcedfa4e04 100644 (file)
@@ -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
index 2ecfdad0c2d91b2b0374ac0748b226acc24d61df..b84b86808fbaf780348949ab55d6547a30b55151 100644 (file)
@@ -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)
index b468894c7b6bbd2fa50f7fcd397dff26cf4d8d3d..53c33deefaba10ed94f3bd7ff7eba50dcbd3fbb1 100644 (file)
@@ -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:
index ad4274b31e6b483157a10df8db15062845fea0e2..8e6155710a46b638e581ff1c88f3a0fcfcd08db6 100644 (file)
@@ -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
index e84a5ac9611fd9009a5f5d86640d8b7d5bd4e388..ee8acb9edd4f970b6eabb11716a0d6f9df76971a 100644 (file)
@@ -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 (file)
index 0000000..655d5ad
--- /dev/null
@@ -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:
index 40fabbde58cd17e2125076e82f68643a3aea2dab..4da81c63ca3de0df93c4da4f3ce243e5812a844c 100644 (file)
@@ -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:
index 97c1f45b03ad5c9b738aa7104833f725bf410d1b..4df49a92818ec0ada4bec8392e4b84bc89efdbb0 100644 (file)
@@ -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)
 // 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:
index 8a3d6d7980f7871d2bd4751636f9ef599aab33ae..77307bf6fbb116261f530576b59c76bc65a1c728 100644 (file)
@@ -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) {