blob: 62ef73cdc34366634b3fab18d9e71bd9903a4891 [file] [log] [blame]
.globl bar[TL]
.csect bar[TL]
.long 1
.toc
.tc gd[TC],bar[TL]
.tc .gd[TC],bar[TL]@m
.tc ld[TC],bar[TL]@ld
.tc mh[TC],mh[TC]@ml
.tc ie[TC],bar[TL]@ie
.tc le[TC],bar[TL]@le
.globl foo
.globl .foo
.csect foo[DS],3
foo:
.if size == 32
.long .foo, TOC[tc0], 0
.else
.llong .foo, TOC[tc0], 0
.endif
.csect foo[PR]
.foo:
#GD
.if size == 32
lwz 4, gd[TC](2)
lwz 3, .gd[TC](2)
.else
ld 4, gd[TC](2)
ld 3, .gd[TC](2)
.endif
bla __tls_get_addr
#LD
.if size == 32
lwz 3, mh[TC](2)
.else
ld 3, mh[TC](2)
.endif
bla __tls_get_mod
lwz 4, ld[TC](2)
add 5,3,4
#IE
.if size == 32
bla __get_tpointer
lwz 4, ie[TC](2)
add 5,3,4
.else
ld 4, ie[TC](2)
add 5,4,13
.endif
#LE
.if size == 32
bla __get_tpointer
lwz 4, le[TC](2)
add 5,3,4
.else
ld 4, le[TC](2)
add 5,3,13
.endif
.rename mh[TC], "_$TLSML" # Symbol for the module handle