.section ".tdata", "awT", @progbits .global sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 .global sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 .align 4 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 157 sh2: .long 158 sh3: .long 159 sh4: .long 160 sh5: .long 161 sh6: .long 162 sh7: .long 163 sh8: .long 164 .text .global _start .type _start, @function _start: entry sp, 32 /* GD */ movi a8, sg1@tlsfunc movi a10, sg1@tlsarg callx8.tls a8, sg1@tlscall /* GD -> IE because variable is referenced through IE too */ movi a8, sg2@tlsfunc movi a10, sg2@tlsarg callx8.tls a8, sg2@tlscall /* GD against local variable */ movi a8, sl1@tlsfunc movi a10, sl1@tlsarg callx8.tls a8, sl1@tlscall /* GD -> IE against local variable referenced through IE too */ movi a8, sl2@tlsfunc movi a10, sl2@tlsarg callx8.tls a8, sl2@tlscall /* GD against hidden and local variable */ movi a8, sh1@tlsfunc movi a10, sh1@tlsarg callx8.tls a8, sh1@tlscall /* GD -> IE against hidden and local variable referenced through IE too */ movi a8, sh2@tlsfunc movi a10, sh2@tlsarg callx8.tls a8, sh2@tlscall /* GD against hidden but not local variable */ movi a8, sH1@tlsfunc movi a10, sH1@tlsarg callx8.tls a8, sH1@tlscall /* GD -> IE against hidden but not local variable referenced through IE too */ movi a8, sH2@tlsfunc movi a10, sH2@tlsarg callx8.tls a8, sH2@tlscall /* LD */ movi a8, _TLS_MODULE_BASE_@tlsfunc movi a10, _TLS_MODULE_BASE_@tlsarg callx8.tls a8, _TLS_MODULE_BASE_@tlscall movi a12, sl1@dtpoff add a12, a12, a10 movi a13, 2+sl2@dtpoff add a13, a13, a10 /* LD against hidden and local variables */ movi a12, sh1@dtpoff add a12, a12, a10 movi a13, sh2@dtpoff+3 add a13, a13, a10 /* LD against hidden but not local variables */ movi a12, sH1@dtpoff add a12, a12, a10 movi a13, sH2@dtpoff+1 add a13, a13, a10 /* IE against global var */ rur a2, THREADPTR movi a3, sg2@tpoff add a3, a3, a2 /* IE against local var */ rur a4, THREADPTR movi a5, sl2@tpoff add a5, a5, a4 /* IE against hidden and local var */ rur a6, THREADPTR movi a7, sh2@tpoff add a7, a7, a6 /* IE against hidden but not local var */ rur a8, THREADPTR movi a9, sH2@tpoff add a9, a9, a8 retw