1 .section ".tdata", "awT", @progbits
2 .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
3 .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
4 .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
39 addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
43 leal sg1@tlsgd(%ebx), %eax
44 call *___tls_get_addr@GOT(%ebx)
47 /* GD -> IE because variable is referenced through @gottpoff too */
48 leal sg2@tlsgd(%ecx), %eax
49 call *___tls_get_addr@GOT(%ecx)
52 /* GD -> IE because variable is referenced through @gotntpoff too */
53 leal sg3@tlsgd(%edx), %eax
54 call *___tls_get_addr@GOT(%edx)
57 /* GD -> IE because variable is referenced through @gottpoff and
59 leal sg4@tlsgd(%edi), %eax
60 call *___tls_get_addr@GOT(%edi)
63 /* GD against local variable */
64 leal sl1@tlsgd(%esi), %eax
65 call *___tls_get_addr@GOT(%esi)
68 /* GD -> IE against local variable referenced through @gottpoff too */
69 leal sl2@tlsgd(%ebp), %eax
70 call *___tls_get_addr@GOT(%ebp)
73 /* GD -> IE against local variable referenced through @gotntpoff
75 leal sl3@tlsgd(%ebx), %eax
76 call *___tls_get_addr@GOT(%ebx)
79 /* GD -> IE against local variable referenced through @gottpoff and
81 leal sl4@tlsgd(%ebx), %eax
82 call *___tls_get_addr@GOT(%ebx)
85 /* GD against hidden and local variable */
86 leal sh1@tlsgd(%ebx), %eax
87 call *___tls_get_addr@GOT(%ebx)
90 /* GD -> IE against hidden and local variable referenced through
92 leal sh2@tlsgd(%ebx), %eax
93 call *___tls_get_addr@GOT(%ebx)
96 /* GD -> IE against hidden and local variable referenced through
98 leal sh3@tlsgd(%ebx), %eax
99 call *___tls_get_addr@GOT(%ebx)
102 /* GD -> IE against hidden and local variable referenced through
103 @gottpoff and @gotntpoff too */
104 leal sh4@tlsgd(%ebx), %eax
105 call *___tls_get_addr@GOT(%ebx)
108 /* GD against hidden but not local variable */
109 leal sH1@tlsgd(%ebx), %eax
110 call *___tls_get_addr@GOT(%ebx)
113 /* GD -> IE against hidden but not local variable referenced through
115 leal sH2@tlsgd(%ebx), %eax
116 call *___tls_get_addr@GOT(%ebx)
119 /* GD -> IE against hidden but not local variable referenced through
121 leal sH3@tlsgd(%ebx), %eax
122 call *___tls_get_addr@GOT(%ebx)
125 /* GD -> IE against hidden but not local variable referenced through
126 @gottpoff and @gotntpoff too */
127 leal sH4@tlsgd(%ebx), %eax
128 call *___tls_get_addr@GOT(%ebx)
132 leal sl1@tlsldm(%ebx), %eax
133 call *___tls_get_addr@GOT(%ebx)
135 leal sl1@dtpoff(%eax), %edx
137 leal 2+sl2@dtpoff(%eax), %ecx
140 /* LD against hidden and local variables */
141 leal sh1@tlsldm(%ecx), %eax
142 call *___tls_get_addr@GOT(%ecx)
144 leal sh1@dtpoff(%eax), %edx
146 leal sh2@dtpoff+3(%eax), %ecx
149 /* LD against hidden but not local variables */
150 leal sH1@tlsldm(%edx), %eax
151 call *___tls_get_addr@GOT(%edx)
153 leal sH1@dtpoff(%eax), %edx
155 leal sH2@dtpoff+1(%eax), %ecx
158 /* @gottpoff IE against global var */
161 subl sg2@gottpoff(%ebx), %ecx
164 /* @gottpoff IE against global var */
167 subl sg4@gottpoff(%ebx), %eax
170 /* @gotntpoff IE against global var */
173 addl sg3@gotntpoff(%ebx), %ecx
176 /* @gotntpoff IE against global var */
179 addl sg4@gotntpoff(%ebx), %eax
182 /* @gottpoff IE against local var */
185 subl sl2@gottpoff(%ebx), %ecx
188 /* @gottpoff IE against local var */
191 subl sl4@gottpoff(%ebx), %eax
194 /* @gotntpoff IE against local var */
197 addl sl3@gotntpoff(%ebx), %ecx
200 /* @gotntpoff IE against local var */
203 addl sl4@gotntpoff(%ebx), %eax
206 /* @gottpoff IE against hidden and local var */
209 subl sh2@gottpoff(%ebx), %ecx
212 /* @gottpoff IE against hidden and local var */
215 subl sh4@gottpoff(%ebx), %eax
218 /* @gotntpoff IE against hidden and local var */
221 addl sh3@gotntpoff(%ebx), %ecx
224 /* @gotntpoff IE against hidden and local var */
227 addl sh4@gotntpoff(%ebx), %eax
230 /* @gottpoff IE against hidden but not local var */
233 subl sH2@gottpoff(%ebx), %ecx
236 /* @gottpoff IE against hidden but not local var */
239 subl sH4@gottpoff(%ebx), %eax
242 /* @gotntpoff IE against hidden but not local var */
245 addl sH3@gotntpoff(%ebx), %ecx
248 /* @gotntpoff IE against hidden but not local var */
251 addl sH4@gotntpoff(%ebx), %eax
254 /* Direct access through %gs */
256 /* @gotntpoff IE against global var */
257 movl sg5@gotntpoff(%ebx), %ecx
259 movl %gs:(%ecx), %edx
262 /* @gotntpoff IE against local var */
263 movl sl5@gotntpoff(%ebx), %eax
265 movl %gs:(%eax), %edx
268 /* @gotntpoff IE against hidden and local var */
269 movl sh5@gotntpoff(%ebx), %edx
271 movl %gs:(%edx), %edx
274 /* @gotntpoff IE against hidden but not local var */
275 movl sH5@gotntpoff(%ebx), %ecx
277 movl %gs:(%ecx), %edx