~ubuntu-branches/ubuntu/utopic/binutils-arm64-cross/utopic

« back to all changes in this revision

Viewing changes to binutils-2.23.52.20130611/ld/testsuite/ld-i386/tlsdesc.s

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-06-20 17:38:09 UTC
  • Revision ID: package-import@ubuntu.com-20130620173809-app8lzgvymy5fg6c
Tags: 0.7
Build-depend on binutils-source (>= 2.23.52.20130620-1~).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
5
sg1:    .long 17
 
6
sg2:    .long 18
 
7
sg3:    .long 19
 
8
sg4:    .long 20
 
9
sg5:    .long 21
 
10
sg6:    .long 22
 
11
sg7:    .long 23
 
12
sg8:    .long 24
 
13
sl1:    .long 65
 
14
sl2:    .long 66
 
15
sl3:    .long 67
 
16
sl4:    .long 68
 
17
sl5:    .long 69
 
18
sl6:    .long 70
 
19
sl7:    .long 71
 
20
sl8:    .long 72
 
21
sh1:    .long 257
 
22
sh2:    .long 258
 
23
sh3:    .long 259
 
24
sh4:    .long 260
 
25
sh5:    .long 261
 
26
sh6:    .long 262
 
27
sh7:    .long 263
 
28
sh8:    .long 264
 
29
        .text
 
30
        .globl  fn1
 
31
        .type   fn1,@function
 
32
fn1:
 
33
        pushl   %ebp
 
34
        movl    %esp, %ebp
 
35
        pushl   %ebx
 
36
        pushl   %eax
 
37
        call    1f
 
38
1:      popl    %ebx
 
39
        addl    $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
 
40
        nop;nop;nop;nop
 
41
 
 
42
        /* GD */
 
43
        leal    sg1@tlsdesc(%ebx), %eax
 
44
        call    *sg1@tlscall(%eax)
 
45
        nop;nop;nop;nop
 
46
 
 
47
        /* GD -> IE because variable is referenced through @gottpoff too */
 
48
        leal    sg2@tlsdesc(%ebx), %eax
 
49
        call    *sg2@tlscall(%eax)
 
50
        nop;nop;nop;nop
 
51
 
 
52
        /* GD -> IE because variable is referenced through @gotntpoff too */
 
53
        leal    sg3@tlsdesc(%ebx), %eax
 
54
        call    *sg3@tlscall(%eax)
 
55
        nop;nop;nop;nop
 
56
 
 
57
        /* GD -> IE because variable is referenced through @gottpoff and
 
58
           @gotntpoff too */
 
59
        leal    sg4@tlsdesc(%ebx), %eax
 
60
        call    *sg4@tlscall(%eax)
 
61
        nop;nop;nop;nop
 
62
 
 
63
        /* GD against local variable */
 
64
        leal    sl1@tlsdesc(%ebx), %eax
 
65
        call    *sl1@tlscall(%eax)
 
66
        nop;nop;nop;nop
 
67
 
 
68
        /* GD -> IE against local variable referenced through @gottpoff too */
 
69
        leal    sl2@tlsdesc(%ebx), %eax
 
70
        call    *sl2@tlscall(%eax)
 
71
        nop;nop;nop;nop
 
72
 
 
73
        /* GD -> IE against local variable referenced through @gotntpoff
 
74
           too */
 
75
        leal    sl3@tlsdesc(%ebx), %eax
 
76
        call    *sl3@tlscall(%eax)
 
77
        nop;nop;nop;nop
 
78
 
 
79
        /* GD -> IE against local variable referenced through @gottpoff and
 
80
           @gotntpoff too */
 
81
        leal    sl4@tlsdesc(%ebx), %eax
 
82
        call    *sl4@tlscall(%eax)
 
83
        nop;nop;nop;nop
 
84
 
 
85
        /* GD against hidden and local variable */
 
86
        leal    sh1@tlsdesc(%ebx), %eax
 
87
        call    *sh1@tlscall(%eax)
 
