2004-12-16 Andrew Stubbs <andrew.stubbs@st.com>
[binutils.git] / ld / testsuite / ld-x86-64 / tlsbin.dd
blob58bb5538700297ec3a33a0f6951d2b873c8690f2
1 #source: tlsbinpic.s
2 #source: tlsbin.s
3 #as: --64
4 #ld: -shared -melf_x86_64
5 #objdump: -drj.text
6 #target: x86_64-*-*
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 elf64-x86-64
19 Disassembly of section .text:
21 0+401000 <fn2>:
22   401000:       55[     ]+push   %rbp
23   401001:       48 89 e5[       ]+mov    %rsp,%rbp
24 #  GD -> IE because variable is not defined in executable
25   401004:       64 48 8b 04 25 00 00[   ]+mov    %fs:0x0,%rax
26   40100b:       00 00 *
27   40100d:       48 03 05 d4 03 10 00[   ]+add    1049556\(%rip\),%rax +# 5013e8 <.*>
28 #                               -> R_X86_64_TPOFF64     sG1
29   401014:       90[     ]+nop *
30   401015:       90[     ]+nop *
31   401016:       90[     ]+nop *
32   401017:       90[     ]+nop *
33 #  GD -> IE because variable is not defined in executable where
34 #  the variable is referenced through IE too
35   401018:       64 48 8b 04 25 00 00[   ]+mov    %fs:0x0,%rax
36   40101f:       00 00 *
37   401021:       48 03 05 b0 03 10 00[   ]+add    1049520\(%rip\),%rax +# 5013d8 <.*>
38 #                               -> R_X86_64_TPOFF64     sG2
39   401028:       90[     ]+nop *
40   401029:       90[     ]+nop *
41   40102a:       90[     ]+nop *
42   40102b:       90[     ]+nop *
43 #  GD -> LE with global variable defined in executable
44   40102c:       64 48 8b 04 25 00 00[   ]+mov    %fs:0x0,%rax
45   401033:       00 00 *
46   401035:       48 8d 80 60 ff ff ff[   ]+lea    0xf+60\(%rax\),%rax
47 #                                                       sg1
48   40103c:       90[     ]+nop *
49   40103d:       90[     ]+nop *
50   40103e:       90[     ]+nop *
51   40103f:       90[     ]+nop *
52 #  GD -> LE with local variable defined in executable
53   401040:       64 48 8b 04 25 00 00[   ]+mov    %fs:0x0,%rax
54   401047:       00 00 *
55   401049:       48 8d 80 80 ff ff ff[   ]+lea    0xf+80\(%rax\),%rax
56 #                                                       sl1
57   401050:       90[     ]+nop *
58   401051:       90[     ]+nop *
59   401052:       90[     ]+nop *
60   401053:       90[     ]+nop *
61 #  GD -> LE with hidden variable defined in executable
62   401054:       64 48 8b 04 25 00 00[   ]+mov    %fs:0x0,%rax
63   40105b:       00 00 *
64   40105d:       48 8d 80 a0 ff ff ff[   ]+lea    0xf+a0\(%rax\),%rax
65 #                                                       sh1
66   401064:       90[     ]+nop *
67   401065:       90[     ]+nop *
68   401066:       90[     ]+nop *
69   401067:       90[     ]+nop *
70 #  LD -> LE
71   401068:       66 66 66 64 48 8b 04[   ]+mov    %fs:0x0,%rax
72   40106f:       25 00 00 00 00 *
73   401074:       90[     ]+nop *
74   401075:       90[     ]+nop *
75   401076:       48 8d 90 81 ff ff ff[   ]+lea    0xf+81\(%rax\),%rdx
76 #                                                       sl1+1
77   40107d:       90[     ]+nop *
78   40107e:       90[     ]+nop *
79   40107f:       4c 8d 88 86 ff ff ff[   ]+lea    0xf+86\(%rax\),%r9
80 #                                                       sl2+2
81   401086:       90[     ]+nop *
82   401087:       90[     ]+nop *
83   401088:       90[     ]+nop *
84   401089:       90[     ]+nop *
85 #  LD -> LE against hidden variables
86   40108a:       66 66 66 64 48 8b 04[   ]+mov    %fs:0x0,%rax
87   401091:       25 00 00 00 00 *
88   401096:       90[     ]+nop *
89   401097:       90[     ]+nop *
90   401098:       48 8d 90 a0 ff ff ff[   ]+lea    0xf+a0\(%rax\),%rdx
91 #                                                       sh1
92   40109f:       90[     ]+nop *
93   4010a0:       90[     ]+nop *
94   4010a1:       48 8d 88 a7 ff ff ff[   ]+lea    0xf+a7\(%rax\),%rcx
95 #                                                       sh2+3
96   4010a8:       90[     ]+nop *
97   4010a9:       90[     ]+nop *
98   4010aa:       90[     ]+nop *
99   4010ab:       90[     ]+nop *
100 #  IE against global var
101   4010ac:       64 4c 8b 0c 25 00 00[   ]+mov    %fs:0x0,%r9
102   4010b3:       00 00 *
103   4010b5:       90[     ]+nop *
104   4010b6:       90[     ]+nop *
105   4010b7:       4c 03 0d 1a 03 10 00[   ]+add    1049370\(%rip\),%r9 +# 5013d8 <.*>
106 #                               -> R_X86_64_TPOFF64     sG2
107   4010be:       90[     ]+nop *
108   4010bf:       90[     ]+nop *
109   4010c0:       90[     ]+nop *
110   4010c1:       90[     ]+nop *
111 #  IE -> LE against global var defined in exec
112   4010c2:       64 4c 8b 14 25 00 00[   ]+mov    %fs:0x0,%r10
113   4010c9:       00 00 *
114   4010cb:       90[     ]+nop *
115   4010cc:       90[     ]+nop *
116   4010cd:       4d 8d 92 60 ff ff ff[   ]+lea    0xf+60\(%r10\),%r10
117 #                                                       sg1
118   4010d4:       90[     ]+nop *
119   4010d5:       90[     ]+nop *
120   4010d6:       90[     ]+nop *
121   4010d7:       90[     ]+nop *
122 #  IE -> LE against local var
123   4010d8:       64 48 8b 04 25 00 00[   ]+mov    %fs:0x0,%rax
124   4010df:       00 00 *
125   4010e1:       90[     ]+nop *
126   4010e2:       90[     ]+nop *
127   4010e3:       48 8d 80 80 ff ff ff[   ]+lea    0xf+80\(%rax\),%rax
128 #                                                       sl1
129   4010ea:       90[     ]+nop *
130   4010eb:       90[     ]+nop *
131   4010ec:       90[     ]+nop *
132   4010ed:       90[     ]+nop *
133 #  IE -> LE against hidden var
134   4010ee:       64 48 8b 0c 25 00 00[   ]+mov    %fs:0x0,%rcx
135   4010f5:       00 00 *
136   4010f7:       90[     ]+nop *
137   4010f8:       90[     ]+nop *
138   4010f9:       48 8d 89 a0 ff ff ff[   ]+lea    0xf+a0\(%rcx\),%rcx
139 #                                                       sh1
140   401100:       90[     ]+nop *
141   401101:       90[     ]+nop *
142   401102:       90[     ]+nop *
143   401103:       90[     ]+nop *
144 #  Direct access through %fs
145 #  IE against global var
146   401104:       48 8b 0d c5 02 10 00[   ]+mov    1049285\(%rip\),%rcx +# 5013d0 <.*>
147 #                               -> R_X86_64_TPOFF64     sG5
148   40110b:       90[     ]+nop *
149   40110c:       90[     ]+nop *
150   40110d:       64 48 8b 11[    ]+mov    %fs:\(%rcx\),%rdx
151   401111:       90[     ]+nop *
152   401112:       90[     ]+nop *
153   401113:       90[     ]+nop *
154   401114:       90[     ]+nop *
155 #  IE->LE against local var
156   401115:       49 c7 c3 90 ff ff ff[   ]+mov    \$0xf+90,%r11
157 #                                                       sl5
158   40111c:       90[     ]+nop *
159   40111d:       90[     ]+nop *
160   40111e:       64 4d 8b 23[    ]+mov    %fs:\(%r11\),%r12
161   401122:       90[     ]+nop *
162   401123:       90[     ]+nop *
163   401124:       90[     ]+nop *
164   401125:       90[     ]+nop *
165 #  IE->LE against hidden var
166   401126:       48 c7 c2 b0 ff ff ff[   ]+mov    \$0xf+b0,%rdx
167   40112d:       90[     ]+nop *
168   40112e:       90[     ]+nop *
169   40112f:       64 48 8b 12[    ]+mov    %fs:\(%rdx\),%rdx
170 #                                                       sh5
171   401133:       90[     ]+nop *
172   401134:       90[     ]+nop *
173   401135:       90[     ]+nop *
174   401136:       90[     ]+nop *
175   401137:       c9[     ]+leaveq *
176   401138:       c3[     ]+retq *
177   401139:       90[     ]+nop *
178   40113a:       90[     ]+nop *
179   40113b:       90[     ]+nop *
181 0+40113c <_start>:
182   40113c:       55[     ]+push   %rbp
183   40113d:       48 89 e5[       ]+mov    %rsp,%rbp
184 #  IE against global var
185   401140:       64 4c 8b 1c 25 00 00[   ]+mov    %fs:0x0,%r11
186   401147:       00 00 *
187   401149:       90[     ]+nop *
188   40114a:       90[     ]+nop *
189   40114b:       4c 03 1d 8e 02 10 00[   ]+add    1049230\(%rip\),%r11 +# 5013e0 <.*>
190 #                               -> R_X86_64_TPOFF64     sG6
191   401152:       90[     ]+nop *
192   401153:       90[     ]+nop *
193   401154:       90[     ]+nop *
194   401155:       90[     ]+nop *
195 #  IE -> LE against global var defined in exec
196   401156:       64 48 8b 14 25 00 00[   ]+mov    %fs:0x0,%rdx
197   40115d:       00 00 *
198   40115f:       90[     ]+nop *
199   401160:       90[     ]+nop *
200   401161:       48 8d 92 d4 ff ff ff[   ]+lea    0xf+d4\(%rdx\),%rdx
201 #                                                       bg6
202   401168:       90[     ]+nop *
203   401169:       90[     ]+nop *
204   40116a:       90[     ]+nop *
205   40116b:       90[     ]+nop *
206 #  IE -> LE against local var
207   40116c:       64 4c 8b 24 25 00 00[   ]+mov    %fs:0x0,%r12
208   401173:       00 00 *
209   401175:       90[     ]+nop *
210   401176:       90[     ]+nop *
211   401177:       49 81 c4 f4 ff ff ff[   ]+add    \$0xf+f4,%r12
212 #                                                       bl6
213   40117e:       90[     ]+nop *
214   40117f:       90[     ]+nop *
215   401180:       90[     ]+nop *
216   401181:       90[     ]+nop *
217 #  direct %fs access IE -> LE against local var
218   401182:       48 c7 c2 fc ff ff ff[   ]+mov    \$0xf+fc,%rdx
219 #                                                       bl8
220   401189:       90[     ]+nop *
221   40118a:       90[     ]+nop *
222   40118b:       64 48 8b 02[    ]+mov    %fs:\(%rdx\),%rax
223   40118f:       90[     ]+nop *
224   401190:       90[     ]+nop *
225   401191:       90[     ]+nop *
226   401192:       90[     ]+nop *
227 #  IE -> LE against hidden but not local var
228   401193:       64 48 8b 14 25 00 00[   ]+mov    %fs:0x0,%rdx
229   40119a:       00 00 *
230   40119c:       90[     ]+nop *
231   40119d:       90[     ]+nop *
232   40119e:       48 8d 92 b4 ff ff ff[   ]+lea    0xf+b4\(%rdx\),%rdx
233 #                                                       sh6
234   4011a5:       90[     ]+nop *
235   4011a6:       90[     ]+nop *
236   4011a7:       90[     ]+nop *
237   4011a8:       90[     ]+nop *
238 #  direct %fs access IE -> LE against hidden but not local var
239   4011a9:       48 c7 c2 bc ff ff ff[   ]+mov    \$0xf+bc,%rdx
240 #                                                       sh8
241   4011b0:       90[     ]+nop *
242   4011b1:       90[     ]+nop *
243   4011b2:       64 48 8b 02[    ]+mov    %fs:\(%rdx\),%rax
244   4011b6:       90[     ]+nop *
245   4011b7:       90[     ]+nop *
246   4011b8:       90[     ]+nop *
247   4011b9:       90[     ]+nop *
248 #  LE, global var defined in exec
249   4011ba:       64 48 8b 04 25 00 00[   ]+mov    %fs:0x0,%rax
250   4011c1:       00 00 *
251   4011c3:       90[     ]+nop *
252   4011c4:       90[     ]+nop *
253   4011c5:       48 8d 90 64 ff ff ff[   ]+lea    0xf+64\(%rax\),%rdx
254 #                                                       sg2
255   4011cc:       90[     ]+nop *
256   4011cd:       90[     ]+nop *
257   4011ce:       90[     ]+nop *
258   4011cf:       90[     ]+nop *
259 #  LE, local var, non-canonical sequence
260   4011d0:       49 c7 c1 e6 ff ff ff[   ]+mov    \$0xf+e6,%r9
261 #                                                       bl2+2
262   4011d7:       90[     ]+nop *
263   4011d8:       90[     ]+nop *
264   4011d9:       64 48 8b 14 25 00 00[   ]+mov    %fs:0x0,%rdx
265   4011e0:       00 00 *
266   4011e2:       90[     ]+nop *
267   4011e3:       90[     ]+nop *
268   4011e4:       4c 01 ca[       ]+add    %r9,%rdx
269   4011e7:       90[     ]+nop *
270   4011e8:       90[     ]+nop *
271   4011e9:       90[     ]+nop *
272   4011ea:       90[     ]+nop *
273 #  LE, hidden var defined in exec, non-canonical sequence
274   4011eb:       64 48 8b 14 25 00 00[   ]+mov    %fs:0x0,%rdx
275   4011f2:       00 00 *
276   4011f4:       90[     ]+nop *
277   4011f5:       90[     ]+nop *
278   4011f6:       48 81 c2 a5 ff ff ff[   ]+add    \$0xf+a5,%rdx
279 #                                                       sh2+1
280   4011fd:       90[     ]+nop *
281   4011fe:       90[     ]+nop *
282   4011ff:       90[     ]+nop *
283   401200:       90[     ]+nop *
284 #  Direct %fs access
285 #  LE, global var defined in exec
286   401201:       64 48 8b 04 25 68 ff[   ]+mov    %fs:0xf+68,%rax
287   401208:       ff ff *
288 #                                                       sg3
289   40120a:       90[     ]+nop *
290   40120b:       90[     ]+nop *
291   40120c:       90[     ]+nop *
292   40120d:       90[     ]+nop *
293 #  LE, local var
294   40120e:       64 4c 8b 14 25 eb ff[   ]+mov    %fs:0xf+eb,%r10
295   401215:       ff ff *
296 #                                                       bl3+3
297   401217:       90[     ]+nop *
298   401218:       90[     ]+nop *
299   401219:       90[     ]+nop *
300   40121a:       90[     ]+nop *
301 #  LE, hidden var defined in exec
302   40121b:       64 48 8b 14 25 a9 ff[   ]+mov    %fs:0xf+a9,%rdx
303   401222:       ff ff *
304 #                                                       sh3+1
305   401224:       90[     ]+nop *
306   401225:       90[     ]+nop *
307   401226:       90[     ]+nop *
308   401227:       90[     ]+nop *
309   401228:       c9[     ]+leaveq *
310   401229:       c3[     ]+retq *