| # 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 -d %t.exe | FileCheck %s --check-prefix DISASM |
| # RUN: llvm-readobj --coff-imports %t.exe | FileCheck %s -check-prefix IMPORTS |
| |
| # DISASM: 140001014: 11 00 00 d0 adrp x17, 0x140003000 |
| # DISASM: 140001018: 31 22 00 91 add x17, x17, #8 |
| # DISASM: 14000101c: 01 00 00 14 b 0x140001020 <.text+0x20> |
| # DISASM: 140001020: fd 7b b3 a9 stp x29, x30, [sp, #-208]! |
| # DISASM: 140001024: fd 03 00 91 mov x29, sp |
| # DISASM: 140001028: e0 07 01 a9 stp x0, x1, [sp, #16] |
| # DISASM: 14000102c: e2 0f 02 a9 stp x2, x3, [sp, #32] |
| # DISASM: 140001030: e4 17 03 a9 stp x4, x5, [sp, #48] |
| # DISASM: 140001034: e6 1f 04 a9 stp x6, x7, [sp, #64] |
| # DISASM: 140001038: e0 87 02 ad stp q0, q1, [sp, #80] |
| # DISASM: 14000103c: e2 8f 03 ad stp q2, q3, [sp, #112] |
| # DISASM: 140001040: e4 97 04 ad stp q4, q5, [sp, #144] |
| # DISASM: 140001044: e6 9f 05 ad stp q6, q7, [sp, #176] |
| # DISASM: 140001048: e1 03 11 aa mov x1, x17 |
| # DISASM: 14000104c: 00 00 00 b0 adrp x0, 0x140002000 |
| # DISASM: 140001050: 00 00 00 91 add x0, x0, #0 |
| # DISASM: 140001054: eb ff ff 97 bl 0x140001000 <.text> |
| # DISASM: 140001058: f0 03 00 aa mov x16, x0 |
| # DISASM: 14000105c: e6 9f 45 ad ldp q6, q7, [sp, #176] |
| # DISASM: 140001060: e4 97 44 ad ldp q4, q5, [sp, #144] |
| # DISASM: 140001064: e2 8f 43 ad ldp q2, q3, [sp, #112] |
| # DISASM: 140001068: e0 87 42 ad ldp q0, q1, [sp, #80] |
| # DISASM: 14000106c: e6 1f 44 a9 ldp x6, x7, [sp, #64] |
| # DISASM: 140001070: e4 17 43 a9 ldp x4, x5, [sp, #48] |
| # DISASM: 140001074: e2 0f 42 a9 ldp x2, x3, [sp, #32] |
| # DISASM: 140001078: e0 07 41 a9 ldp x0, x1, [sp, #16] |
| # DISASM: 14000107c: fd 7b cd a8 ldp x29, x30, [sp], #208 |
| # DISASM: 140001080: 00 02 1f d6 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 |
| ... |