88
        nop;nop;nop;nop
 
89
 
 
90
        /* GD -> IE against hidden and local variable referenced through
 
91
           @gottpoff too */
 
92
        leal    sh2@tlsdesc(%ebx), %eax
 
93
        call    *sh2@tlscall(%eax)
 
94
        nop;nop;nop;nop
 
95
 
 
96
        /* GD -> IE against hidden and local variable referenced through
 
97
           @gotntpoff too */
 
98
        leal    sh3@tlsdesc(%ebx), %eax
 
99
        call    *sh3@tlscall(%eax)
 
100
        nop;nop;nop;nop
 
101
 
 
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)
 
106
        nop;nop;nop;nop
 
107
 
 
108
        /* GD against hidden but not local variable */
 
109
        leal    sH1@tlsdesc(%ebx), %eax
 
110
        call    *sH1@tlscall(%eax)
 
111
        nop;nop;nop;nop
 
112
 
 
113
        /* GD -> IE against hidden but not local variable referenced through
 
114
           @gottpoff too */
 
115
        leal    sH2@tlsdesc(%ebx), %eax
 
116
        call    *sH2@tlscall(%eax)
 
117
        nop;nop;nop;nop
 
118
 
 
119
        /* GD -> IE against hidden but not local variable referenced through
 
120
           @gotntpoff too */
 
121
        leal    sH3@tlsdesc(%ebx), %eax
 
122
        call    *sH3@tlscall(%eax)
 
123
        nop;nop;nop;nop
 
124
 
 
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)
 
129
        nop;nop;nop;nop
 
130
 
 
131
        /* LD */
 
132
        leal    _TLS_MODULE_BASE_@tlsdesc(%ebx), %eax
 
133
        call    *_TLS_MODULE_BASE_@tlscall(%eax)
 
134
        nop;nop
 
135
        leal    sl1@dtpoff(%eax), %edx
 
136
        nop;nop
 
137
        leal    2+sl2@dtpoff(%eax), %ecx
 
138
        nop;nop;nop;nop
 
139
 
 
140
        /* LD against hidden and local variables */
 
141
        leal    sh1@dtpoff(%eax), %edx
 
142
        nop;nop
 
143
        leal    sh2@dtpoff+3(%eax), %ecx
 
144
        nop;nop;nop;nop
 
145
 
 
146
        /* LD against hidden but not local variables */
 
147
        leal    sH1@dtpoff(%eax), %edx
 
148
        nop;nop
 
149
        leal    sH2@dtpoff+1(%eax), %ecx
 
150
        nop;nop
 
151
 
 
152
        /* @gottpoff IE against global var  */
 
153
        movl    %gs:0, %ecx
 
154
        nop;nop
 
155
        subl    sg2@gottpoff(%ebx), %ecx
 
156
        nop;nop;nop;nop
 
157
 
 
158
        /* @gottpoff IE against global var  */
 
159
        movl    %gs:0, %eax
 
160
        nop;nop
 
161
        subl    sg4@gottpoff(%ebx), %eax
 
162
        nop;nop;nop;nop
 
163
 
 
164
        /* @gotntpoff IE against global var  */
 
165
        movl    %gs:0, %ecx
 
166
        nop;nop
 
167
        addl    sg3@gotntpoff(%ebx), %ecx
 
168
        nop;nop;nop;nop
 
169
 
 
170
        /* @gotntpoff IE against global var  */
 
171
        movl    %gs:0, %eax
 
172
        nop;nop
 
173
        addl    sg4@gotntpoff(%ebx), %eax
 
174
        nop;nop;nop;nop
 
175
 
 
176
        /* @gottpoff IE against local var  */
 
177
        movl    %gs:0, %ecx
 
178
        nop;nop
 
179
        subl    sl2@gottpoff(%ebx), %ecx
 
180
        nop;nop;nop;nop
 
181
 
 
182
        /* @gottpoff IE against local var  */
 
183
        movl    %gs:0, %eax
 
184
        nop;nop
 
