64 lines · plain
1// RUN: %clang -c -o %t %s2// RUN: %llvm_jitlink %t3//4// Test that basic MachO TLVs work by adding together TLVs with values5// 0, 1, and -1, and returning the result (0 for success). This setup6// tests both zero-initialized (__thread_bss) and non-zero-initialized7// (__thread_data) secitons.8 9 .section __TEXT,__text,regular,pure_instructions10 .build_version macos, 11, 011 12 .globl _main13 .p2align 4, 0x9014_main:15 pushq %rax16 movq _x@TLVP(%rip), %rdi17 callq *(%rdi)18 movq %rax, %rcx19 movq _y@TLVP(%rip), %rdi20 callq *(%rdi)21 movl (%rax), %edx22 addl (%rcx), %edx23 movq _z@TLVP(%rip), %rdi24 callq *(%rdi)25 addl (%rax), %edx26 movl %edx, %eax27 popq %rcx28 retq29 30.tbss _x$tlv$init, 4, 231 32 .section __DATA,__thread_vars,thread_local_variables33 .globl _x34_x:35 .quad __tlv_bootstrap36 .quad 037 .quad _x$tlv$init38 39 .section __DATA,__thread_data,thread_local_regular40 .p2align 241_y$tlv$init:42 .long 429496729543 44 .section __DATA,__thread_vars,thread_local_variables45 .globl _y46_y:47 .quad __tlv_bootstrap48 .quad 049 .quad _y$tlv$init50 51 .section __DATA,__thread_data,thread_local_regular52 .p2align 253_z$tlv$init:54 .long 155 56 .section __DATA,__thread_vars,thread_local_variables57 .globl _z58_z:59 .quad __tlv_bootstrap60 .quad 061 .quad _z$tlv$init62 63.subsections_via_symbols64