| # REQUIRES: aarch64 |
| |
| # RUN: yaml2obj %s -o %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-EMPTY: |
| # BEFORE: 0: 00 00 00 94 bl 0x0 |
| # BEFORE: 4: 00 00 00 94 bl 0x4 |
| # BEFORE: 8: c0 03 5f d6 ret |
| # BEFORE: c: ff <unknown> |
| |
| # AFTER: Disassembly of section .text: |
| # AFTER-EMPTY: |
| # AFTER: 140001000: 04 00 00 94 bl 0x140001010 |
| # AFTER: 140001004: 06 00 00 94 bl 0x14000101c |
| # AFTER: 140001008: c0 03 5f d6 ret |
| # AFTER: 14000100c: ff cc cc cc <unknown> |
| # AFTER: 140001010: 10 00 00 b0 adrp x16, 0x140002000 |
| # AFTER: 140001014: 10 32 40 f9 ldr x16, [x16, #96] |
| # AFTER: 140001018: 00 02 1f d6 br x16 |
| # AFTER: 14000101c: 10 00 00 b0 adrp x16, 0x140002000 |
| # AFTER: 140001020: 10 3a 40 f9 ldr x16, [x16, #112] |
| # AFTER: 140001024: 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: 0000009400000094C0035FD6FF |
| 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 |
| ... |