1# REQUIRES: aarch64 2 3# RUN: yaml2obj < %s > %t.obj 4# RUN: lld-link /entry:main /subsystem:console /out:%t.exe %t.obj %p/Inputs/library-arm64.lib /alternatename:__delayLoadHelper2=main /delayload:library.dll 5# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefix DISASM 6# RUN: llvm-readobj --coff-imports %t.exe | FileCheck %s -check-prefix IMPORTS 7 8# DISASM: 140001014: 11 00 00 d0 adrp x17, #8192 9# DISASM: 140001018: 31 22 00 91 add x17, x17, #8 10# DISASM: 14000101c: 01 00 00 14 b 0x140001020 <.text+0x20> 11# DISASM: 140001020: fd 7b b3 a9 stp x29, x30, [sp, #-208]! 12# DISASM: 140001024: fd 03 00 91 mov x29, sp 13# DISASM: 140001028: e0 07 01 a9 stp x0, x1, [sp, #16] 14# DISASM: 14000102c: e2 0f 02 a9 stp x2, x3, [sp, #32] 15# DISASM: 140001030: e4 17 03 a9 stp x4, x5, [sp, #48] 16# DISASM: 140001034: e6 1f 04 a9 stp x6, x7, [sp, #64] 17# DISASM: 140001038: e0 87 02 ad stp q0, q1, [sp, #80] 18# DISASM: 14000103c: e2 8f 03 ad stp q2, q3, [sp, #112] 19# DISASM: 140001040: e4 97 04 ad stp q4, q5, [sp, #144] 20# DISASM: 140001044: e6 9f 05 ad stp q6, q7, [sp, #176] 21# DISASM: 140001048: e1 03 11 aa mov x1, x17 22# DISASM: 14000104c: 00 00 00 b0 adrp x0, #4096 23# DISASM: 140001050: 00 00 00 91 add x0, x0, #0 24# DISASM: 140001054: eb ff ff 97 bl 0x140001000 <.text> 25# DISASM: 140001058: f0 03 00 aa mov x16, x0 26# DISASM: 14000105c: e6 9f 45 ad ldp q6, q7, [sp, #176] 27# DISASM: 140001060: e4 97 44 ad ldp q4, q5, [sp, #144] 28# DISASM: 140001064: e2 8f 43 ad ldp q2, q3, [sp, #112] 29# DISASM: 140001068: e0 87 42 ad ldp q0, q1, [sp, #80] 30# DISASM: 14000106c: e6 1f 44 a9 ldp x6, x7, [sp, #64] 31# DISASM: 140001070: e4 17 43 a9 ldp x4, x5, [sp, #48] 32# DISASM: 140001074: e2 0f 42 a9 ldp x2, x3, [sp, #32] 33# DISASM: 140001078: e0 07 41 a9 ldp x0, x1, [sp, #16] 34# DISASM: 14000107c: fd 7b cd a8 ldp x29, x30, [sp], #208 35# DISASM: 140001080: 00 02 1f d6 br x16 36 37# IMPORTS: Format: COFF-ARM64 38# IMPORTS: Arch: aarch64 39# IMPORTS: AddressSize: 64bit 40# IMPORTS: DelayImport { 41# IMPORTS: Name: library.dll 42# IMPORTS: Attributes: 0x1 43# IMPORTS: ModuleHandle: 0x3000 44# IMPORTS: ImportAddressTable: 0x3008 45# IMPORTS: ImportNameTable: 0x2040 46# IMPORTS: BoundDelayImportTable: 0x0 47# IMPORTS: UnloadDelayImportTable: 0x0 48# IMPORTS: Import { 49# IMPORTS: Symbol: function (0) 50# IMPORTS: Address: 0x140001014 51# IMPORTS: } 52# IMPORTS: } 53 54--- !COFF 55header: 56 Machine: IMAGE_FILE_MACHINE_ARM64 57 Characteristics: [ ] 58sections: 59 - Name: .text 60 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] 61 Alignment: 4 62 SectionData: 00000094C0035FD6 63 Relocations: 64 - VirtualAddress: 0 65 SymbolName: function 66 Type: IMAGE_REL_ARM64_BRANCH26 67symbols: 68 - Name: .text 69 Value: 0 70 SectionNumber: 1 71 SimpleType: IMAGE_SYM_TYPE_NULL 72 ComplexType: IMAGE_SYM_DTYPE_NULL 73 StorageClass: IMAGE_SYM_CLASS_STATIC 74 SectionDefinition: 75 Length: 8 76 NumberOfRelocations: 1 77 NumberOfLinenumbers: 0 78 CheckSum: 0 79 Number: 1 80 - Name: main 81 Value: 0 82 SectionNumber: 1 83 SimpleType: IMAGE_SYM_TYPE_NULL 84 ComplexType: IMAGE_SYM_DTYPE_NULL 85 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 86 - Name: function 87 Value: 0 88 SectionNumber: 0 89 SimpleType: IMAGE_SYM_TYPE_NULL 90 ComplexType: IMAGE_SYM_DTYPE_NULL 91 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 92... 93