blob: f5c2c50e0dd365c537723963658c25a22dd2da47 [file] [log] [blame]
.section ".tdata", "awT", @progbits
.globl foo, baz
.hidden baz
foo: .long 25
bar: .long 27
baz: .long 29
.text
.globl fn
.type fn,@function
fn:
pushl %ebp
movl %esp, %ebp
pushl %ebx
pushl %eax
call 1f
1: popl %ebx
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
/* Dynamic TLS model, foo not known to be in the current object */
leal foo@TLSGD(,%ebx,1), %eax
call ___tls_get_addr@PLT
/* %eax now contains &foo */
/* Dynamic TLS model, bar and baz known to be in the current object */
leal bar@TLSLDM(%ebx), %eax
call ___tls_get_addr@PLT
/* Just show that there can be arbitrary instructions here */
addl $0, %edi
leal bar@DTPOFF(%eax), %edx
/* %edx now contains &bar */
/* Again, arbitrary instructions */
addl $0, %esi
leal baz@DTPOFF(%eax), %ecx
/* %ecx now contains &baz */
movl -4(%ebp), %ebx
leave
ret