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