| .text |
| .globl __tls_get_addr |
| .type __tls_get_addr, @function |
| __tls_get_addr: |
| ret |
| .size __tls_get_addr, .-__tls_get_addr |
| .globl _start |
| .type _start, @function |
| _start: |
| movq foo3@GOTTPOFF(%rip), %rax |
| pushq %rbx |
| movl %fs:foo2@TPOFF, %ebx |
| addl %fs:foo1@TPOFF, %ebx |
| addl %fs:(%rax), %ebx |
| leaq foo4@TLSLD(%rip), %rdi |
| call __tls_get_addr@PLT |
| addl foo4@DTPOFF(%rax), %ebx |
| .byte 0x66 |
| leaq foo5@TLSGD(%rip), %rdi |
| .value 0x6666 |
| rex64 |
| call __tls_get_addr@PLT |
| addl (%rax), %ebx |
| movl %ebx, %eax |
| popq %rbx |
| ret |
| .size _start, .-_start |
| .globl foo1 |
| .section .tbss,"awT",@nobits |
| .align 4 |
| .type foo1, @object |
| .size foo1, 4 |
| foo1: |
| .zero 4 |
| .globl foo2 |
| .align 4 |
| .type foo2, @object |
| .size foo2, 4 |
| foo2: |
| .zero 4 |
| .globl foo3 |
| .align 4 |
| .type foo3, @object |
| .size foo3, 4 |
| foo3: |
| .zero 4 |
| .globl foo4 |
| .align 4 |
| .type foo4, @object |
| .size foo4, 4 |
| foo4: |
| .zero 4 |
| .globl foo5 |
| .align 4 |
| .type foo5, @object |
| .size foo5, 4 |
| foo5: |
| .zero 4 |