1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/MC/COFF/basic-coff-64.s
Francis Visoiu Mistrih 30264d4391 [CodeGen] Unify MBB reference format in both MIR and debug output
As part of the unification of the debug format and the MIR format, print
MBB references as '%bb.5'.

The MIR printer prints the IR name of a MBB only for block definitions.

* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" \) -type f -print0 | xargs -0 sed -i '' -E 's/BB#" << ([a-zA-Z0-9_]+)->getNumber\(\)/" << printMBBReference(*\1)/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" \) -type f -print0 | xargs -0 sed -i '' -E 's/BB#" << ([a-zA-Z0-9_]+)\.getNumber\(\)/" << printMBBReference(\1)/g'
* find . \( -name "*.txt" -o -name "*.s" -o -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" \) -type f -print0 | xargs -0 sed -i '' -E 's/BB#([0-9]+)/%bb.\1/g'
* grep -nr 'BB#' and fix

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

llvm-svn: 319665
2017-12-04 17:18:51 +00:00

137 lines
4.2 KiB
ArmAsm

// This test checks that the COFF object emitter works for the most basic
// programs.
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -h -s -sr -sd -t | FileCheck %s
.def _main;
.scl 2;
.type 32;
.endef
.text
.globl _main
.align 16, 0x90
_main: # @main
# %bb.0: # %entry
subl $4, %esp
movl $.L_.str, (%esp)
call _printf
xorl %eax, %eax
addl $4, %esp
ret
.data
.L_.str: # @.str
.asciz "Hello World"
// CHECK: ImageFileHeader {
// CHECK: Machine: IMAGE_FILE_MACHINE_AMD64
// CHECK: SectionCount: 3
// CHECK: TimeDateStamp: {{[0-9]+}}
// CHECK: PointerToSymbolTable: 0x{{[0-9A-F]+}}
// CHECK: SymbolCount: 8
// CHECK: OptionalHeaderSize: 0
// CHECK: Characteristics [ (0x0)
// CHECK: ]
// CHECK: }
// CHECK: Sections [
// CHECK: Section {
// CHECK: Number: [[TextNum:[0-9]+]]
// CHECK: Name: .text
// CHECK: VirtualSize: 0
// CHECK: VirtualAddress: 0
// CHECK: RawDataSize: [[TextSize:[0-9]+]]
// CHECK: PointerToRawData: 0x{{[0-9A-F]+}}
// CHECK: PointerToRelocations: 0x{{[0-9A-F]+}}
// CHECK: PointerToLineNumbers: 0x0
// CHECK: RelocationCount: 2
// CHECK: LineNumberCount: 0
// CHECK: Characteristics [ (0x60500020)
// CHECK: IMAGE_SCN_ALIGN_16BYTES
// CHECK: IMAGE_SCN_CNT_CODE
// CHECK: IMAGE_SCN_MEM_EXECUTE
// CHECK: IMAGE_SCN_MEM_READ
// CHECK: ]
// CHECK: Relocations [
// CHECK: 0x{{[0-9A-F]+}} IMAGE_REL_AMD64_ADDR32 .data
// CHECK: 0x{{[0-9A-F]+}} IMAGE_REL_AMD64_REL32 _printf
// CHECK: ]
// CHECK: }
// CHECK: Section {
// CHECK: Number: [[DataNum:[0-9]+]]
// CHECK: Name: .data
// CHECK: VirtualSize: 0
// CHECK: VirtualAddress: 0
// CHECK: RawDataSize: [[DataSize:[0-9]+]]
// CHECK: PointerToRawData: 0x{{[0-9A-F]+}}
// CHECK: PointerToRelocations: 0x0
// CHECK: PointerToLineNumbers: 0x0
// CHECK: RelocationCount: 0
// CHECK: LineNumberCount: 0
// CHECK: Characteristics [ (0xC0300040)
// CHECK: IMAGE_SCN_ALIGN_4BYTES
// CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
// CHECK: IMAGE_SCN_MEM_READ
// CHECK: IMAGE_SCN_MEM_WRITE
// CHECK: ]
// CHECK: Relocations [
// CHECK: ]
// CHECK: SectionData (
// CHECK: 0000: 48656C6C 6F20576F 726C6400 |Hello World.|
// CHECK: )
// CHECK: }
// CHECK: ]
// CHECK: Symbols [
// CHECK: Symbol {
// CHECK: Name: .text
// CHECK: Value: 0
// CHECK: Section: .text
// CHECK: BaseType: Null
// CHECK: ComplexType: Null
// CHECK: StorageClass: Static
// CHECK: AuxSymbolCount: 1
// CHECK: AuxSectionDef {
// CHECK: Length: [[TextSize]]
// CHECK: RelocationCount: 2
// CHECK: LineNumberCount: 0
// CHECK: Checksum: 0x8E1B6D20
// CHECK: Number: [[TextNum]]
// CHECK: Selection: 0x0
// CHECK: }
// CHECK: }
// CHECK: Symbol {
// CHECK: Name: .data
// CHECK: Value: 0
// CHECK: Section: .data
// CHECK: BaseType: Null
// CHECK: ComplexType: Null
// CHECK: StorageClass: Static
// CHECK: AuxSymbolCount: 1
// CHECK: AuxSectionDef {
// CHECK: Length: [[DataSize]]
// CHECK: RelocationCount: 0
// CHECK: LineNumberCount: 0
// CHECK: Checksum: 0x2B95CA92
// CHECK: Number: [[DataNum]]
// CHECK: Selection: 0x0
// CHECK: }
// CHECK: }
// CHECK: Symbol {
// CHECK: Name: _main
// CHECK: Value: 0
// CHECK: Section: .text
// CHECK: BaseType: Null
// CHECK: ComplexType: Function
// CHECK: StorageClass: External
// CHECK: AuxSymbolCount: 0
// CHECK: }
// CHECK: Symbol {
// CHECK: Name: _printf
// CHECK: Value: 0
// CHECK: Section: IMAGE_SYM_UNDEFINED (0)
// CHECK: BaseType: Null
// CHECK: ComplexType: Null
// CHECK: StorageClass: External
// CHECK: AuxSymbolCount: 0
// CHECK: }
// CHECK: ]