1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
.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
|