122 lines · yaml
1# REQUIRES: arm2# RUN: yaml2obj %s -o %t.obj3# RUN: lld-link %t.obj %p/Inputs/library.lib /subsystem:console \4# RUN: /entry:mainCRTStartup /alternatename:__delayLoadHelper2=mainCRTStartup \5# RUN: /delayload:library.dll /out:%t.exe6# RUN: llvm-readobj --coff-imports %t.exe | FileCheck -check-prefix=IMPORT %s7# RUN: llvm-readobj --coff-basereloc %t.exe | FileCheck -check-prefix=BASEREL %s8# RUN: llvm-objdump --no-print-imm-hex -d %t.exe | FileCheck --check-prefix=DISASM %s9# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=DIR %s10 11# IMPORT: Format: COFF-ARM12# IMPORT-NEXT: Arch: thumb13# IMPORT-NEXT: AddressSize: 32bit14# IMPORT-NEXT: DelayImport {15# IMPORT-NEXT: Name: library.dll16# IMPORT-NEXT: Attributes: 0x117# IMPORT-NEXT: ModuleHandle: 0x300818# IMPORT-NEXT: ImportAddressTable: 0x301019# IMPORT-NEXT: ImportNameTable: 0x204420# IMPORT-NEXT: BoundDelayImportTable: 0x021# IMPORT-NEXT: UnloadDelayImportTable: 0x022# IMPORT-NEXT: Import {23# IMPORT-NEXT: Symbol: function (0)24# IMPORT-NEXT: Address: 0x40100D25# IMPORT-NEXT: }26# IMPORT-NEXT: }27#28# BASEREL: BaseReloc [29# BASEREL-NEXT: Entry {30# BASEREL-NEXT: Type: ARM_MOV32(T)31# BASEREL-NEXT: Address: 0x100032# BASEREL-NEXT: }33# BASEREL-NEXT: Entry {34# BASEREL-NEXT: Type: ARM_MOV32(T)35# BASEREL-NEXT: Address: 0x100C36# BASEREL-NEXT: }37# BASEREL-NEXT: Entry {38# BASEREL-NEXT: Type: ARM_MOV32(T)39# BASEREL-NEXT: Address: 0x102640# BASEREL-NEXT: }41# BASEREL-NEXT: Entry {42# BASEREL-NEXT: Type: ABSOLUTE43# BASEREL-NEXT: Address: 0x100044# BASEREL-NEXT: }45# BASEREL-NEXT: Entry {46# BASEREL-NEXT: Type: HIGHLOW47# BASEREL-NEXT: Address: 0x301048# BASEREL-NEXT: }49# BASEREL-NEXT: Entry {50# BASEREL-NEXT: Type: ABSOLUTE51# BASEREL-NEXT: Address: 0x300052# BASEREL-NEXT: }53# BASEREL-NEXT: ]54#55# DISASM: 00401000 <.text>:56# DISASM: 40100c: f243 0c10 movw r12, #1230457# DISASM-NEXT: f2c0 0c40 movt r12, #6458# DISASM-NEXT: f000 b800 b.w {{.+}} @ imm = #059# DISASM-NEXT: e92d 480f push.w {r0, r1, r2, r3, r11, lr}60# DISASM-NEXT: f20d 0b10 addw r11, sp, #1661# DISASM-NEXT: ed2d 0b10 vpush {d0, d1, d2, d3, d4, d5, d6, d7}62# DISASM-NEXT: 4661 mov r1, r1263# DISASM-NEXT: f242 0004 movw r0, #819664# DISASM-NEXT: f2c0 0040 movt r0, #6465# DISASM-NEXT: f7ff ffe7 bl 0x401000 <.text>66# DISASM-NEXT: 4684 mov r12, r067# DISASM-NEXT: ecbd 0b10 vpop {d0, d1, d2, d3, d4, d5, d6, d7}68# DISASM-NEXT: e8bd 480f pop.w {r0, r1, r2, r3, r11, lr}69# DISASM-NEXT: 4760 bx r1270#71# DIR: DelayImportDescriptorRVA: 0x200472# DIR-NEXT: DelayImportDescriptorSize: 0x4073 74 75--- !COFF76header:77 Machine: IMAGE_FILE_MACHINE_ARMNT78 Characteristics: [ ]79sections:80 - Name: .text81 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_PURGEABLE, IMAGE_SCN_MEM_16BIT, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]82 Alignment: 483 SectionData: 40F20000C0F200000068004784 Relocations:85 - VirtualAddress: 086 SymbolName: __imp_function87 Type: IMAGE_REL_ARM_MOV32T88 - Name: .rdata89 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]90 Alignment: 191 SectionData: 0192 - Name: .data93 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]94 Alignment: 195 SectionData: 0296symbols:97 - Name: .text98 Value: 099 SectionNumber: 1100 SimpleType: IMAGE_SYM_TYPE_NULL101 ComplexType: IMAGE_SYM_DTYPE_NULL102 StorageClass: IMAGE_SYM_CLASS_STATIC103 SectionDefinition:104 Length: 12105 NumberOfRelocations: 1106 NumberOfLinenumbers: 0107 CheckSum: 0108 Number: 1109 - Name: mainCRTStartup110 Value: 0111 SectionNumber: 1112 SimpleType: IMAGE_SYM_TYPE_NULL113 ComplexType: IMAGE_SYM_DTYPE_FUNCTION114 StorageClass: IMAGE_SYM_CLASS_EXTERNAL115 - Name: __imp_function116 Value: 0117 SectionNumber: 0118 SimpleType: IMAGE_SYM_TYPE_NULL119 ComplexType: IMAGE_SYM_DTYPE_NULL120 StorageClass: IMAGE_SYM_CLASS_EXTERNAL121...122