.section ".tdata", "awT", @progbits .balign 32 .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 sg1: .long 17 sg2: .long 18 sg3: .long 19 sg4: .long 20 sg5: .long 21 sg6: .long 22 sg7: .long 23 sg8: .long 24 sl1: .long 65 sl2: .long 66 sl3: .long 67 sl4: .long 68 sl5: .long 69 sl6: .long 70 sl7: .long 71 sl8: .long 72 sh1: .long 257 sh2: .long 258 sh3: .long 259 sh4: .long 260 sh5: .long 261 sh6: .long 262 sh7: .long 263 sh8: .long 264 .text .globl fn1 .type fn1,@function .balign 64 fn1: /* Funtion prolog */ stmg %r6,%r14,48(%r15) bras %r13,.LTN1 /* Literal pool */ .LT1: .LC2: .quad sg1@tlsgd .LC3: .quad sg2@tlsgd .LC4: .quad sl1@tlsgd .LC5: .quad sl2@tlsgd .LC6: .quad sh1@tlsgd .LC7: .quad sh2@tlsgd .LC8: .quad sH1@tlsgd .LC9: .quad sH2@tlsgd .LC10: .quad sl1@tlsldm .LC11: .quad sl1@dtpoff .LC12: .quad sl2@dtpoff .LC13: .quad sh1@tlsldm .LC14: .quad sh1@dtpoff .LC15: .quad sh2@dtpoff .LC16: .quad sH1@tlsldm .LC17: .quad sH1@dtpoff .LC18: .quad sH2@dtpoff .LC19: .quad sg2@gotntpoff .LC20: .quad sl2@gotntpoff .LC21: .quad sh2@gotntpoff .LC22: .quad sH2@gotntpoff .LTN1: /* Funtion prolog */ lgr %r14,%r15 larl %r12,_GLOBAL_OFFSET_TABLE_ aghi %r15,-160 stg %r14,0(%r14) /* Extract TCB */ ear %r9,%a0 sllg %r9,%r4,32 ear %r9,%a1 /* GD */ lg %r2,.LC2-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_gdcall:sg1 la %r2,0(%r2,%r9) /* GD -> IE because variable is referenced through IE too */ lg %r2,.LC3-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_gdcall:sg2 la %r2,0(%r2,%r9) /* GD against local variable */ lg %r2,.LC4-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_gdcall:sl1 la %r2,0(%r2,%r9) /* GD -> IE against local variable referenced through IE too */ lg %r2,.LC5-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_gdcall:sl2 la %r2,0(%r2,%r9) /* GD against hidden and local variable */ lg %r2,.LC6-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_gdcall:sh1 la %r2,0(%r2,%r9) /* GD -> IE against hidden and local variable referenced through IE too */ lg %r2,.LC7-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_gdcall:sh2 la %r2,0(%r2,%r9) /* GD against hidden but not local variable */ lg %r2,.LC8-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_gdcall:sH1 la %r2,0(%r2,%r9) /* GD -> IE against hidden but not local variable referenced through IE too */ lg %r2,.LC9-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_gdcall:sH2 la %r2,0(%r2,%r9) /* LD */ lg %r2,.LC10-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_ldcall:sl1 la %r3,0(%r2,%r9) lg %r4,.LC11-.LT1(%r13) la %r5,0(%r4,%r3) lg %r4,.LC12-.LT1(%r13) la %r5,0(%r4,%r3) /* LD against hidden and local variables */ lg %r2,.LC13-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_ldcall:sh1 la %r3,0(%r2,%r9) lg %r4,.LC14-.LT1(%r13) la %r5,0(%r4,%r3) lg %r4,.LC15-.LT1(%r13) la %r5,0(%r4,%r3) /* LD against hidden but not local variables */ lg %r2,.LC16-.LT1(%r13) brasl %r14,__tls_get_offset@plt:tls_ldcall:sH1 la %r3,0(%r2,%r9) lg %r4,.LC17-.LT1(%r13) la %r5,0(%r4,%r3) lg %r4,.LC18-.LT1(%r13) la %r5,0(%r4,%r3) /* IE against global var */ lg %r3,.LC19-.LT1(%r13) lg %r3,0(%r3,%r12):tls_load:sg2 la %r3,0(%r3,%r9) /* IE against local var */ lg %r3,.LC20-.LT1(%r13) lg %r4,0(%r3,%r12):tls_load:sl2 la %r5,0(%r4,%r9) /* IE against hidden and local var */ lg %r3,.LC21-.LT1(%r13) lg %r4,0(%r3,%r12):tls_load:sh2 la %r5,0(%r4,%r9) /* IE against hidden but not local var */ lg %r3,.LC22-.LT1(%r13) lg %r4,0(%r3,%r12):tls_load:sH2 la %r5,0(%r4,%r9) /* IE against global var with larl got access */ larl %r3,sg5@indntpoff lg %r3,0(%r3,%r12):tls_load:sg2 la %r3,0(%r3,%r9) /* IE against local var with larl got access */ larl %r3,sl5@indntpoff lg %r4,0(%r3,%r12):tls_load:sl2 la %r5,0(%r4,%r9) /* IE against hidden and local var with larl got access */ larl %r3,sh5@indntpoff lg %r4,0(%r3,%r12):tls_load:sh2 la %r5,0(%r4,%r9) /* IE against hidden but not local var with larl got access */ larl %r3,sH5@indntpoff lg %r4,0(%r3,%r12):tls_load:sH2 la %r5,0(%r4,%r9) /* IE against global var with small got access (no optimization) */ lg %r3,sg5@gotntpoff(%r12) la %r3,0(%r3,%r9) /* IE against local var with small got access (no optimization) */ lg %r3,sl5@gotntpoff(%r12) la %r3,0(%r3,%r9) /* IE against hidden and local var with small got access (no optimization) */ lg %r3,sh5@gotntpoff(%r12) la %r3,0(%r3,%r9) /* IE against hidden but not local var with small got access (no optimization) */ lg %r3,sH5@gotntpoff(%r12) la %r3,0(%r3,%r9) /* Function epilog */ lmg %r6,%r14,208(%r15) br %r14