From: Davide Italiano Date: Tue, 18 Aug 2015 16:05:13 +0000 (+0000) Subject: [MC] Convert another bunch of tests from macho-dump to llvm-readobj. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=95f5735fb0ef826a3605714b27e4787ef2ae441b [MC] Convert another bunch of tests from macho-dump to llvm-readobj. This is (almost) everything under MC/MachO/ARM. There are still some cases missing, because llvm-readobj doesn't (yet) support some features, that macho-dump provides. I plan to reduce the gap between them shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245302 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/MC/MachO/ARM/empty-function-nop.ll b/test/MC/MachO/ARM/empty-function-nop.ll index ef86ebc2a26..0bc439497e2 100644 --- a/test/MC/MachO/ARM/empty-function-nop.ll +++ b/test/MC/MachO/ARM/empty-function-nop.ll @@ -1,7 +1,7 @@ -; RUN: llc < %s -filetype=obj -mtriple=thumbv6-apple-darwin -o - | macho-dump --dump-section-data | FileCheck -check-prefix=CHECK-T1 %s -; RUN: llc < %s -filetype=obj -mtriple=thumbv7-apple-darwin -o - | macho-dump --dump-section-data | FileCheck -check-prefix=CHECK-T2 %s -; RUN: llc < %s -filetype=obj -mtriple=armv6-apple-darwin -o - | macho-dump --dump-section-data | FileCheck -check-prefix=CHECK-ARM %s -; RUN: llc < %s -filetype=obj -mtriple=armv7-apple-darwin -o - | macho-dump --dump-section-data | FileCheck -check-prefix=CHECK-ARMV7 %s +; RUN: llc < %s -filetype=obj -mtriple=thumbv6-apple-darwin -o - | llvm-readobj -s -sd | FileCheck -check-prefix=CHECK-T1 %s +; RUN: llc < %s -filetype=obj -mtriple=thumbv7-apple-darwin -o - | llvm-readobj -s -sd | FileCheck -check-prefix=CHECK-T2 %s +; RUN: llc < %s -filetype=obj -mtriple=armv6-apple-darwin -o - | llvm-readobj -s -sd | FileCheck -check-prefix=CHECK-ARM %s +; RUN: llc < %s -filetype=obj -mtriple=armv7-apple-darwin -o - | llvm-readobj -s -sd | FileCheck -check-prefix=CHECK-ARMV7 %s ; Empty functions need a NOP in them for MachO to prevent DWARF FDEs from ; getting all mucked up. See lib/CodeGen/AsmPrinter/AsmPrinter.cpp for @@ -9,7 +9,15 @@ define internal fastcc void @empty_function() { unreachable } -; CHECK-T1: ('_section_data', 'c046') -; CHECK-T2: ('_section_data', '00bf') -; CHECK-ARM: ('_section_data', '0000a0e1') -; CHECK-ARMV7: ('_section_data', '00f020e3') +; CHECK-T1: SectionData ( +; CHECK-T1: 0000: C046 |.F| +; CHECK-T1: ) +; CHECK-T2: SectionData ( +; CHECK-T2: 0000: 00BF |..| +; CHECK-T2: ) +; CHECK-ARM: SectionData ( +; CHECK-ARM: 0000: 0000A0E1 |....| +; CHECK-ARM: ) +; CHECK-ARMV7: SectionData ( +; CHECK-ARMV7: 0000: 00F020E3 |.. .| +; CHECK-ARMV7: ) diff --git a/test/MC/MachO/ARM/long-call-branch-island-relocation.s b/test/MC/MachO/ARM/long-call-branch-island-relocation.s index 8ee7da54b54..c4d153fc2b6 100644 --- a/test/MC/MachO/ARM/long-call-branch-island-relocation.s +++ b/test/MC/MachO/ARM/long-call-branch-island-relocation.s @@ -1,5 +1,5 @@ @ RUN: llvm-mc -n -triple armv7-apple-darwin10 %s -filetype=obj -o %t.o -@ RUN: macho-dump --dump-section-data < %t.o | FileCheck %s +@ RUN: llvm-readobj -relocations -expand-relocs < %t.o | FileCheck %s @ rdar://12359919 @@ -36,8 +36,18 @@ _foo: pop {r7, pc} -@ CHECK: ('_relocations', [ -@ CHECK: # Relocation 0 -@ CHECK: (('word-0', 0x4), -@ CHECK: ('word-1', 0x6d000002)), -@ CHECK: ]) +@ CHECK: File: +@ CHECK: Format: Mach-O arm +@ CHECK: Arch: arm +@ CHECK: AddressSize: 32bit +@ CHECK: Relocations [ +@ CHECK: Section __text { +@ CHECK: Relocation { +@ CHECK: Offset: 0x4 +@ CHECK: PCRel: 1 +@ CHECK: Length: 2 +@ CHECK: Type: ARM_THUMB_RELOC_BR22 (6) +@ CHECK: Symbol: _foo (2) +@ CHECK: } +@ CHECK: } +@ CHECK: ] diff --git a/test/MC/MachO/ARM/no-subsections-reloc.s b/test/MC/MachO/ARM/no-subsections-reloc.s index 7701c59c680..e367a3cfa73 100644 --- a/test/MC/MachO/ARM/no-subsections-reloc.s +++ b/test/MC/MachO/ARM/no-subsections-reloc.s @@ -1,5 +1,5 @@ @ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj -@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump +@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump @ RUN: FileCheck < %t.dump %s @ When not using subsections-via-symbols, references to non-local symbols @@ -14,5 +14,7 @@ _foo: bar: .long 0 -@ CHECK: 'num_reloc', 0 -@ CHECK: '_section_data', 'dff80030 00000000' +@ CHECK: RelocationCount: 0 +@ CHECK: SectionData ( +@ CHECK: 0000: DFF80030 00000000 |...0....| +@ CHECK: ) diff --git a/test/MC/MachO/ARM/nop-armv4-padding.s b/test/MC/MachO/ARM/nop-armv4-padding.s index 8e03d17a70c..baab3d7491c 100644 --- a/test/MC/MachO/ARM/nop-armv4-padding.s +++ b/test/MC/MachO/ARM/nop-armv4-padding.s @@ -1,5 +1,5 @@ @ RUN: llvm-mc -triple armv4-apple-darwin %s -filetype=obj -o %t.obj -@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump +@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump @ RUN: FileCheck %s < %t.dump x: @@ -7,4 +7,7 @@ x: .align 4 add r0, r1, r2 -@ CHECK: ('_section_data', '020081e0 0000a0e1 0000a0e1 0000a0e1 020081e0') +@ CHECK: SectionData ( +@ CHECK: 0000: 020081E0 0000A0E1 0000A0E1 0000A0E1 |................| +@ CHECK: 0010: 020081E0 |....| +@ CHECK: ) diff --git a/test/MC/MachO/ARM/nop-armv6t2-padding.s b/test/MC/MachO/ARM/nop-armv6t2-padding.s index c38ad2d7c57..a1a21f5f456 100644 --- a/test/MC/MachO/ARM/nop-armv6t2-padding.s +++ b/test/MC/MachO/ARM/nop-armv6t2-padding.s @@ -1,5 +1,5 @@ @ RUN: llvm-mc -triple armv6t2-apple-darwin %s -filetype=obj -o %t.obj -@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump +@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump @ RUN: FileCheck %s < %t.dump x: @@ -7,4 +7,7 @@ x: .align 4 add r0, r1, r2 -@ CHECK: ('_section_data', '020081e0 00f020e3 00f020e3 00f020e3 020081e0') +@ CHECK: SectionData ( +@ CHECK: 0000: 020081E0 00F020E3 00F020E3 00F020E3 |...... ... ... .| +@ CHECK: 0010: 020081E0 |....| +@ CHECK: ) diff --git a/test/MC/MachO/ARM/nop-thumb-padding.s b/test/MC/MachO/ARM/nop-thumb-padding.s index 1e173f1a42d..26db12140de 100644 --- a/test/MC/MachO/ARM/nop-thumb-padding.s +++ b/test/MC/MachO/ARM/nop-thumb-padding.s @@ -1,5 +1,5 @@ @ RUN: llvm-mc -triple armv6-apple-darwin %s -filetype=obj -o %t.obj -@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump +@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump @ RUN: FileCheck %s < %t.dump .thumb_func x @@ -9,4 +9,7 @@ x: .align 4 adds r0, r1, r2 -@ CHECK: ('_section_data', '8818c046 c046c046 c046c046 c046c046 8818') +@ CHECK: SectionData ( +@ CHECK: 0000: 8818C046 C046C046 C046C046 C046C046 |...F.F.F.F.F.F.F| +@ CHECK: 0010: 8818 |..| +@ CHECK: ) diff --git a/test/MC/MachO/ARM/nop-thumb2-padding.s b/test/MC/MachO/ARM/nop-thumb2-padding.s index a8aa3a1168e..a986ff17f2a 100644 --- a/test/MC/MachO/ARM/nop-thumb2-padding.s +++ b/test/MC/MachO/ARM/nop-thumb2-padding.s @@ -1,5 +1,5 @@ @ RUN: llvm-mc -triple armv7-apple-darwin %s -filetype=obj -o %t.obj -@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump +@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump @ RUN: FileCheck %s < %t.dump .thumb_func x @@ -9,4 +9,7 @@ x: .align 4 adds r0, r1, r2 -@ CHECK: ('_section_data', '881800bf 00bf00bf 00bf00bf 00bf00bf 8818') +@ CHECK: SectionData ( +@ CHECK: 0000: 881800BF 00BF00BF 00BF00BF 00BF00BF |................| +@ CHECK: 0010: 8818 |..| +@ CHECK: ) diff --git a/test/MC/MachO/ARM/relax-thumb-ldr-literal.s b/test/MC/MachO/ARM/relax-thumb-ldr-literal.s index 8d26f6d2e2d..f6f2233e6f9 100644 --- a/test/MC/MachO/ARM/relax-thumb-ldr-literal.s +++ b/test/MC/MachO/ARM/relax-thumb-ldr-literal.s @@ -1,5 +1,5 @@ @ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj -@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump +@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump @ RUN: FileCheck < %t.dump %s .syntax unified @@ -9,5 +9,14 @@ _foo: ldr r2, (_foo - 4) -@ CHECK: ('num_reloc', 0) -@ CHECK: ('_section_data', '5ff80820') +@ CHECK: RelocationCount: 0 +@ CHECK: Type: 0x0 +@ CHECK: Attributes [ (0x800004) +@ CHECK: PureInstructions (0x800000) +@ CHECK: SomeInstructions (0x4) +@ CHECK: ] +@ CHECK: Reserved1: 0x0 +@ CHECK: Reserved2: 0x0 +@ CHECK: SectionData ( +@ CHECK: 0000: 5FF80820 |_.. | +@ CHECK: ) diff --git a/test/MC/MachO/ARM/relax-thumb2-branches.s b/test/MC/MachO/ARM/relax-thumb2-branches.s index 7916d424078..fbac5fd4260 100644 --- a/test/MC/MachO/ARM/relax-thumb2-branches.s +++ b/test/MC/MachO/ARM/relax-thumb2-branches.s @@ -1,4 +1,4 @@ -@ RUN: llvm-mc -triple=thumbv7-apple-darwin -show-encoding %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s +@ RUN: llvm-mc -triple=thumbv7-apple-darwin -show-encoding %s -filetype=obj -o - | llvm-readobj -s -sd | FileCheck %s ble Lfoo @ wide encoding @@ -10,5 +10,38 @@ Lfoo: .space 256 Lbaz: -@ CHECK: '_section_data', '40f38180 -@ CHECK: 000000bf 7fdd +@ CHECK: SectionData ( +@ CHECK: 0000: 40F38180 00000000 00000000 00000000 |@...............| +@ CHECK: 0010: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0020: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0030: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0040: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0050: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0060: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0070: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0080: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0090: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 00A0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 00B0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 00C0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 00D0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 00E0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 00F0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0100: 00000000 000000BF 7FDD0000 00000000 |................| +@ CHECK: 0110: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0120: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0130: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0140: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0150: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0160: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0170: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0180: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0190: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 01A0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 01B0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 01C0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 01D0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 01E0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 01F0: 00000000 00000000 00000000 00000000 |................| +@ CHECK: 0200: 00000000 00000000 0000 |..........| +@ CHECK: ) diff --git a/test/MC/MachO/ARM/thumb2-function-relative-load.s b/test/MC/MachO/ARM/thumb2-function-relative-load.s index 622007dc165..1a91675fae5 100644 --- a/test/MC/MachO/ARM/thumb2-function-relative-load.s +++ b/test/MC/MachO/ARM/thumb2-function-relative-load.s @@ -1,5 +1,5 @@ @ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj -@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump +@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump @ RUN: FileCheck < %t.dump %s .syntax unified .text @@ -10,4 +10,6 @@ _foo: .subsections_via_symbols -@ CHECK: ('_section_data', '5ff808e0') +@ CHECK: SectionData ( +@ CHECK: 0000: 5FF808E0 |_...| +@ CHECK: ) diff --git a/test/MC/MachO/ARM/thumb2-movt-fixup.s b/test/MC/MachO/ARM/thumb2-movt-fixup.s index ddd95b54791..5cfb3f4c918 100644 --- a/test/MC/MachO/ARM/thumb2-movt-fixup.s +++ b/test/MC/MachO/ARM/thumb2-movt-fixup.s @@ -1,4 +1,4 @@ -@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumbv7-apple-darwin10 -filetype=obj -o - < %s | macho-dump | FileCheck %s +@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumbv7-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj -relocations -expand-relocs | FileCheck %s _fred: movt r3, :upper16:(_wilma-(LPC0_0+4)) @@ -7,11 +7,25 @@ LPC0_0: _wilma: .long 0 -@ CHECK: ('_relocations', [ -@ CHECK: # Relocation 0 -@ CHECK: (('word-0', 0xb9000000), -@ CHECK: ('word-1', 0x4)), -@ CHECK: # Relocation 1 -@ CHECK: (('word-0', 0xb100fffc), -@ CHECK: ('word-1', 0x4)), - +@ CHECK: File: +@ CHECK: Format: Mach-O arm +@ CHECK: Arch: arm +@ CHECK: AddressSize: 32bit +@ CHECK: Relocations [ +@ CHECK: Section __text { +@ CHECK: Relocation { +@ CHECK: Offset: 0x0 +@ CHECK: PCRel: 0 +@ CHECK: Length: 3 +@ CHECK: Type: ARM_RELOC_HALF_SECTDIFF (9) +@ CHECK: Value: 0x4 +@ CHECK: } +@ CHECK: Relocation { +@ CHECK: Offset: 0xFFFC +@ CHECK: PCRel: 0 +@ CHECK: Length: 3 +@ CHECK: Type: ARM_RELOC_PAIR (1) +@ CHECK: Value: 0x4 +@ CHECK: } +@ CHECK: } +@ CHECK: ] diff --git a/test/MC/MachO/ARM/thumb2-movw-fixup.s b/test/MC/MachO/ARM/thumb2-movw-fixup.s index 57973a87446..9c21d9b5b50 100644 --- a/test/MC/MachO/ARM/thumb2-movw-fixup.s +++ b/test/MC/MachO/ARM/thumb2-movw-fixup.s @@ -1,4 +1,4 @@ -@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumbv7-apple-darwin10 -filetype=obj -o - < %s | macho-dump | FileCheck %s +@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumbv7-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj -relocations -expand-relocs | FileCheck %s @ rdar://10038370 @@ -17,28 +17,66 @@ L1: .long 0 L2: .long 0 -@ CHECK: ('_relocations', [ -@ CHECK: # Relocation 0 -@ CHECK: (('word-0', 0xc), -@ CHECK: ('word-1', 0x86000002)), -@ CHECK: # Relocation 1 -@ CHECK: (('word-0', 0x1184), -@ CHECK: ('word-1', 0x16ffffff)), -@ CHECK: # Relocation 2 -@ CHECK: (('word-0', 0x8), -@ CHECK: ('word-1', 0x84000002)), -@ CHECK: # Relocation 3 -@ CHECK: (('word-0', 0x1), -@ CHECK: ('word-1', 0x14ffffff)), -@ CHECK: # Relocation 4 -@ CHECK: (('word-0', 0x4), -@ CHECK: ('word-1', 0x86000002)), -@ CHECK: # Relocation 5 -@ CHECK: (('word-0', 0x1180), -@ CHECK: ('word-1', 0x16ffffff)), -@ CHECK: # Relocation 6 -@ CHECK: (('word-0', 0x0), -@ CHECK: ('word-1', 0x84000002)), -@ CHECK: # Relocation 7 -@ CHECK: (('word-0', 0x1), -@ CHECK: ('word-1', 0x14ffffff)), +@ CHECK: Format: Mach-O arm +@ CHECK: Arch: arm +@ CHECK: AddressSize: 32bit +@ CHECK: Relocations [ +@ CHECK: Section __text { +@ CHECK: Relocation { +@ CHECK: Offset: 0xC +@ CHECK: PCRel: 0 +@ CHECK: Length: 3 +@ CHECK: Type: ARM_RELOC_HALF (8) +@ CHECK: Section: __data (2) +@ CHECK: } +@ CHECK: Relocation { +@ CHECK: Offset: 0x1184 +@ CHECK: PCRel: 0 +@ CHECK: Length: 3 +@ CHECK: Type: ARM_RELOC_PAIR (1) +@ CHECK: Section: - (16777215) +@ CHECK: } +@ CHECK: Relocation { +@ CHECK: Offset: 0x8 +@ CHECK: PCRel: 0 +@ CHECK: Length: 2 +@ CHECK: Type: ARM_RELOC_HALF (8) +@ CHECK: Section: __data (2) +@ CHECK: } +@ CHECK: Relocation { +@ CHECK: Offset: 0x1 +@ CHECK: PCRel: 0 +@ CHECK: Length: 2 +@ CHECK: Type: ARM_RELOC_PAIR (1) +@ CHECK: Section: - (16777215) +@ CHECK: } +@ CHECK: Relocation { +@ CHECK: Offset: 0x4 +@ CHECK: PCRel: 0 +@ CHECK: Length: 3 +@ CHECK: Type: ARM_RELOC_HALF (8) +@ CHECK: Section: __data (2) +@ CHECK: } +@ CHECK: Relocation { +@ CHECK: Offset: 0x1180 +@ CHECK: PCRel: 0 +@ CHECK: Length: 3 +@ CHECK: Type: ARM_RELOC_PAIR (1) +@ CHECK: Section: - (16777215) +@ CHECK: } +@ CHECK: Relocation { +@ CHECK: Offset: 0x0 +@ CHECK: PCRel: 0 +@ CHECK: Length: 2 +@ CHECK: Type: ARM_RELOC_HALF (8) +@ CHECK: Section: __data (2) +@ CHECK: } +@ CHECK: Relocation { +@ CHECK: Offset: 0x1 +@ CHECK: PCRel: 0 +@ CHECK: Length: 2 +@ CHECK: Type: ARM_RELOC_PAIR (1) +@ CHECK: Section: - (16777215) +@ CHECK: } +@ CHECK: } +@ CHECK: ]