]> Git Repo - binutils.git/blob - ld/testsuite/ld-x86-64/tlsbin.dd
Support arch-dependent fill
[binutils.git] / ld / testsuite / ld-x86-64 / tlsbin.dd
1 #source: tlsbinpic.s
2 #source: tlsbin.s
3 #as: --64
4 #ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
5 #objdump: -drj.text
6 #target: x86_64-*-*
7
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
16
17 .*: +file format elf64-x86-64
18
19 Disassembly of section .text:
20
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 dc 03 20 00[   ]+add    0x2003dc\(%rip\),%rax +# 6013f0 <.*>
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 b8 03 20 00[   ]+add    0x2003b8\(%rip\),%rax +# 6013e0 <.*>
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    -0xa0\(%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    -0x80\(%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    -0x60\(%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[   ]+data32 data32 data32 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    -0x7f\(%rax\),%rdx
76 #                                                       sl1+1
77   40107d:       90[     ]+nop *
78   40107e:       90[     ]+nop *
79   40107f:       4c 8d 88 86 ff ff ff[   ]+lea    -0x7a\(%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[   ]+data32 data32 data32 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    -0x60\(%rax\),%rdx
91 #                                                       sh1
92   40109f:       90[     ]+nop *
93   4010a0:       90[     ]+nop *
94   4010a1:       48 8d 88 a7 ff ff ff[   ]+lea    -0x59\(%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 22 03 20 00[   ]+add    0x200322\(%rip\),%r9 +# 6013e0 <.*>
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    -0xa0\(%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    -0x80\(%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    -0x60\(%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 cd 02 20 00[   ]+mov    0x2002cd\(%rip\),%rcx +# 6013d8 <.*>
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:       0f 1f 00[       ]+nopl   \(%rax\)
178
179 0+40113c <_start>:
180   40113c:       55[     ]+push   %rbp
181   40113d:       48 89 e5[       ]+mov    %rsp,%rbp
182 #  IE against global var
183   401140:       64 4c 8b 1c 25 00 00[   ]+mov    %fs:0x0,%r11
184   401147:       00 00 *
185   401149:       90[     ]+nop *
186   40114a:       90[     ]+nop *
187   40114b:       4c 03 1d 96 02 20 00[   ]+add    0x200296\(%rip\),%r11 +# 6013e8 <.*>
188 #                               -> R_X86_64_TPOFF64     sG6
189   401152:       90[     ]+nop *
190   401153:       90[     ]+nop *
191   401154:       90[     ]+nop *
192   401155:       90[     ]+nop *
193 #  IE -> LE against global var defined in exec
194   401156:       64 48 8b 14 25 00 00[   ]+mov    %fs:0x0,%rdx
195   40115d:       00 00 *
196   40115f:       90[     ]+nop *
197   401160:       90[     ]+nop *
198   401161:       48 8d 92 d4 ff ff ff[   ]+lea    -0x2c\(%rdx\),%rdx
199 #                                                       bg6
200   401168:       90[     ]+nop *
201   401169:       90[     ]+nop *
202   40116a:       90[     ]+nop *
203   40116b:       90[     ]+nop *
204 #  IE -> LE against local var
205   40116c:       64 4c 8b 24 25 00 00[   ]+mov    %fs:0x0,%r12
206   401173:       00 00 *
207   401175:       90[     ]+nop *
208   401176:       90[     ]+nop *
209   401177:       49 81 c4 f4 ff ff ff[   ]+add    \$0xf+f4,%r12
210 #                                                       bl6
211   40117e:       90[     ]+nop *
212   40117f:       90[     ]+nop *
213   401180:       90[     ]+nop *
214   401181:       90[     ]+nop *
215 #  direct %fs access IE -> LE against local var
216   401182:       48 c7 c2 fc ff ff ff[   ]+mov    \$0xf+fc,%rdx
217 #                                                       bl8
218   401189:       90[     ]+nop *
219   40118a:       90[     ]+nop *
220   40118b:       64 48 8b 02[    ]+mov    %fs:\(%rdx\),%rax
221   40118f:       90[     ]+nop *
222   401190:       90[     ]+nop *
223   401191:       90[     ]+nop *
224   401192:       90[     ]+nop *
225 #  IE -> LE against hidden but not local var
226   401193:       64 48 8b 14 25 00 00[   ]+mov    %fs:0x0,%rdx
227   40119a:       00 00 *
228   40119c:       90[     ]+nop *
229   40119d:       90[     ]+nop *
230   40119e:       48 8d 92 b4 ff ff ff[   ]+lea    -0x4c\(%rdx\),%rdx
231 #                                                       sh6
232   4011a5:       90[     ]+nop *
233   4011a6:       90[     ]+nop *
234   4011a7:       90[     ]+nop *
235   4011a8:       90[     ]+nop *
236 #  direct %fs access IE -> LE against hidden but not local var
237   4011a9:       48 c7 c2 bc ff ff ff[   ]+mov    \$0xf+bc,%rdx
238 #                                                       sh8
239   4011b0:       90[     ]+nop *
240   4011b1:       90[     ]+nop *
241   4011b2:       64 48 8b 02[    ]+mov    %fs:\(%rdx\),%rax
242   4011b6:       90[     ]+nop *
243   4011b7:       90[     ]+nop *
244   4011b8:       90[     ]+nop *
245   4011b9:       90[     ]+nop *
246 #  LE, global var defined in exec
247   4011ba:       64 48 8b 04 25 00 00[   ]+mov    %fs:0x0,%rax
248   4011c1:       00 00 *
249   4011c3:       90[     ]+nop *
250   4011c4:       90[     ]+nop *
251   4011c5:       48 8d 90 64 ff ff ff[   ]+lea    -0x9c\(%rax\),%rdx
252 #                                                       sg2
253   4011cc:       90[     ]+nop *
254   4011cd:       90[     ]+nop *
255   4011ce:       90[     ]+nop *
256   4011cf:       90[     ]+nop *
257 #  LE, local var, non-canonical sequence
258   4011d0:       49 c7 c1 e6 ff ff ff[   ]+mov    \$0xf+e6,%r9
259 #                                                       bl2+2
260   4011d7:       90[     ]+nop *
261   4011d8:       90[     ]+nop *
262   4011d9:       64 48 8b 14 25 00 00[   ]+mov    %fs:0x0,%rdx
263   4011e0:       00 00 *
264   4011e2:       90[     ]+nop *
265   4011e3:       90[     ]+nop *
266   4011e4:       4c 01 ca[       ]+add    %r9,%rdx
267   4011e7:       90[     ]+nop *
268   4011e8:       90[     ]+nop *
269   4011e9:       90[     ]+nop *
270   4011ea:       90[     ]+nop *
271 #  LE, hidden var defined in exec, non-canonical sequence
272   4011eb:       64 48 8b 14 25 00 00[   ]+mov    %fs:0x0,%rdx
273   4011f2:       00 00 *
274   4011f4:       90[     ]+nop *
275   4011f5:       90[     ]+nop *
276   4011f6:       48 81 c2 a5 ff ff ff[   ]+add    \$0xf+a5,%rdx
277 #                                                       sh2+1
278   4011fd:       90[     ]+nop *
279   4011fe:       90[     ]+nop *
280   4011ff:       90[     ]+nop *
281   401200:       90[     ]+nop *
282 #  Direct %fs access
283 #  LE, global var defined in exec
284   401201:       64 48 8b 04 25 68 ff[   ]+mov    %fs:0xf+68,%rax
285   401208:       ff ff *
286 #                                                       sg3
287   40120a:       90[     ]+nop *
288   40120b:       90[     ]+nop *
289   40120c:       90[     ]+nop *
290   40120d:       90[     ]+nop *
291 #  LE, local var
292   40120e:       64 4c 8b 14 25 eb ff[   ]+mov    %fs:0xf+eb,%r10
293   401215:       ff ff *
294 #                                                       bl3+3
295   401217:       90[     ]+nop *
296   401218:       90[     ]+nop *
297   401219:       90[     ]+nop *
298   40121a:       90[     ]+nop *
299 #  LE, hidden var defined in exec
300   40121b:       64 48 8b 14 25 a9 ff[   ]+mov    %fs:0xf+a9,%rdx
301   401222:       ff ff *
302 #                                                       sh3+1
303   401224:       90[     ]+nop *
304   401225:       90[     ]+nop *
305   401226:       90[     ]+nop *
306   401227:       90[     ]+nop *
307 #  LE, large model
308   401228:       48 ba a5 ff ff ff ff[   ]+movabs \$0xffffffffffffffa5,%rdx
309   40122f:       ff ff ff *
310   401232:       c9[     ]+leaveq *
311   401233:       c3[     ]+retq *
This page took 0.044368 seconds and 4 git commands to generate.