4 #ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
5 #objdump: -drj.text -Mintel64
8 .*: +file format elf64-x86-64.*
10 Disassembly of section .text:
13 +1000: 55[ ]+push %rbp
14 +1001: 48 89 e5[ ]+mov %rsp,%rbp
20 +1008: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
22 # -> R_X86_64_DTPMOD64 sg1
23 +1010: 66 48 ff [0-9a-f ]+data16 rex\.W call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
24 # -> R_X86_64_GLOB_DAT __tls_get_addr
30 # GD -> IE because variable is referenced through IE too
31 +101c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
33 +1025: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
34 # -> R_X86_64_TPOFF64 sg2
39 # GD against local variable
40 +1030: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
42 # -> R_X86_64_DTPMOD64 [0 0x2000000000000000]
43 +1038: 66 48 ff [0-9a-f ]+data16 rex\.W call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
44 # -> R_X86_64_GLOB_DAT __tls_get_addr
50 # GD -> IE against local variable referenced through IE too
51 +1044: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
53 +104d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
54 # -> R_X86_64_TPOFF64 *ABS*+0x24
59 # GD against hidden and local variable
60 +1058: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
62 # -> R_X86_64_DTPMOD64 [0 0x4000000000000000]
63 +1060: 66 48 ff [0-9a-f ]+data16 rex\.W call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
64 # -> R_X86_64_GLOB_DAT __tls_get_addr
70 # GD -> IE against hidden and local variable referenced through IE too
71 +106c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
73 +1075: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
74 # -> R_X86_64_TPOFF64 *ABS*+0x44
79 # GD against hidden but not local variable
80 +1080: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
82 # -> R_X86_64_DTPMOD64 [0 0x6000000000000000]
83 +1088: 66 48 ff [0-9a-f ]+data16 rex\.W call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
84 # -> R_X86_64_GLOB_DAT __tls_get_addr
90 # GD -> IE against hidden but not local variable referenced through IE too
91 +1094: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
93 +109d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
94 # -> R_X86_64_TPOFF64 *ABS*+0x64
100 +10a8: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
101 # -> R_X86_64_DTPMOD64 [0 0x000000000000000]
102 +10af: ff [0-9a-f ]+call[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
103 # -> R_X86_64_GLOB_DAT __tls_get_addr
105 +10b6: 48 8d 90 20 00 00 00[ ]+lea 0x20\(%rax\),%rdx
108 +10bf: 4c 8d 88 26 00 00 00[ ]+lea 0x26\(%rax\),%r9
113 # LD against hidden and local variables
114 +10ca: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
115 # -> R_X86_64_DTPMOD64 [0 0x000000000000000]
116 +10d1: ff [0-9a-f ]+call[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
117 # -> R_X86_64_GLOB_DAT __tls_get_addr
119 +10d8: 48 8d 90 40 00 00 00[ ]+lea 0x40\(%rax\),%rdx
122 +10e1: 48 8d 88 47 00 00 00[ ]+lea 0x47\(%rax\),%rcx
127 # LD against hidden but not local variables
128 +10ec: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
129 # -> R_X86_64_DTPMOD64 [0 0x000000000000000]
130 +10f3: ff [0-9a-f ]+call[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
131 # -> R_X86_64_GLOB_DAT __tls_get_addr
133 +10fa: 4c 8d a0 60 00 00 00[ ]+lea 0x60\(%rax\),%r12
136 +1103: 48 8d 88 65 00 00 00[ ]+lea 0x65\(%rax\),%rcx
139 # IE against global var
140 +110c: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx
144 +1117: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
145 # -> R_X86_64_TPOFF64 sg2
150 # IE against local var
151 +1122: 64 4c 8b 34 25 00 00[ ]+mov %fs:0x0,%r14
155 +112d: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <.*>
156 # -> R_X86_64_TPOFF64 *ABS*+0x24
161 # IE against hidden and local var
162 +1138: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx
166 +1143: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
167 # -> R_X86_64_TPOFF64 *ABS*+0x44
172 # IE against hidden but not local var
173 +114e: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx
177 +1159: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
178 # -> R_X86_64_TPOFF64 *ABS*+0x64
183 # Direct access through %fs
184 # IE against global var
185 +1164: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
186 # -> R_X86_64_TPOFF64 sg5
189 +116d: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx
194 # IE against local var
195 +1175: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <.*>
196 # -> R_X86_64_TPOFF64 *ABS*+0x30
199 +117e: 64 4d 8b 22[ ]+mov %fs:\(%r10\),%r12
204 # IE against hidden and local var
205 +1186: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <.*>
206 # -> R_X86_64_TPOFF64 *ABS*+0x50
209 +118f: 64 48 8b 12[ ]+mov %fs:\(%rdx\),%rdx
214 # IE against hidden but not local var
215 +1197: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*>
216 # -> R_X86_64_TPOFF64 *ABS*+0x70
219 +11a0: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx
224 +11a8: 49 bb ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%r11
225 +11af: ([0-9a-f]{2} ){3}
226 +11b2: 41 57[ ]+push %r15
227 +11b4: 41 57[ ]+push %r15
228 +11b6: 4c 8d 3d eb ff ff ff[ ]+lea -0x15\(%rip\),%r15 +# [0-9a-f]+ <fn1\+0x[0-9a-f]+>
229 +11bd: 4d 01 df[ ]+add %r11,%r15
232 # -mcmodel=large sequences
235 +11c2: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
236 # -> R_X86_64_DTPMOD64 sg1
237 +11c9: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
238 # -> R_X86_64_GLOB_DAT __tls_get_addr
239 +11d0: ([0-9a-f]{2} ){3}
240 +11d3: 4c 01 f8[ ]+add %r15,%rax
241 +11d6: ff d0[ ]+call \*%rax
246 # -mcmodel=large GD -> IE because variable is referenced through IE too
247 # -> R_X86_64_TPOFF64 sg2
248 +11dc: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
250 +11e5: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
251 # -> R_X86_64_TPOFF64 sg2
252 +11ec: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
257 # -mcmodel=large GD against local variable
258 +11f6: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
259 # -> R_X86_64_DTPMOD64 [0 0x2000000000000000]
260 +11fd: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
261 # -> R_X86_64_GLOB_DAT __tls_get_addr
262 +1204: ([0-9a-f]{2} ){3}
263 +1207: 4c 01 f8[ ]+add %r15,%rax
264 +120a: ff d0[ ]+call \*%rax
269 # -mcmodel=large GD -> IE against local variable referenced through IE too
270 +1210: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
272 +1219: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
273 # -> R_X86_64_TPOFF64 *ABS*+0x24
274 +1220: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
279 # -mcmodel=large GD against hidden and local variable
280 +122a: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
281 # -> R_X86_64_DTPMOD64 [0 0x4000000000000000]
282 +1231: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
283 # -> R_X86_64_GLOB_DAT __tls_get_addr
284 +1238: ([0-9a-f]{2} ){3}
285 +123b: 4c 01 f8[ ]+add %r15,%rax
286 +123e: ff d0[ ]+call \*%rax
291 # -mcmodel=large GD -> IE against hidden and local variable referenced through IE too
292 +1244: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
294 +124d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
295 # -> R_X86_64_TPOFF64 *ABS*+0x44
296 +1254: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
301 # -mcmodel=large GD against hidden but not local variable
302 +125e: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
303 # -> R_X86_64_DTPMOD64 [0 0x6000000000000000]
304 +1265: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
305 # -> R_X86_64_GLOB_DAT __tls_get_addr
306 +126c: ([0-9a-f]{2} ){3}
307 +126f: 4c 01 f8[ ]+add %r15,%rax
308 +1272: ff d0[ ]+call \*%rax
313 # -mcmodel=large GD -> IE against hidden but not local variable referenced through IE too
314 +1278: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
316 +1281: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
317 # -> R_X86_64_TPOFF64 *ABS*+0x64
318 +1288: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\)
324 +1292: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
325 # -> R_X86_64_DTPMOD64 [0 0x000000000000000]
326 +1299: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
327 # -> R_X86_64_GLOB_DAT __tls_get_addr
328 +12a0: ([0-9a-f]{2} ){3}
329 +12a3: 4c 01 f8[ ]+add %r15,%rax
330 +12a6: ff d0[ ]+call \*%rax
333 +12aa: 48 8d 90 20 00 00 00[ ]+lea 0x20\(%rax\),%rdx
336 +12b3: 4c 8d 88 26 00 00 00[ ]+lea 0x26\(%rax\),%r9
341 # -mcmodel=large LD against hidden and local variables
342 +12be: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
343 # -> R_X86_64_DTPMOD64 [0 0x000000000000000]
344 +12c5: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
345 # -> R_X86_64_GLOB_DAT __tls_get_addr
346 +12cc: ([0-9a-f]{2} ){3}
347 +12cf: 4c 01 f8[ ]+add %r15,%rax
348 +12d2: ff d0[ ]+call \*%rax
351 +12d6: 48 8d 90 40 00 00 00[ ]+lea 0x40\(%rax\),%rdx
354 +12df: 48 8d 88 47 00 00 00[ ]+lea 0x47\(%rax\),%rcx
359 # -mcmodel=large LD against hidden but not local variables
360 +12ea: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*>
361 # -> R_X86_64_DTPMOD64 [0 0x000000000000000]
362 +12f1: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax
363 # -> R_X86_64_GLOB_DAT __tls_get_addr
364 +12f8: ([0-9a-f]{2} ){3}
365 +12fb: 4c 01 f8[ ]+add %r15,%rax
366 +12fe: ff d0[ ]+call \*%rax
369 +1302: 4c 8d a0 60 00 00 00[ ]+lea 0x60\(%rax\),%r12
372 +130b: 48 8d 88 65 00 00 00[ ]+lea 0x65\(%rax\),%rcx
375 +1314: 41 5f[ ]+pop %r15
376 +1316: 41 5f[ ]+pop %r15