1*283dca56SDaniel Paoliello// RUN: llvm-mc -triple aarch64-windows-msvc -filetype obj -o %t.obj %s 2*283dca56SDaniel Paoliello// RUN: llvm-readobj --sections --sd --relocs %t.obj | FileCheck %s 3*283dca56SDaniel Paoliello 4*283dca56SDaniel Paoliello.section nc_sect,"xr" 5*283dca56SDaniel Paoliellonormal_call: 6*283dca56SDaniel Paoliello str x30, [sp, #-16]! // 8-byte Folded Spill 7*283dca56SDaniel Paoliello adrp x8, __imp_a 8*283dca56SDaniel Paoliello ldr x8, [x8, :lo12:__imp_a] 9*283dca56SDaniel Paoliello.Limpcall0: 10*283dca56SDaniel Paoliello blr x8 11*283dca56SDaniel Paoliello ldr x30, [sp], #16 // 8-byte Folded Reload 12*283dca56SDaniel Paoliello ret 13*283dca56SDaniel Paoliello 14*283dca56SDaniel Paoliello.section tc_sect,"xr" 15*283dca56SDaniel Paoliellotail_call: 16*283dca56SDaniel Paoliello adrp x8, __imp_b 17*283dca56SDaniel Paoliello ldr x8, [x8, :lo12:__imp_b] 18*283dca56SDaniel Paoliello.Limpcall1: 19*283dca56SDaniel Paoliello br x8 20*283dca56SDaniel Paoliello 21*283dca56SDaniel Paoliello.section .impcall,"yi" 22*283dca56SDaniel Paoliello.asciz "Imp_Call_V1" 23*283dca56SDaniel Paoliello.word 20 24*283dca56SDaniel Paoliello.secnum nc_sect 25*283dca56SDaniel Paoliello.word 19 26*283dca56SDaniel Paoliello.secoffset .Limpcall0 27*283dca56SDaniel Paoliello.symidx __imp_a 28*283dca56SDaniel Paoliello.word 20 29*283dca56SDaniel Paoliello.secnum tc_sect 30*283dca56SDaniel Paoliello.word 19 31*283dca56SDaniel Paoliello.secoffset .Limpcall1 32*283dca56SDaniel Paoliello.symidx __imp_b 33*283dca56SDaniel Paoliello 34*283dca56SDaniel Paoliello// CHECK-LABEL: Name: .impcall (2E 69 6D 70 63 61 6C 6C) 35*283dca56SDaniel Paoliello// CHECK-NEXT: VirtualSize: 0x0 36*283dca56SDaniel Paoliello// CHECK-NEXT: VirtualAddress: 0x0 37*283dca56SDaniel Paoliello// CHECK-NEXT: RawDataSize: 52 38*283dca56SDaniel Paoliello// CHECK-NEXT: PointerToRawData: 0x150 39*283dca56SDaniel Paoliello// CHECK-NEXT: PointerToRelocations: 0x0 40*283dca56SDaniel Paoliello// CHECK-NEXT: PointerToLineNumbers: 0x0 41*283dca56SDaniel Paoliello// CHECK-NEXT: RelocationCount: 0 42*283dca56SDaniel Paoliello// CHECK-NEXT: LineNumberCount: 0 43*283dca56SDaniel Paoliello// CHECK-NEXT: Characteristics [ 44*283dca56SDaniel Paoliello// CHECK-NEXT: IMAGE_SCN_ALIGN_4BYTES 45*283dca56SDaniel Paoliello// CHECK-NEXT: IMAGE_SCN_LNK_INFO 46*283dca56SDaniel Paoliello// CHECK-NEXT: ] 47*283dca56SDaniel Paoliello// CHECK-NEXT: SectionData ( 48*283dca56SDaniel Paoliello// CHECK-NEXT: 0000: 496D705F 43616C6C 5F563100 14000000 |Imp_Call_V1.....| 49*283dca56SDaniel Paoliello// CHECK-NEXT: 0010: 50*283dca56SDaniel Paoliello// CHECK-SAME: [[#%.2X,NCSECT:]]000000 51*283dca56SDaniel Paoliello// CHECK-SAME: 13000000 52*283dca56SDaniel Paoliello// CHECK-SAME: [[#%.2X,NCOFFSET:]]000000 53*283dca56SDaniel Paoliello// CHECK-SAME: [[#%.2X,NCSYM:]]000000 54*283dca56SDaniel Paoliello// CHECK-NEXT: 0020: 55*283dca56SDaniel Paoliello// CHECK-SAME: 14000000 56*283dca56SDaniel Paoliello// CHECK-SAME: [[#%.2X,TCSECT:]]000000 57*283dca56SDaniel Paoliello// CHECK-SAME: 13000000 58*283dca56SDaniel Paoliello// CHECK-SAME: [[#%.2X,TCOFFSET:]]000000 59*283dca56SDaniel Paoliello// CHECK-NEXT: 0030: 60*283dca56SDaniel Paoliello// CHECK-SAME: [[#%.2X,TCSYM:]]000000 61*283dca56SDaniel Paoliello// CHECK-NEXT: ) 62*283dca56SDaniel Paoliello 63*283dca56SDaniel Paoliello// CHECK-LABEL: Relocations [ 64*283dca56SDaniel Paoliello// CHECK-NEXT: Section ([[#%u,NCSECT]]) nc_sect { 65*283dca56SDaniel Paoliello// CHECK-NEXT: 0x[[#%x,NCOFFSET - 8]] IMAGE_REL_ARM64_PAGEBASE_REL21 __imp_a ([[#%u,NCSYM]]) 66*283dca56SDaniel Paoliello// CHECK-NEXT: 0x[[#%x,NCOFFSET - 4]] IMAGE_REL_ARM64_PAGEOFFSET_12L __imp_a ([[#%u,NCSYM]]) 67*283dca56SDaniel Paoliello// CHECK-NEXT: } 68*283dca56SDaniel Paoliello// CHECK-NEXT: Section ([[#%u,TCSECT]]) tc_sect { 69*283dca56SDaniel Paoliello// CHECK-NEXT: 0x[[#%x,TCOFFSET - 8]] IMAGE_REL_ARM64_PAGEBASE_REL21 __imp_b ([[#%u,TCSYM]]) 70*283dca56SDaniel Paoliello// CHECK-NEXT: 0x[[#%x,TCOFFSET - 4]] IMAGE_REL_ARM64_PAGEOFFSET_12L __imp_b ([[#%u,TCSYM]]) 71*283dca56SDaniel Paoliello// CHECK-NEXT: } 72*283dca56SDaniel Paoliello// CHECK-NEXT: ] 73