| # REQUIRES: aarch64 |
| |
| # RUN: yaml2obj %s -o %t.obj |
| # RUN: llvm-objdump --no-print-imm-hex -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 --no-print-imm-hex -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: 94000000 bl 0x0 |
| # BEFORE: 4: 94000000 bl 0x4 |
| # BEFORE: 8: d65f03c0 ret |
| # BEFORE: c: ff <unknown> |
| |
| # AFTER: Disassembly of section .text: |
| # AFTER-EMPTY: |
| # AFTER: 140001000: 94000004 bl 0x140001010 |
| # AFTER: 140001004: 94000006 bl 0x14000101c |
| # AFTER: 140001008: d65f03c0 ret |
| # AFTER: 14000100c: 000000ff |
| # AFTER: 140001010: b0000010 adrp x16, 0x140002000 |
| # AFTER: 140001014: f9403210 ldr x16, [x16, #96] |
| # AFTER: 140001018: d61f0200 br x16 |
| # AFTER: 14000101c: b0000010 adrp x16, 0x140002000 |
| # AFTER: 140001020: f9403a10 ldr x16, [x16, #112] |
| # AFTER: 140001024: d61f0200 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 |
| ... |