83 lines · plain
1# RUN: rm -rf %t && mkdir -p %t2# RUN: llvm-mc -triple=x86_64-pc-win32 -filetype=obj -o %t/COFF_x86_64.o %s3# RUN: llvm-rtdyld -triple=x86_64-pc-win32 -dummy-extern external_func=0x1 \4# RUN: -dummy-extern external_data=0x2 -verify -check=%s %t/COFF_x86_64.o5 6 7 .section section,"rx"8 .long 09Lreloc:10 .long 011# rtdyld-check: *{2}Lreloc = 112 .reloc 4, secidx, section+413 14 15 .text16 .def F;17 .scl 2;18 .type 32;19 .endef20 .globl __real400921f9f01b866e21 .section .rdata,"dr",discard,__real400921f9f01b866e22 .align 823__real400921f9f01b866e:24 .quad 4614256650576692846 # double 3.141589999999999925 .text26 .globl F27 .global inst128 .align 16, 0x9029F: # @F30.Ltmp0:31.seh_proc F32# %bb.0: # %entry33.Ltmp1:34 .seh_endprologue35# rtdyld-check: decode_operand(inst1, 4) = __real400921f9f01b866e - next_pc(inst1)36inst1:37 movsd __real400921f9f01b866e(%rip), %xmm0 # xmm0 = mem[0],zero38 retq39.Leh_func_end0:40.Ltmp2:41 .seh_endproc42 43 .globl call_to_dllimport44 .p2align 4, 0x9045# Check calls to dllimports.46#47# (1) Check that callq argument points to synthesized stub addr.48# rtdyld-check: decode_operand(call_to_dllimport, 3) = \49# rtdyld-check: stub_addr(COFF_x86_64.o/.text, __imp_external_func) - \50# rtdyld-check: next_pc(call_to_dllimport)51#52# (2) Check that synthesized stub entry points to call target.53# rtdyld-check: *{8}(stub_addr(COFF_x86_64.o/.text, __imp_external_func)) = \54# rtdyld-check: external_func55call_to_dllimport:56 callq *__imp_external_func(%rip)57 58 .globl load_from_dllimport59 .p2align 4, 0x9060# Check loads from dllimports.61#62# (1) Check that the movq argument points to synthesized stub addr.63# rtdyld-check: decode_operand(load_from_dllimport, 4) = \64# rtdyld-check: stub_addr(COFF_x86_64.o/.text, __imp_external_data) - \65# rtdyld-check: next_pc(load_from_dllimport)66#67# (2) Check that synthesized stub entry points to datao target.68# rtdyld-check: *{8}(stub_addr(COFF_x86_64.o/.text, __imp_external_data)) = \69# rtdyld-check: external_data70load_from_dllimport:71 movq __imp_external_data(%rip), %rax72 73 .data74 .globl x # @x75# rtdyld-check: *{8}x = F76x:77 .quad F78 79# Make sure the JIT doesn't bail out on BSS sections.80 .bss81bss_check:82 .fill 8, 1, 083