brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · 3cf244d Raw
105 lines · plain
1# RUN: rm -rf %t && mkdir -p %t && cd %t2# RUN: llvm-mc -triple=x86_64-unknown-freebsd -filetype=obj -o t.o %s3# RUN: llvm-rtdyld -triple=x86_64-unknown-linux -verify -check=%s t.o -dummy-extern=extern_data=0x42000000004 5# Generated from this C source:6#7# static int static_data[10];8# int global_data[10] = {1, 2};9# extern int extern_data[10];10#11# int *lea_static_data() { return &static_data[0]; }12# int *lea_global_data() { return &global_data[0]; }13# int *lea_extern_data() { return &extern_data[0]; }14 15        .text16        .file   "model.c"17        .globl  lea_static_data         # -- Begin function lea_static_data18        .p2align        4, 0x9019        .type   lea_static_data,@function20lea_static_data:                        # @lea_static_data21        .cfi_startproc22# %bb.0:23.Ltmp0:24        leaq    .Ltmp0(%rip), %rcx25# rtdyld-check: decode_operand(lea_static_got, 1) = section_addr(t.o, .got) - lea_static_data26lea_static_got:27        movabsq $_GLOBAL_OFFSET_TABLE_-.Ltmp0, %rax28        addq    %rax, %rcx29# rtdyld-check: decode_operand(lea_static_gotoff, 1) = static_data - section_addr(t.o, .got)30lea_static_gotoff:31        movabsq $static_data@GOTOFF, %rax32        addq    %rcx, %rax33        retq34.Lfunc_end0:35        .size   lea_static_data, .Lfunc_end0-lea_static_data36        .cfi_endproc37 38 39        .globl  lea_global_data         # -- Begin function lea_global_data40        .p2align        4, 0x9041        .type   lea_global_data,@function42lea_global_data:                        # @lea_global_data43        .cfi_startproc44# %bb.0:45.Ltmp1:46        leaq    .Ltmp1(%rip), %rcx47# rtdyld-check: decode_operand(lea_global_got, 1) = section_addr(t.o, .got) - lea_global_data48lea_global_got:49        movabsq $_GLOBAL_OFFSET_TABLE_-.Ltmp1, %rax50        addq    %rax, %rcx51# rtdyld-check: decode_operand(lea_global_gotoff, 1) = global_data - section_addr(t.o, .got)52lea_global_gotoff:53        movabsq $global_data@GOTOFF, %rax54        addq    %rcx, %rax55        retq56.Lfunc_end1:57        .size   lea_global_data, .Lfunc_end1-lea_global_data58        .cfi_endproc59 60 61        .globl  lea_extern_data         # -- Begin function lea_extern_data62        .p2align        4, 0x9063        .type   lea_extern_data,@function64lea_extern_data:                        # @lea_extern_data65        .cfi_startproc66# %bb.0:67.Ltmp2:68        leaq    .Ltmp2(%rip), %rax69# rtdyld-check: decode_operand(lea_extern_got, 1) = section_addr(t.o, .got) - lea_extern_data70lea_extern_got:71        movabsq $_GLOBAL_OFFSET_TABLE_-.Ltmp2, %rcx72        addq    %rcx, %rax73# extern_data is the only thing in the GOT, so it'll be slot 0.74# rtdyld-check: decode_operand(lea_extern_gotslot, 1) = 075lea_extern_gotslot:76        movabsq $extern_data@GOT, %rcx77        movq    (%rax,%rcx), %rax78        retq79.Lfunc_end2:80        .size   lea_extern_data, .Lfunc_end2-lea_extern_data81        .cfi_endproc82 83 84        .type   global_data,@object     # @global_data85        .data86        .globl  global_data87        .p2align        488global_data:89        .long   1                       # 0x190        .long   2                       # 0x291        .long   0                       # 0x092        .long   0                       # 0x093        .long   0                       # 0x094        .long   0                       # 0x095        .long   0                       # 0x096        .long   0                       # 0x097        .long   0                       # 0x098        .long   0                       # 0x099        .size   global_data, 40100 101        .type   static_data,@object     # @static_data102        .local  static_data103        .comm   static_data,40,16104 105