1 .section .tbss,"awT",@nobits 2 .align 4 3 .type l, @object 4 .size l, 4 5 l: 6 .zero 4 7 .align 4 8 .globl i 9 .type i, @object 10 .size i, 4 11 i: 12 .zero 4 13 .text 14 .globl _start 15 _start: 16 call #gettlsoff(l+1) 17 call #gettlsoff(l+1+4096) 18 call #gettlsoff(l+1+65536) 19 20 sethi.p #gottlsdeschi(l+2), gr14 21 setlo #gottlsdesclo(l+2), gr14 22 ldd #tlsdesc(l+2)@(gr15, gr14), gr8 23 calll #gettlsoff(l+2)@(gr8, gr0) 24 25 sethi.p #gottlsdeschi(l+2+4096), gr14 26 setlo #gottlsdesclo(l+2+4096), gr14 27 ldd #tlsdesc(l+2+4096)@(gr15, gr14), gr8 28 calll #gettlsoff(l+2+4096)@(gr8, gr0) 29 30 sethi.p #gottlsdeschi(l+2+65536), gr14 31 setlo #gottlsdesclo(l+2+65536), gr14 32 ldd #tlsdesc(l+2+65536)@(gr15, gr14), gr8 33 calll #gettlsoff(l+2+65536)@(gr8, gr0) 34 35 lddi.p @(gr15, #gottlsdesc12(l+3)), gr8 36 setlos #gottlsdesclo(l+3), gr14 37 calll #gettlsoff(l+3)@(gr8, gr0) 38 39 lddi.p @(gr15, #gottlsdesc12(l+3+4096)), gr8 40 setlos #gottlsdesclo(l+3+4096), gr14 41 calll #gettlsoff(l+3+4096)@(gr8, gr0) 42 43 lddi.p @(gr15, #gottlsdesc12(l+3+65536)), gr8 44 setlos #gottlsdesclo(l+3+65536), gr14 45 calll #gettlsoff(l+3+65536)@(gr8, gr0) 46 47 sethi #tlsmoffhi(l+4), gr9 48 setlo #tlsmofflo(l+4), gr9 49 50 sethi #tlsmoffhi(l+4+4096), gr9 51 setlo #tlsmofflo(l+4+4096), gr9 52 53 sethi #tlsmoffhi(l+4+65536), gr9 54 setlo #tlsmofflo(l+4+65536), gr9 55 56 call #gettlsoff(i+1) 57 call #gettlsoff(i+1+4096) 58 call #gettlsoff(i+1+65536) 59 60 sethi.p #gottlsdeschi(i+2), gr14 61 setlo #gottlsdesclo(i+2), gr14 62 ldd #tlsdesc(i+2)@(gr15, gr14), gr8 63 calll #gettlsoff(i+2)@(gr8, gr0) 64 65 sethi.p #gottlsdeschi(i+2+4096), gr14 66 setlo #gottlsdesclo(i+2+4096), gr14 67 ldd #tlsdesc(i+2+4096)@(gr15, gr14), gr8 68 calll #gettlsoff(i+2+4096)@(gr8, gr0) 69 70 sethi.p #gottlsdeschi(i+2+65536), gr14 71 setlo #gottlsdesclo(i+2+65536), gr14 72 ldd #tlsdesc(i+2+65536)@(gr15, gr14), gr8 73 calll #gettlsoff(i+2+65536)@(gr8, gr0) 74 75 lddi.p @(gr15, #gottlsdesc12(i+3)), gr8 76 setlos #gottlsdesclo(i+3), gr14 77 calll #gettlsoff(i+3)@(gr8, gr0) 78 79 lddi.p @(gr15, #gottlsdesc12(i+3+4096)), gr8 80 setlos #gottlsdesclo(i+3+4096), gr14 81 calll #gettlsoff(i+3+4096)@(gr8, gr0) 82 83 lddi.p @(gr15, #gottlsdesc12(i+3+65536)), gr8 84 setlos #gottlsdesclo(i+3+65536), gr14 85 calll #gettlsoff(i+3+65536)@(gr8, gr0) 86 87 sethi #tlsmoffhi(i+4), gr9 88 setlo #tlsmofflo(i+4), gr9 89 90 sethi #tlsmoffhi(i+4+4096), gr9 91 setlo #tlsmofflo(i+4+4096), gr9 92 93 sethi #tlsmoffhi(i+4+65536), gr9 94 setlo #tlsmofflo(i+4+65536), gr9 95 96 call #gettlsoff(0+1) 97 call #gettlsoff(0+1+4096) 98 call #gettlsoff(0+1+65536) 99 100 sethi.p #gottlsdeschi(0+2), gr14 101 setlo #gottlsdesclo(0+2), gr14 102 ldd #tlsdesc(0+2)@(gr15, gr14), gr8 103 calll #gettlsoff(0+2)@(gr8, gr0) 104 105 sethi.p #gottlsdeschi(0+2+4096), gr14 106 setlo #gottlsdesclo(0+2+4096), gr14 107 ldd #tlsdesc(0+2+4096)@(gr15, gr14), gr8 108 calll #gettlsoff(0+2+4096)@(gr8, gr0) 109 110 sethi.p #gottlsdeschi(0+2+65536), gr14 111 setlo #gottlsdesclo(0+2+65536), gr14 112 ldd #tlsdesc(0+2+65536)@(gr15, gr14), gr8 113 calll #gettlsoff(0+2+65536)@(gr8, gr0) 114 115 lddi.p @(gr15, #gottlsdesc12(0+3)), gr8 116 setlos #gottlsdesclo(0+3), gr14 117 calll #gettlsoff(0+3)@(gr8, gr0) 118 119 lddi.p @(gr15, #gottlsdesc12(0+3+4096)), gr8 120 setlos #gottlsdesclo(0+3+4096), gr14 121 calll #gettlsoff(0+3+4096)@(gr8, gr0) 122 123 lddi.p @(gr15, #gottlsdesc12(0+3+65536)), gr8 124 setlos #gottlsdesclo(0+3+65536), gr14 125 calll #gettlsoff(0+3+65536)@(gr8, gr0) 126 127 sethi #tlsmoffhi(0+4), gr9 128 setlo #tlsmofflo(0+4), gr9 129 130 sethi #tlsmoffhi(0+4+4096), gr9 131 setlo #tlsmofflo(0+4+4096), gr9 132 133 sethi #tlsmoffhi(0+4+65536), gr9 134 setlo #tlsmofflo(0+4+65536), gr9 135 136 call #gettlsoff(x+1) 137 call #gettlsoff(x+1+4096) 138 call #gettlsoff(x+1+65536) 139 140 sethi.p #gottlsdeschi(x+2), gr14 141 setlo #gottlsdesclo(x+2), gr14 142 ldd #tlsdesc(x+2)@(gr15, gr14), gr8 143 calll #gettlsoff(x+2)@(gr8, gr0) 144 145 sethi.p #gottlsdeschi(x+2+4096), gr14 146 setlo #gottlsdesclo(x+2+4096), gr14 147 ldd #tlsdesc(x+2+4096)@(gr15, gr14), gr8 148 calll #gettlsoff(x+2+4096)@(gr8, gr0) 149 150 sethi.p #gottlsdeschi(x+2+65536), gr14 151 setlo #gottlsdesclo(x+2+65536), gr14 152 ldd #tlsdesc(x+2+65536)@(gr15, gr14), gr8 153 calll #gettlsoff(x+2+65536)@(gr8, gr0) 154 155 lddi.p @(gr15, #gottlsdesc12(x+3)), gr8 156 setlos #gottlsdesclo(x+3), gr14 157 calll #gettlsoff(x+3)@(gr8, gr0) 158 159 lddi.p @(gr15, #gottlsdesc12(x+3+4096)), gr8 160 setlos #gottlsdesclo(x+3+4096), gr14 161 calll #gettlsoff(x+3+4096)@(gr8, gr0) 162 163 lddi.p @(gr15, #gottlsdesc12(x+3+65536)), gr8 164 setlos #gottlsdesclo(x+3+65536), gr14 165 calll #gettlsoff(x+3+65536)@(gr8, gr0) 166 167 .ifdef static_tls 168 ldi @(gr15, #gottlsoff12(l+1)), gr9 169 ldi @(gr15, #gottlsoff12(l+1+65536)), gr9 170 ldi @(gr15, #gottlsoff12(i+1)), gr9 171 ldi @(gr15, #gottlsoff12(i+1+65536)), gr9 172 ldi @(gr15, #gottlsoff12(0+1)), gr9 173 ldi @(gr15, #gottlsoff12(0+1+65536)), gr9 174 ldi @(gr15, #gottlsoff12(x+1)), gr9 175 ldi @(gr15, #gottlsoff12(x+1+65536)), gr9 176 177 setlos #gottlsofflo(l+1+4096), gr8 178 ld #tlsoff(l+1+4096)@(gr15, gr8), gr9 179 180 sethi #gottlsoffhi(i+1+4096), gr8 181 setlo #gottlsofflo(i+1+4096), gr8 182 ld #tlsoff(i+1+4096)@(gr15, gr8), gr9 183 .endif 184