| #source: tlsgdesc.s |
| #as: --64 |
| #ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
| #objdump: -drj.text |
| #target: x86_64-*-* |
| |
| .*: +file format elf64-x86-64.* |
| |
| Disassembly of section .text: |
| |
| 0+[0-9a-f]+ <fc1>: |
| +[0-9a-f]+: 55[ ]+push %rbp |
| +[0-9a-f]+: 48 89 e5[ ]+mov %rsp,%rbp |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # IE |
| +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx |
| +[0-9a-f]+: 00 00 * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x150> |
| # -> R_X86_64_TPOFF64 sG3 |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # IE |
| +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx |
| +[0-9a-f]+: 00 00 * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x170> |
| # -> R_X86_64_TPOFF64 sG4 |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # GD, gd first |
| +[0-9a-f]+: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data32 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x180> |
| +[0-9a-f]+: [0-9a-f]{2} * |
| # -> R_X86_64_DTPMOD64 sG1 |
| +[0-9a-f]+: 66 66 48 e8 ([0-9a-f]{2} ){3}[ ]+data32 data32 callq [0-9a-f]+ <__tls_get_addr@plt> |
| +[0-9a-f]+: [0-9a-f]{2} * |
| # -> R_X86_64_JUMP_SLOT __tls_get_addr |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x30> |
| # -> R_X86_64_TLSDESC sG1 |
| +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # GD, desc first |
| +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x20> |
| # -> R_X86_64_TLSDESC sG2 |
| +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data32 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x160> |
| +[0-9a-f]+: [0-9a-f]{2} * |
| # -> R_X86_64_DTPMOD64 sG2 |
| +[0-9a-f]+: 66 66 48 e8 ([0-9a-f]{2} ){3}[ ]+data32 data32 callq [0-9a-f]+ <__tls_get_addr@plt> |
| +[0-9a-f]+: [0-9a-f]{2} * |
| # -> R_X86_64_JUMP_SLOT __tls_get_addr |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # GD -> IE, gd first, after IE use |
| +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax |
| +[0-9a-f]+: 00 00 * |
| +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x150> |
| # -> R_X86_64_TPOFF64 sG3 |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x150> |
| # -> R_X86_64_TPOFF64 sG3 |
| +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # GD -> IE, desc first, after IE use |
| +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x170> |
| # -> R_X86_64_TPOFF64 sG4 |
| +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax |
| +[0-9a-f]+: 00 00 * |
| +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x170> |
| # -> R_X86_64_TPOFF64 sG4 |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # GD -> IE, gd first, before IE use |
| +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax |
| +[0-9a-f]+: 00 00 * |
| +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x158> |
| # -> R_X86_64_TPOFF64 sG5 |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x158> |
| # -> R_X86_64_TPOFF64 sG5 |
| +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # GD -> IE, desc first, before IE use |
| +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x178> |
| # -> R_X86_64_TPOFF64 sG6 |
| +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax |
| +[0-9a-f]+: 00 00 * |
| +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x178> |
| # -> R_X86_64_TPOFF64 sG6 |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # IE |
| +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx |
| +[0-9a-f]+: 00 00 * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x158> |
| # -> R_X86_64_TPOFF64 sG5 |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| # IE |
| +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx |
| +[0-9a-f]+: 00 00 * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x178> |
| # -> R_X86_64_TPOFF64 sG6 |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: 90[ ]+nop * |
| +[0-9a-f]+: c9[ ]+leaveq * |
| +[0-9a-f]+: c3[ ]+retq * |