blob: 4f839a2bc6011998afb3753ee2767ee5b4e926ee [file] [edit]
// 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: }