# REQUIRES: aarch64
# RUN: yaml2obj %s -o %t.obj
# RUN: lld-link /entry:main /subsystem:console /out:%t.exe %t.obj %p/Inputs/library-arm64.lib /alternatename:__delayLoadHelper2=main /delayload:library.dll
# RUN: llvm-objdump --no-print-imm-hex -d %t.exe | FileCheck %s --check-prefix DISASM
# RUN: llvm-readobj --coff-imports %t.exe | FileCheck %s -check-prefix IMPORTS
# DISASM: 140001014: d0000011 adrp x17, 0x140003000
# DISASM: 140001018: 91002231 add x17, x17, #8
# DISASM: 14000101c: 14000001 b 0x140001020 <.text+0x20>
# DISASM: 140001020: a9b37bfd stp x29, x30, [sp, #-208]!
# DISASM: 140001024: 910003fd mov x29, sp
# DISASM: 140001028: a90107e0 stp x0, x1, [sp, #16]
# DISASM: 14000102c: a9020fe2 stp x2, x3, [sp, #32]
# DISASM: 140001030: a90317e4 stp x4, x5, [sp, #48]
# DISASM: 140001034: a9041fe6 stp x6, x7, [sp, #64]
# DISASM: 140001038: ad0287e0 stp q0, q1, [sp, #80]
# DISASM: 14000103c: ad038fe2 stp q2, q3, [sp, #112]
# DISASM: 140001040: ad0497e4 stp q4, q5, [sp, #144]
# DISASM: 140001044: ad059fe6 stp q6, q7, [sp, #176]
# DISASM: 140001048: aa1103e1 mov x1, x17
# DISASM: 14000104c: b0000000 adrp x0, 0x140002000
# DISASM: 140001050: 91000000 add x0, x0, #0
# DISASM: 140001054: 97ffffeb bl 0x140001000 <.text>
# DISASM: 140001058: aa0003f0 mov x16, x0
# DISASM: 14000105c: ad459fe6 ldp q6, q7, [sp, #176]
# DISASM: 140001060: ad4497e4 ldp q4, q5, [sp, #144]
# DISASM: 140001064: ad438fe2 ldp q2, q3, [sp, #112]
# DISASM: 140001068: ad4287e0 ldp q0, q1, [sp, #80]
# DISASM: 14000106c: a9441fe6 ldp x6, x7, [sp, #64]
# DISASM: 140001070: a94317e4 ldp x4, x5, [sp, #48]
# DISASM: 140001074: a9420fe2 ldp x2, x3, [sp, #32]
# DISASM: 140001078: a94107e0 ldp x0, x1, [sp, #16]
# DISASM: 14000107c: a8cd7bfd ldp x29, x30, [sp], #208
# DISASM: 140001080: d61f0200 br x16
# IMPORTS: Format: COFF-ARM64
# IMPORTS: Arch: aarch64
# IMPORTS: AddressSize: 64bit
# IMPORTS: DelayImport {
# IMPORTS: Name: library.dll
# IMPORTS: Attributes: 0x1
# IMPORTS: ModuleHandle: 0x3000
# IMPORTS: ImportAddressTable: 0x3008
# IMPORTS: ImportNameTable: 0x2040
# IMPORTS: BoundDelayImportTable: 0x0
# IMPORTS: UnloadDelayImportTable: 0x0
# IMPORTS: Import {
# IMPORTS: Symbol: function (0)
# IMPORTS: Address: 0x140001014
# IMPORTS: }
# IMPORTS: }
--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_ARM64
Characteristics: [ ]
sections:
- Name: .text
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
Alignment: 4
SectionData: 00000094C0035FD6
Relocations:
- VirtualAddress: 0
SymbolName: function
Type: IMAGE_REL_ARM64_BRANCH26
symbols:
- Name: .text
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_STATIC
SectionDefinition:
Length: 8
NumberOfRelocations: 1
NumberOfLinenumbers: 0
CheckSum: 0
Number: 1
- Name: main
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
- Name: function
Value: 0
SectionNumber: 0
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
...