| # REQUIRES: aarch64 |
| |
| # RUN: yaml2obj < %s > %t.obj |
| # RUN: llvm-objdump -d %t.obj | FileCheck %s -check-prefix BEFORE |
| # RUN: lld-link /entry:main /subsystem:console /out:%t.exe %t.obj %p/Inputs/library-arm64.lib %p/Inputs/library2-arm64.lib |
| # RUN: llvm-objdump -d %t.exe | FileCheck %s -check-prefix AFTER |
| # RUN: llvm-readobj -coff-imports %t.exe | FileCheck %s -check-prefix IMPORTS |
| |
| # BEFORE: Disassembly of section .text: |
| # BEFORE: 0: 00 00 00 94 bl #0 |
| # BEFORE: 4: 00 00 00 94 bl #0 |
| # BEFORE: 8: c0 03 5f d6 ret |
| |
| # AFTER: Disassembly of section .text: |
| # AFTER: 140001000: 03 00 00 94 bl #12 |
| # AFTER: 140001004: 05 00 00 94 bl #20 |
| # AFTER: 140001008: c0 03 5f d6 ret |
| # AFTER: 14000100c: 10 00 00 b0 adrp x16, #4096 |
| # AFTER: 140001010: 10 32 40 f9 ldr x16, [x16, #96] |
| # AFTER: 140001014: 00 02 1f d6 br x16 |
| # AFTER: 140001018: 10 00 00 b0 adrp x16, #4096 |
| # AFTER: 14000101c: 10 3a 40 f9 ldr x16, [x16, #112] |
| # AFTER: 140001020: 00 02 1f d6 br x16 |
| |
| # IMPORTS: Import { |
| # IMPORTS: Name: library.dll |
| # IMPORTS: ImportLookupTableRVA: 0x2040 |
| # IMPORTS: ImportAddressTableRVA: 0x2060 |
| # IMPORTS: Symbol: function (2) |
| # IMPORTS: } |
| # IMPORTS: Import { |
| # IMPORTS: Name: library2.dll |
| # IMPORTS: ImportLookupTableRVA: 0x2050 |
| # IMPORTS: ImportAddressTableRVA: 0x2070 |
| # IMPORTS: Symbol: function2 (0) |
| # 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: 0000009400000094C0035FD6 |
| Relocations: |
| - VirtualAddress: 0 |
| SymbolName: function |
| Type: IMAGE_REL_ARM64_BRANCH26 |
| - VirtualAddress: 4 |
| SymbolName: function2 |
| 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: 12 |
| NumberOfRelocations: 2 |
| NumberOfLinenumbers: 0 |
| CheckSum: 1438860354 |
| 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 |
| - Name: function2 |
| Value: 0 |
| SectionNumber: 0 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_NULL |
| StorageClass: IMAGE_SYM_CLASS_EXTERNAL |
| ... |