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@tlsdesc
(%ebx
), %eax
44 call
*sg1@tlscall
(%eax
)
47 /* GD -> IE because variable is referenced through @gottpoff too */
48 leal sg2@tlsdesc
(%ebx
), %eax
49 call
*sg2@tlscall
(%eax
)
52 /* GD -> IE because variable is referenced through @gotntpoff too */
53 leal sg3@tlsdesc
(%ebx
), %eax
54 call
*sg3@tlscall
(%eax
)
57 /* GD -> IE because variable is referenced through @gottpoff and
59 leal sg4@tlsdesc
(%ebx
), %eax
60 call
*sg4@tlscall
(%eax
)
63 /* GD against local variable */
64 leal sl1@tlsdesc
(%ebx
), %eax
65 call
*sl1@tlscall
(%eax
)
68 /* GD -> IE against local variable referenced through @gottpoff too */
69 leal sl2@tlsdesc
(%ebx
), %eax
70 call
*sl2@tlscall
(%eax
)
73 /* GD -> IE against local variable referenced through @gotntpoff
75 leal sl3@tlsdesc
(%ebx
), %eax
76 call
*sl3@tlscall
(%eax
)
79 /* GD -> IE against local variable referenced through @gottpoff and
81 leal sl4@tlsdesc
(%ebx
), %eax
82 call
*sl4@tlscall
(%eax
)
85 /* GD against hidden and local variable */
86 leal sh1@tlsdesc
(%ebx
), %eax
87 call
*sh1@tlscall
(%eax
)
90 /* GD -> IE against hidden and local variable referenced through
92 leal sh2@tlsdesc
(%ebx
), %eax
93 call
*sh2@tlscall
(%eax
)
96 /* GD -> IE against hidden and local variable referenced through
98 leal sh3@tlsdesc
(%ebx
), %eax
99 call
*sh3@tlscall
(%eax
)
102 /* GD -> IE against hidden and local variable referenced through
103 @gottpoff and @gotntpoff too */
104 leal sh4@tlsdesc
(%ebx
), %eax
105 call
*sh4@tlscall
(%eax
)
108 /* GD against hidden but not local variable */
109 leal sH1@tlsdesc
(%ebx
), %eax
110 call
*sH1@tlscall
(%eax
)
113 /* GD -> IE against hidden but not local variable referenced through
115 leal sH2@tlsdesc
(%ebx
), %eax
116 call
*sH2@tlscall
(%eax
)
119 /* GD -> IE against hidden but not local variable referenced through
121 leal sH3@tlsdesc
(%ebx
), %eax
122 call
*sH3@tlscall
(%eax
)
125 /* GD -> IE against hidden but not local variable referenced through
126 @gottpoff and @gotntpoff too */
127 leal sH4@tlsdesc
(%ebx
), %eax
128 call
*sH4@tlscall
(%eax
)
132 leal _TLS_MODULE_BASE_@tlsdesc
(%ebx
), %eax
133 call
*_TLS_MODULE_BASE_@tlscall
(%eax
)
135 leal sl1@dtpoff
(%eax
), %edx
137 leal
2+sl2@dtpoff
(%eax
), %ecx
140 /* LD against hidden and local variables */
141 leal sh1@dtpoff
(%eax
), %edx
143 leal sh2@dtpoff+
3(%eax
), %ecx
146 /* LD against hidden but not local variables */
147 leal sH1@dtpoff
(%eax
), %edx
149 leal sH2@dtpoff+
1(%eax
), %ecx
152 /* @gottpoff IE against global var */
155 subl sg2@gottpoff
(%ebx
), %ecx
158 /* @gottpoff IE against global var */
161 subl sg4@gottpoff
(%ebx
), %eax
164 /* @gotntpoff IE against global var */
167 addl sg3@gotntpoff
(%ebx
), %ecx
170 /* @gotntpoff IE against global var */
173 addl sg4@gotntpoff
(%ebx
), %eax
176 /* @gottpoff IE against local var */
179 subl sl2@gottpoff
(%ebx
), %ecx
182 /* @gottpoff IE against local var */
185 subl sl4@gottpoff
(%ebx
), %eax
188 /* @gotntpoff IE against local var */
191 addl sl3@gotntpoff
(%ebx
), %ecx
194 /* @gotntpoff IE against local var */
197 addl sl4@gotntpoff
(%ebx
), %eax
200 /* @gottpoff IE against hidden and local var */
203 subl sh2@gottpoff
(%ebx
), %ecx
206 /* @gottpoff IE against hidden and local var */
209 subl sh4@gottpoff
(%ebx
), %eax
212 /* @gotntpoff IE against hidden and local var */
215 addl sh3@gotntpoff
(%ebx
), %ecx
218 /* @gotntpoff IE against hidden and local var */
221 addl sh4@gotntpoff
(%ebx
), %eax
224 /* @gottpoff IE against hidden but not local var */
227 subl sH2@gottpoff
(%ebx
), %ecx
230 /* @gottpoff IE against hidden but not local var */
233 subl sH4@gottpoff
(%ebx
), %eax
236 /* @gotntpoff IE against hidden but not local var */
239 addl sH3@gotntpoff
(%ebx
), %ecx
242 /* @gotntpoff IE against hidden but not local var */
245 addl sH4@gotntpoff
(%ebx
), %eax
248 /* Direct access through %gs */
250 /* @gotntpoff IE against global var */
251 movl sg5@gotntpoff
(%ebx
), %ecx
253 movl
%gs
:(%ecx
), %edx
256 /* @gotntpoff IE against local var */
257 movl sl5@gotntpoff
(%ebx
), %eax
259 movl
%gs
:(%eax
), %edx
262 /* @gotntpoff IE against hidden and local var */
263 movl sh5@gotntpoff
(%ebx
), %edx
265 movl
%gs
:(%edx
), %edx
268 /* @gotntpoff IE against hidden but not local var */
269 movl sH5@gotntpoff
(%ebx
), %ecx
271 movl
%gs
:(%ecx
), %edx