185
        subl    sl4@gottpoff(%ebx), %eax
 
186
        nop;nop;nop;nop
 
187
 
 
188
        /* @gotntpoff IE against local var  */
 
189
        movl    %gs:0, %ecx
 
190
        nop;nop
 
191
        addl    sl3@gotntpoff(%ebx), %ecx
 
192
        nop;nop;nop;nop
 
193
 
 
194
        /* @gotntpoff IE against local var  */
 
195
        movl    %gs:0, %eax
 
196
        nop;nop
 
197
        addl    sl4@gotntpoff(%ebx), %eax
 
198
        nop;nop;nop;nop
 
199
 
 
200
        /* @gottpoff IE against hidden and local var  */
 
201
        movl    %gs:0, %ecx
 
202
        nop;nop
 
203
        subl    sh2@gottpoff(%ebx), %ecx
 
204
        nop;nop;nop;nop
 
205
 
 
206
        /* @gottpoff IE against hidden and local var  */
 
207
        movl    %gs:0, %eax
 
208
        nop;nop
 
209
        subl    sh4@gottpoff(%ebx), %eax
 
210
        nop;nop;nop;nop
 
211
 
 
212
        /* @gotntpoff IE against hidden and local var  */
 
213
        movl    %gs:0, %ecx
 
214
        nop;nop
 
215
        addl    sh3@gotntpoff(%ebx), %ecx
 
216
        nop;nop;nop;nop
 
217
 
 
218
        /* @gotntpoff IE against hidden and local var  */
 
219
        movl    %gs:0, %eax
 
220
        nop;nop
 
221
        addl    sh4@gotntpoff(%ebx), %eax
 
222
        nop;nop;nop;nop
 
223
 
 
224
        /* @gottpoff IE against hidden but not local var  */
 
225
        movl    %gs:0, %ecx
 
226
        nop;nop
 
227
        subl    sH2@gottpoff(%ebx), %ecx
 
228
        nop;nop;nop;nop
 
229
 
 
230
        /* @gottpoff IE against hidden but not local var  */
 
231
        movl    %gs:0, %eax
 
232
        nop;nop
 
233
        subl    sH4@gottpoff(%ebx), %eax
 
234
        nop;nop;nop;nop
 
235
 
 
236
        /* @gotntpoff IE against hidden but not local var  */
 
237
        movl    %gs:0, %ecx
 
238
        nop;nop
 
239
        addl    sH3@gotntpoff(%ebx), %ecx
 
240
        nop;nop;nop;nop
 
241
 
 
242
        /* @gotntpoff IE against hidden but not local var  */
 
243
        movl    %gs:0, %eax
 
244
        nop;nop
 
245
        addl    sH4@gotntpoff(%ebx), %eax
 
246
        nop;nop;nop;nop
 
247
 
 
248
        /* Direct access through %gs  */
 
249
 
 
250
        /* @gotntpoff IE against global var  */
 
251
        movl    sg5@gotntpoff(%ebx), %ecx
 
252
        nop;nop
 
253
        movl    %gs:(%ecx), %edx
 
254
        nop;nop;nop;nop
 
255
 
 
256
        /* @gotntpoff IE against local var  */
 
257
        movl    sl5@gotntpoff(%ebx), %eax
 
258
        nop;nop
 
259
        movl    %gs:(%eax), %edx
 
260
        nop;nop;nop;nop
 
261
 
 
262
        /* @gotntpoff IE against hidden and local var  */
 
263
        movl    sh5@gotntpoff(%ebx), %edx
 
264
        nop;nop
 
265
        movl    %gs:(%edx), %edx
 
266
        nop;nop;nop;nop
 
267
 
 
268
        /* @gotntpoff IE against hidden but not local var  */
 
269
        movl    sH5@gotntpoff(%ebx), %ecx
 
270
        nop;nop
 
271
        movl    %gs:(%ecx), %edx
 
272
        nop;nop;nop;nop
 
273
 
 
274
        movl    -4(%ebp), %ebx
 
275
        leave
 
276
        ret