daily update
[binutils.git] / ld / testsuite / ld-i386 / tlsbin.dd
blob83c34092273eef6592974d8d853a607dea1e5f23
1 #source: tlsbinpic.s
2 #source: tlsbin.s
3 #as: --32
4 #ld: -melf_i386 tmpdir/libtlslib.so
5 #objdump: -drj.text
6 #target: i?86-*-*
8 # PT_TLS layout is:
9 # Offset from   Offset from     Name
10 # TCB base      TCB end
11 # 0x00          -0xa0           sg1..sg8
12 # 0x20          -0x80           sl1..sl8
13 # 0x40          -0x60           sh1..sh8
14 # 0x60          -0x40           bg1..bg8
15 # 0x80          -0x20           bl1..bl8
17 .*: +file format elf32-i386
19 Disassembly of section .text:
21 0+8049000 <fn2>:
22  8049000:       55[     ]+push   %ebp
23  8049001:       89 e5[  ]+mov    %esp,%ebp
24  8049003:       53[     ]+push   %ebx
25  8049004:       50[     ]+push   %eax
26  8049005:       e8 00 00 00 00[         ]+call   804900a <fn2\+0xa>
27  804900a:       5b[     ]+pop    %ebx
28  804900b:       81 c3 f6 10 00 00[      ]+add    \$0x10f6,%ebx
29  8049011:       90[     ]+nop *
30  8049012:       90[     ]+nop *
31  8049013:       90[     ]+nop *
32  8049014:       90[     ]+nop *
33 #  GD -> IE because variable is not defined in executable
34  8049015:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
35  804901b:       2b 83 2c 00 00 00[      ]+sub    0x2c\(%ebx\),%eax
36 #                               ->R_386_TLS_TPOFF32     sG1
37  8049021:       90[     ]+nop *
38  8049022:       90[     ]+nop *
39  8049023:       90[     ]+nop *
40  8049024:       90[     ]+nop *
41 #  GD -> IE because variable is not defined in executable where
42 #  the variable is referenced through @gottpoff too
43  8049025:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
44  804902b:       2b 83 1c 00 00 00[      ]+sub    0x1c\(%ebx\),%eax
45 #                               ->R_386_TLS_TPOFF32     sG2
46  8049031:       90[     ]+nop *
47  8049032:       90[     ]+nop *
48  8049033:       90[     ]+nop *
49  8049034:       90[     ]+nop *
50 #  GD -> IE because variable is not defined in executable where
51 #  the variable is referenced through @gotntpoff too
52  8049035:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
53  804903b:       2b 83 10 00 00 00[      ]+sub    0x10\(%ebx\),%eax
54 #                               ->R_386_TLS_TPOFF       sG3
55  8049041:       90[     ]+nop *
56  8049042:       90[     ]+nop *
57  8049043:       90[     ]+nop *
58  8049044:       90[     ]+nop *
59 #  GD -> IE because variable is not defined in executable where
60 #  the variable is referenced through @gottpoff and @gotntpoff too
61  8049045:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
62  804904b:       2b 83 20 00 00 00[      ]+sub    0x20\(%ebx\),%eax
63 #                               ->R_386_TLS_TPOFF32     sG4
64  8049051:       90[     ]+nop *
65  8049052:       90[     ]+nop *
66  8049053:       90[     ]+nop *
67  8049054:       90[     ]+nop *
68 #  GD -> LE with global variable defined in executable
69  8049055:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
70  804905b:       81 e8 a0 00 00 00[      ]+sub    \$0xa0,%eax
71 #                                                       sg1
72  8049061:       90[     ]+nop *
73  8049062:       90[     ]+nop *
74  8049063:       90[     ]+nop *
75  8049064:       90[     ]+nop *
76 #  GD -> LE with local variable defined in executable
77  8049065:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
78  804906b:       81 e8 80 00 00 00[      ]+sub    \$0x80,%eax
79 #                                                       sl1
80  8049071:       90[     ]+nop *
81  8049072:       90[     ]+nop *
82  8049073:       90[     ]+nop *
83  8049074:       90[     ]+nop *
84 #  GD -> LE with hidden variable defined in executable
85  8049075:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
86  804907b:       81 e8 60 00 00 00[      ]+sub    \$0x60,%eax
87 #                                                       sh1
88  8049081:       90[     ]+nop *
89  8049082:       90[     ]+nop *
90  8049083:       90[     ]+nop *
91  8049084:       90[     ]+nop *
92 #  LD -> LE
93  8049085:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
94  804908b:       90[     ]+nop *
95  804908c:       8d 74 26 00[    ]+lea    0x0\(%esi,1\),%esi
96  8049090:       90[     ]+nop *
97  8049091:       90[     ]+nop *
98  8049092:       8d 90 80 ff ff ff[      ]+lea    0xffffff80\(%eax\),%edx
99 #                                                       sl1
100  8049098:       90[     ]+nop *
101  8049099:       90[     ]+nop *
102  804909a:       8d 88 84 ff ff ff[      ]+lea    0xffffff84\(%eax\),%ecx
103 #                                                       sl2
104  80490a0:       90[     ]+nop *
105  80490a1:       90[     ]+nop *
106  80490a2:       90[     ]+nop *
107  80490a3:       90[     ]+nop *
108 #  LD -> LE against hidden variables
109  80490a4:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
110  80490aa:       90[     ]+nop *
111  80490ab:       8d 74 26 00[    ]+lea    0x0\(%esi,1\),%esi
112  80490af:       90[     ]+nop *
113  80490b0:       90[     ]+nop *
114  80490b1:       8d 90 a0 ff ff ff[      ]+lea    0xffffffa0\(%eax\),%edx
115 #                                                       sh1
116  80490b7:       90[     ]+nop *
117  80490b8:       90[     ]+nop *
118  80490b9:       8d 88 a4 ff ff ff[      ]+lea    0xffffffa4\(%eax\),%ecx
119 #                                                       sh2
120  80490bf:       90[     ]+nop *
121  80490c0:       90[     ]+nop *
122  80490c1:       90[     ]+nop *
123  80490c2:       90[     ]+nop *
124 #  @gottpoff IE against global var
125  80490c3:       65 8b 0d 00 00 00 00    mov    %gs:0x0,%ecx
126  80490ca:       90[     ]+nop *
127  80490cb:       90[     ]+nop *
128  80490cc:       2b 8b 1c 00 00 00[      ]+sub    0x1c\(%ebx\),%ecx
129 #                               ->R_386_TLS_TPOFF32     sG2
130  80490d2:       90[     ]+nop *
131  80490d3:       90[     ]+nop *
132  80490d4:       90[     ]+nop *
133  80490d5:       90[     ]+nop *
134 #  @gottpoff IE against global var
135  80490d6:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
136  80490dc:       90[     ]+nop *
137  80490dd:       90[     ]+nop *
138  80490de:       2b 83 20 00 00 00[      ]+sub    0x20\(%ebx\),%eax
139 #                               ->R_386_TLS_TPOFF32     sG4
140  80490e4:       90[     ]+nop *
141  80490e5:       90[     ]+nop *
142  80490e6:       90[     ]+nop *
143  80490e7:       90[     ]+nop *
144 #  @gotntpoff IE against global var
145  80490e8:       65 8b 0d 00 00 00 00    mov    %gs:0x0,%ecx
146  80490ef:       90[     ]+nop *
147  80490f0:       90[     ]+nop *
148  80490f1:       03 8b 10 00 00 00[      ]+add    0x10\(%ebx\),%ecx
149 #                               ->R_386_TLS_TPOFF       sG3
150  80490f7:       90[     ]+nop *
151  80490f8:       90[     ]+nop *
152  80490f9:       90[     ]+nop *
153  80490fa:       90[     ]+nop *
154 #  @gotntpoff IE against global var
155  80490fb:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
156  8049101:       90[     ]+nop *
157  8049102:       90[     ]+nop *
158  8049103:       03 83 24 00 00 00[      ]+add    0x24\(%ebx\),%eax
159 #                               ->R_386_TLS_TPOFF       sG4
160  8049109:       90[     ]+nop *
161  804910a:       90[     ]+nop *
162  804910b:       90[     ]+nop *
163  804910c:       90[     ]+nop *
164 #  @gottpoff IE -> LE against global var defined in exec
165  804910d:       65 8b 0d 00 00 00 00    mov    %gs:0x0,%ecx
166  8049114:       90[     ]+nop *
167  8049115:       90[     ]+nop *
168  8049116:       81 e9 a0 00 00 00[      ]+sub    \$0xa0,%ecx
169 #                                                       sg1
170  804911c:       90[     ]+nop *
171  804911d:       90[     ]+nop *
172  804911e:       90[     ]+nop *
173  804911f:       90[     ]+nop *
174 #  @gotntpoff IE -> LE against local var
175  8049120:       65 8b 0d 00 00 00 00    mov    %gs:0x0,%ecx
176  8049127:       90[     ]+nop *
177  8049128:       90[     ]+nop *
178  8049129:       81 c0 80 ff ff ff[      ]+add    \$0xffffff80,%eax
179 #                                                       sl1
180  804912f:       90[     ]+nop *
181  8049130:       90[     ]+nop *
182  8049131:       90[     ]+nop *
183  8049132:       90[     ]+nop *
184 #  @gottpoff IE -> LE against hidden var
185  8049133:       65 8b 0d 00 00 00 00    mov    %gs:0x0,%ecx
186  804913a:       90[     ]+nop *
187  804913b:       90[     ]+nop *
188  804913c:       81 e9 60 00 00 00[      ]+sub    \$0x60,%ecx
189 #                                                       sh1
190  8049142:       90[     ]+nop *
191  8049143:       90[     ]+nop *
192  8049144:       90[     ]+nop *
193  8049145:       90[     ]+nop *
194 #  Direct access through %gs
195 #  @gotntpoff IE against global var
196  8049146:       8b 8b 14 00 00 00[      ]+mov    0x14\(%ebx\),%ecx
197 #                               ->R_386_TLS_TPOFF       sG5
198  804914c:       90[     ]+nop *
199  804914d:       90[     ]+nop *
200  804914e:       65 8b 11[       ]+mov    %gs:\(%ecx\),%edx
201  8049151:       90[     ]+nop *
202  8049152:       90[     ]+nop *
203  8049153:       90[     ]+nop *
204  8049154:       90[     ]+nop *
205 #  @gotntpoff IE->LE against local var
206  8049155:       c7 c0 90 ff ff ff[      ]+mov    \$0xffffff90,%eax
207 #                                                       sl5
208  804915b:       90[     ]+nop *
209  804915c:       90[     ]+nop *
210  804915d:       65 8b 10[       ]+mov    %gs:\(%eax\),%edx
211  8049160:       90[     ]+nop *
212  8049161:       90[     ]+nop *
213  8049162:       90[     ]+nop *
214  8049163:       90[     ]+nop *
215 #  @gotntpoff IE->LE against hidden var
216  8049164:       c7 c2 b0 ff ff ff[      ]+mov    \$0xffffffb0,%edx
217 #                                                       sh5
218  804916a:       90[     ]+nop *
219  804916b:       90[     ]+nop *
220  804916c:       65 8b 12[       ]+mov    %gs:\(%edx\),%edx
221  804916f:       90[     ]+nop *
222  8049170:       90[     ]+nop *
223  8049171:       90[     ]+nop *
224  8049172:       90[     ]+nop *
225  8049173:       8b 5d fc[       ]+mov    0xfffffffc\(%ebp\),%ebx
226  8049176:       c9[     ]+leave *
227  8049177:       c3[     ]+ret *
229 08049178 <_start>:
230  8049178:       55[     ]+push   %ebp
231  8049179:       89 e5[  ]+mov    %esp,%ebp
232  804917b:       e8 00 00 00 00[         ]+call   8049180 <_start\+0x8>
233  8049180:       59[     ]+pop    %ecx
234  8049181:       81 c1 80 0f 00 00[      ]+add    \$0xf80,%ecx
235  8049187:       90[     ]+nop *
236  8049188:       90[     ]+nop *
237  8049189:       90[     ]+nop *
238  804918a:       90[     ]+nop *
239 #  @gottpoff IE against global var
240  804918b:       65 8b 15 00 00 00 00    mov    %gs:0x0,%edx
241  8049192:       90[     ]+nop *
242  8049193:       90[     ]+nop *
243  8049194:       2b 91 28 00 00 00[      ]+sub    0x28\(%ecx\),%edx
244 #                               ->R_386_TLS_TPOFF32     sG6
245  804919a:       90[     ]+nop *
246  804919b:       90[     ]+nop *
247  804919c:       90[     ]+nop *
248  804919d:       90[     ]+nop *
249 #  @indntpoff IE against global var
250  804919e:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
251  80491a4:       90[     ]+nop *
252  80491a5:       90[     ]+nop *
253  80491a6:       03 05 18 a1 04 08[      ]+add    0x804a118,%eax
254 #                               ->R_386_TLS_TPOFF       sG7
255  80491ac:       90[     ]+nop *
256  80491ad:       90[     ]+nop *
257  80491ae:       90[     ]+nop *
258  80491af:       90[     ]+nop *
259 #  @indntpoff direct %gs access IE against global var
260  80491b0:       8b 15 30 a1 04 08[      ]+mov    0x804a130,%edx
261 #                               ->R_386_TLS_TPOFF       sG8
262  80491b6:       90[     ]+nop *
263  80491b7:       90[     ]+nop *
264  80491b8:       65 8b 02[       ]+mov    %gs:\(%edx\),%eax
265  80491bb:       90[     ]+nop *
266  80491bc:       90[     ]+nop *
267  80491bd:       90[     ]+nop *
268  80491be:       90[     ]+nop *
269 #  @gottpoff IE -> LE against global var defined in exec
270  80491bf:       65 8b 15 00 00 00 00    mov    %gs:0x0,%edx
271  80491c6:       90[     ]+nop *
272  80491c7:       90[     ]+nop *
273  80491c8:       81 ea 2c 00 00 00[      ]+sub    \$0x2c,%edx
274 #                                                       bg6
275  80491ce:       90[     ]+nop *
276  80491cf:       90[     ]+nop *
277  80491d0:       90[     ]+nop *
278  80491d1:       90[     ]+nop *
279 #  @indntpoff IE -> LE against global var defined in exec
280  80491d2:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
281  80491d8:       90[     ]+nop *
282  80491d9:       90[     ]+nop *
283  80491da:       81 c0 d8 ff ff ff[      ]+add    \$0xffffffd8,%eax
284 #                                                       bg7
285  80491e0:       90[     ]+nop *
286  80491e1:       90[     ]+nop *
287  80491e2:       90[     ]+nop *
288  80491e3:       90[     ]+nop *
289 #  @indntpoff direct %gs access IE -> LE against global var defined
290 #  in exec
291  80491e4:       c7 c2 dc ff ff ff[      ]+mov    \$0xffffffdc,%edx
292 #                                                       bg8
293  80491ea:       90[     ]+nop *
294  80491eb:       90[     ]+nop *
295  80491ec:       65 8b 02[       ]+mov    %gs:\(%edx\),%eax
296  80491ef:       90[     ]+nop *
297  80491f0:       90[     ]+nop *
298  80491f1:       90[     ]+nop *
299  80491f2:       90[     ]+nop *
300 #  @gottpoff IE -> LE against local var
301  80491f3:       65 8b 15 00 00 00 00    mov    %gs:0x0,%edx
302  80491fa:       90[     ]+nop *
303  80491fb:       90[     ]+nop *
304  80491fc:       81 ea 0c 00 00 00[      ]+sub    \$0xc,%edx
305 #                                                       bl6
306  8049202:       90[     ]+nop *
307  8049203:       90[     ]+nop *
308  8049204:       90[     ]+nop *
309  8049205:       90[     ]+nop *
310 #  @indntpoff IE -> LE against local var
311  8049206:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
312  804920c:       90[     ]+nop *
313  804920d:       90[     ]+nop *
314  804920e:       81 c0 f8 ff ff ff[      ]+add    \$0xfffffff8,%eax
315 #                                                       bl7
316  8049214:       90[     ]+nop *
317  8049215:       90[     ]+nop *
318  8049216:       90[     ]+nop *
319  8049217:       90[     ]+nop *
320 #  @indntpoff direct %gs access IE -> LE against local var
321  8049218:       c7 c2 fc ff ff ff[      ]+mov    \$0xfffffffc,%edx
322 #                                                       bl8
323  804921e:       90[     ]+nop *
324  804921f:       90[     ]+nop *
325  8049220:       65 8b 02[       ]+mov    %gs:\(%edx\),%eax
326  8049223:       90[     ]+nop *
327  8049224:       90[     ]+nop *
328  8049225:       90[     ]+nop *
329  8049226:       90[     ]+nop *
330 #  @gottpoff IE -> LE against hidden but not local var
331  8049227:       65 8b 15 00 00 00 00    mov    %gs:0x0,%edx
332  804922e:       90[     ]+nop *
333  804922f:       90[     ]+nop *
334  8049230:       81 ea 4c 00 00 00[      ]+sub    \$0x4c,%edx
335 #                                                       sh6
336  8049236:       90[     ]+nop *
337  8049237:       90[     ]+nop *
338  8049238:       90[     ]+nop *
339  8049239:       90[     ]+nop *
340 #  @indntpoff IE -> LE against hidden but not local var
341  804923a:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
342  8049240:       90[     ]+nop *
343  8049241:       90[     ]+nop *
344  8049242:       81 c0 b8 ff ff ff[      ]+add    \$0xffffffb8,%eax
345 #                                                       sh7
346  8049248:       90[     ]+nop *
347  8049249:       90[     ]+nop *
348  804924a:       90[     ]+nop *
349  804924b:       90[     ]+nop *
350 #  @indntpoff direct %gs access IE -> LE against hidden but not
351 #  local var
352  804924c:       c7 c2 bc ff ff ff[      ]+mov    \$0xffffffbc,%edx
353 #                                                       sh8
354  8049252:       90[     ]+nop *
355  8049253:       90[     ]+nop *
356  8049254:       65 8b 02[       ]+mov    %gs:\(%edx\),%eax
357  8049257:       90[     ]+nop *
358  8049258:       90[     ]+nop *
359  8049259:       90[     ]+nop *
360  804925a:       90[     ]+nop *
361 #  LE @tpoff, global var defined in exec
362  804925b:       ba a0 00 00 00[         ]+mov    \$0xa0,%edx
363 #                                                       sg1
364  8049260:       90[     ]+nop *
365  8049261:       90[     ]+nop *
366  8049262:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
367  8049268:       90[     ]+nop *
368  8049269:       90[     ]+nop *
369  804926a:       29 d0[  ]+sub    %edx,%eax
370  804926c:       90[     ]+nop *
371  804926d:       90[     ]+nop *
372  804926e:       90[     ]+nop *
373  804926f:       90[     ]+nop *
374 #  LE @tpoff, local var
375  8049270:       b8 1f 00 00 00[         ]+mov    \$0x1f,%eax
376 #                                                       bl1+1
377  8049275:       90[     ]+nop *
378  8049276:       90[     ]+nop *
379  8049277:       65 8b 15 00 00 00 00    mov    %gs:0x0,%edx
380  804927e:       90[     ]+nop *
381  804927f:       90[     ]+nop *
382  8049280:       29 c2[  ]+sub    %eax,%edx
383  8049282:       90[     ]+nop *
384  8049283:       90[     ]+nop *
385  8049284:       90[     ]+nop *
386  8049285:       90[     ]+nop *
387 #  LE @tpoff, hidden var defined in exec
388  8049286:       b8 5d 00 00 00[         ]+mov    \$0x5d,%eax
389 #                                                       sh1+3
390  804928b:       90[     ]+nop *
391  804928c:       90[     ]+nop *
392  804928d:       65 8b 15 00 00 00 00    mov    %gs:0x0,%edx
393  8049294:       90[     ]+nop *
394  8049295:       90[     ]+nop *
395  8049296:       29 c2[  ]+sub    %eax,%edx
396  8049298:       90[     ]+nop *
397  8049299:       90[     ]+nop *
398  804929a:       90[     ]+nop *
399  804929b:       90[     ]+nop *
400 #  LE @ntpoff, global var defined in exec
401  804929c:       65 a1 00 00 00 00[      ]+mov    %gs:0x0,%eax
402  80492a2:       90[     ]+nop *
403  80492a3:       90[     ]+nop *
404  80492a4:       8d 90 64 ff ff ff[      ]+lea    0xffffff64\(%eax\),%edx
405 #                                                       sg2
406  80492aa:       90[     ]+nop *
407  80492ab:       90[     ]+nop *
408  80492ac:       90[     ]+nop *
409  80492ad:       90[     ]+nop *
410 #  LE @ntpoff, local var, non-canonical sequence
411  80492ae:       b8 e6 ff ff ff[         ]+mov    \$0xffffffe6,%eax
412 #                                                       bl2+2
413  80492b3:       90[     ]+nop *
414  80492b4:       90[     ]+nop *
415  80492b5:       65 8b 15 00 00 00 00    mov    %gs:0x0,%edx
416  80492bc:       90[     ]+nop *
417  80492bd:       90[     ]+nop *
418  80492be:       01 c2[  ]+add    %eax,%edx
419  80492c0:       90[     ]+nop *
420  80492c1:       90[     ]+nop *
421  80492c2:       90[     ]+nop *
422  80492c3:       90[     ]+nop *
423 #  LE @ntpoff, hidden var defined in exec, non-canonical sequence
424  80492c4:       65 8b 15 00 00 00 00    mov    %gs:0x0,%edx
425  80492cb:       90[     ]+nop *
426  80492cc:       90[     ]+nop *
427  80492cd:       81 c2 a5 ff ff ff[      ]+add    \$0xffffffa5,%edx
428 #                                                       sh2+1
429  80492d3:       90[     ]+nop *
430  80492d4:       90[     ]+nop *
431  80492d5:       90[     ]+nop *
432  80492d6:       90[     ]+nop *
433 #  LE @ntpoff, global var defined in exec
434  80492d7:       65 a1 68 ff ff ff[      ]+mov    %gs:0xffffff68,%eax
435 #                                                       sg3
436  80492dd:       90[     ]+nop *
437  80492de:       90[     ]+nop *
438  80492df:       90[     ]+nop *
439  80492e0:       90[     ]+nop *
440 #  LE @ntpoff, local var
441  80492e1:       65 8b 15 eb ff ff ff    mov    %gs:0xffffffeb,%edx
442 #                                                       bl3+3
443  80492e8:       90[     ]+nop *
444  80492e9:       90[     ]+nop *
445  80492ea:       90[     ]+nop *
446  80492eb:       90[     ]+nop *
447 #  LE @ntpoff, hidden var defined in exec
448  80492ec:       65 8b 15 a9 ff ff ff    mov    %gs:0xffffffa9,%edx
449 #                                                       sh3+1
450  80492f3:       90[     ]+nop *
451  80492f4:       90[     ]+nop *
452  80492f5:       90[     ]+nop *
453  80492f6:       90[     ]+nop *
454  80492f7:       8b 5d fc[       ]+mov    0xfffffffc\(%ebp\),%ebx
455  80492fa:       c9[     ]+leave *
456  80492fb:       c3[     ]+ret *