1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
// RUN: llvm-mc -triple x86_64-windows-msvc -filetype obj -o %t.obj %s
// RUN: llvm-readobj --sections --sd --relocs %t.obj | FileCheck %s
.section nc_sect,"xr"
normal_call:
.seh_proc normal_call
# %bb.0: # %entry
subq $40, %rsp
.seh_stackalloc 40
.seh_endprologue
.Limpcall0:
rex64
callq *__imp_a(%rip)
nopl 8(%rax,%rax)
nop
addq $40, %rsp
retq
.seh_endproc
.section tc_sect,"xr"
tail_call:
.Limpcall1:
rex64
jmp *__imp_b(%rip)
.section .retplne,"yi"
.asciz "RetpolineV1"
.long 16
.secnum tc_sect
.long 2
.secoffset .Limpcall1
.long 16
.secnum nc_sect
.long 3
.secoffset .Limpcall0
// CHECK-LABEL: Name: .retplne (2E 72 65 74 70 6C 6E 65)
// CHECK-NEXT: VirtualSize: 0x0
// CHECK-NEXT: VirtualAddress: 0x0
// CHECK-NEXT: RawDataSize: 44
// CHECK-NEXT: PointerToRawData:
// CHECK-NEXT: PointerToRelocations:
// CHECK-NEXT: PointerToLineNumbers:
// CHECK-NEXT: RelocationCount: 0
// CHECK-NEXT: LineNumberCount: 0
// CHECK-NEXT: Characteristics [
// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES
// CHECK-NEXT: IMAGE_SCN_LNK_INFO
// CHECK-NEXT: ]
// CHECK-NEXT: SectionData (
// CHECK-NEXT: 52657470 6F6C696E 65563100 10000000 |RetpolineV1.....|
// CHECK-NEXT: 0010:
// CHECK-SAME: [[#%.2X,TCSECT:]]000000
// CHECK-SAME: 02000000
// CHECK-SAME: [[#%.2X,TCOFFSET:]]000000
// CHECK-SAME: 10000000
// CHECK-NEXT: 0020:
// CHECK-SAME: [[#%.2X,NCSECT:]]000000
// CHECK-SAME: 03000000
// CHECK-SAME: [[#%.2X,NCOFFSET:]]000000
// CHECK-NEXT: )
// CHECK-LABEL: Relocations [
// CHECK-NEXT: Section ([[#%u,NCSECT]]) nc_sect {
// CHECK-NEXT: 0x[[#%x,NCOFFSET + 3]] IMAGE_REL_AMD64_REL32 __imp_a
// CHECK-NEXT: }
// CHECK-NEXT: Section ([[#%u,TCSECT]]) tc_sect {
// CHECK-NEXT: 0x[[#%x,TCOFFSET + 3]] IMAGE_REL_AMD64_REL32 __imp_b
// CHECK-NEXT: }
|