1 .text 2 .globl __tls_get_addr 3 .type __tls_get_addr, @function 4__tls_get_addr: 5 ret 6 .size __tls_get_addr, .-__tls_get_addr 7.globl _start 8 .type _start, @function 9_start: 10 movq foo3@GOTTPOFF(%rip), %rax 11 pushq %rbx 12 movl %fs:foo2@TPOFF, %ebx 13 addl %fs:foo1@TPOFF, %ebx 14 addl %fs:(%rax), %ebx 15 leaq foo4@TLSLD(%rip), %rdi 16 call *__tls_get_addr@GOTPCREL(%rip) 17 addl foo4@DTPOFF(%rax), %ebx 18 .byte 0x66 19 leaq foo5@TLSGD(%rip), %rdi 20 .byte 0x66 21 rex64 22 call *__tls_get_addr@GOTPCREL(%rip) 23 addl (%rax), %ebx 24 movl %ebx, %eax 25 popq %rbx 26 ret 27 .size _start, .-_start 28.globl foo1 29 .section .tbss,"awT",@nobits 30 .align 4 31 .type foo1, @object 32 .size foo1, 4 33foo1: 34 .zero 4 35.globl foo2 36 .align 4 37 .type foo2, @object 38 .size foo2, 4 39foo2: 40 .zero 4 41.globl foo3 42 .align 4 43 .type foo3, @object 44 .size foo3, 4 45foo3: 46 .zero 4 47.globl foo4 48 .align 4 49 .type foo4, @object 50 .size foo4, 4 51foo4: 52 .zero 4 53.globl foo5 54 .align 4 55 .type foo5, @object 56 .size foo5, 4 57foo5: 58 .zero 4 59