| .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: |
| pushl %ebp |
| movl %esp, %ebp |
| pushl %esi |
| pushl %ebx |
| call .L3 |
| .L3: |
| popl %ebx |
| addl $_GLOBAL_OFFSET_TABLE_+[.-.L3], %ebx |
| movl %gs:foo2@NTPOFF, %esi |
| addl %gs:foo1@NTPOFF, %esi |
| movl foo3@GOTNTPOFF(%ebx), %eax |
| addl %gs:(%eax), %esi |
| leal foo4@TLSLDM(%edx), %eax |
| call *___tls_get_addr@GOT(%edx) |
| addl (%eax), %esi |
| leal foo5@TLSGD(%ebx), %eax |
| call *___tls_get_addr@GOT(%ebx) |
| addl (%eax), %esi |
| movl %esi, %eax |
| popl %ebx |
| popl %esi |
| leave |
| 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 |