summaryrefslogtreecommitdiff
path: root/test/MC/COFF/basic-coff-64.s
diff options
context:
space:
mode:
authorNico Rieck <nico.rieck@gmail.com>2013-04-12 04:06:46 +0000
committerNico Rieck <nico.rieck@gmail.com>2013-04-12 04:06:46 +0000
commitf89da7210b09a0a0f7c9ee216cd54dca03c6b64a (patch)
tree8faca43d4b6b9a088e23ed254f116efb0a1c0228 /test/MC/COFF/basic-coff-64.s
parent8ed205f0a35337089407a57cc8e01de59bc4e26b (diff)
downloadllvm-f89da7210b09a0a0f7c9ee216cd54dca03c6b64a.tar.gz
llvm-f89da7210b09a0a0f7c9ee216cd54dca03c6b64a.tar.bz2
llvm-f89da7210b09a0a0f7c9ee216cd54dca03c6b64a.tar.xz
Replace coff-/elf-dump with llvm-readobj
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179361 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/COFF/basic-coff-64.s')
-rw-r--r--test/MC/COFF/basic-coff-64.s137
1 files changed, 137 insertions, 0 deletions
diff --git a/test/MC/COFF/basic-coff-64.s b/test/MC/COFF/basic-coff-64.s
new file mode 100644
index 0000000000..89d17452d0
--- /dev/null
+++ b/test/MC/COFF/basic-coff-64.s
@@ -0,0 +1,137 @@
+// 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: 2
+// CHECK: TimeDateStamp: {{[0-9]+}}
+// CHECK: PointerToSymbolTable: 0x{{[0-9A-F]+}}
+// CHECK: SymbolCount: 6
+// 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: 0x0
+// 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: 0x0
+// CHECK: Number: [[DataNum]]
+// CHECK: Selection: 0x0
+// CHECK: Unused: (00 00 00)
+// 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: (0)
+// CHECK: BaseType: Null
+// CHECK: ComplexType: Null
+// CHECK: StorageClass: External
+// CHECK: AuxSymbolCount: 0
+// CHECK: }
+// CHECK: ]