1#source: tlsgdesc.s 2#as: --64 3#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info 4#objdump: -drj.text -Mintel64 5#target: x86_64-*-* 6 7.*: +file format elf64-x86-64.* 8 9Disassembly of section .text: 10 110+[0-9a-f]+ <fc1>: 12 +[0-9a-f]+: 55[ ]+push %rbp 13 +[0-9a-f]+: 48 89 e5[ ]+mov %rsp,%rbp 14 +[0-9a-f]+: 90[ ]+nop * 15 +[0-9a-f]+: 90[ ]+nop * 16 +[0-9a-f]+: 90[ ]+nop * 17 +[0-9a-f]+: 90[ ]+nop * 18# IE 19 +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx 20 +[0-9a-f]+: 00 00 * 21 +[0-9a-f]+: 90[ ]+nop * 22 +[0-9a-f]+: 90[ ]+nop * 23 +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> 24# -> R_X86_64_TPOFF64 sG3 25 +[0-9a-f]+: 90[ ]+nop * 26 +[0-9a-f]+: 90[ ]+nop * 27 +[0-9a-f]+: 90[ ]+nop * 28 +[0-9a-f]+: 90[ ]+nop * 29# IE 30 +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx 31 +[0-9a-f]+: 00 00 * 32 +[0-9a-f]+: 90[ ]+nop * 33 +[0-9a-f]+: 90[ ]+nop * 34 +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> 35# -> R_X86_64_TPOFF64 sG4 36 +[0-9a-f]+: 90[ ]+nop * 37 +[0-9a-f]+: 90[ ]+nop * 38 +[0-9a-f]+: 90[ ]+nop * 39 +[0-9a-f]+: 90[ ]+nop * 40# GD, gd first 41 +[0-9a-f]+: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> 42 +[0-9a-f]+: [0-9a-f]{2} * 43# -> R_X86_64_DTPMOD64 sG1 44 +[0-9a-f]+: 66 66 48 e8 ([0-9a-f]{2} ){3}[ ]+data16 data16 rex\.W call [0-9a-f]+ <__tls_get_addr@plt> 45 +[0-9a-f]+: [0-9a-f]{2} * 46# -> R_X86_64_JUMP_SLOT __tls_get_addr 47 +[0-9a-f]+: 90[ ]+nop * 48 +[0-9a-f]+: 90[ ]+nop * 49 +[0-9a-f]+: 90[ ]+nop * 50 +[0-9a-f]+: 90[ ]+nop * 51 +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 52# -> R_X86_64_TLSDESC sG1 53 +[0-9a-f]+: ff 10[ ]+call \*\(%rax\) 54 +[0-9a-f]+: 90[ ]+nop * 55 +[0-9a-f]+: 90[ ]+nop * 56 +[0-9a-f]+: 90[ ]+nop * 57 +[0-9a-f]+: 90[ ]+nop * 58# GD, desc first 59 +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 60# -> R_X86_64_TLSDESC sG2 61 +[0-9a-f]+: ff 10[ ]+call \*\(%rax\) 62 +[0-9a-f]+: 90[ ]+nop * 63 +[0-9a-f]+: 90[ ]+nop * 64 +[0-9a-f]+: 90[ ]+nop * 65 +[0-9a-f]+: 90[ ]+nop * 66 +[0-9a-f]+: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> 67 +[0-9a-f]+: [0-9a-f]{2} * 68# -> R_X86_64_DTPMOD64 sG2 69 +[0-9a-f]+: 66 66 48 e8 ([0-9a-f]{2} ){3}[ ]+data16 data16 rex\.W call [0-9a-f]+ <__tls_get_addr@plt> 70 +[0-9a-f]+: [0-9a-f]{2} * 71# -> R_X86_64_JUMP_SLOT __tls_get_addr 72 +[0-9a-f]+: 90[ ]+nop * 73 +[0-9a-f]+: 90[ ]+nop * 74 +[0-9a-f]+: 90[ ]+nop * 75 +[0-9a-f]+: 90[ ]+nop * 76# GD -> IE, gd first, after IE use 77 +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax 78 +[0-9a-f]+: 00 00 * 79 +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 80# -> R_X86_64_TPOFF64 sG3 81 +[0-9a-f]+: 90[ ]+nop * 82 +[0-9a-f]+: 90[ ]+nop * 83 +[0-9a-f]+: 90[ ]+nop * 84 +[0-9a-f]+: 90[ ]+nop * 85 +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 86# -> R_X86_64_TPOFF64 sG3 87 +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax 88 +[0-9a-f]+: 90[ ]+nop * 89 +[0-9a-f]+: 90[ ]+nop * 90 +[0-9a-f]+: 90[ ]+nop * 91 +[0-9a-f]+: 90[ ]+nop * 92# GD -> IE, desc first, after IE use 93 +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 94# -> R_X86_64_TPOFF64 sG4 95 +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax 96 +[0-9a-f]+: 90[ ]+nop * 97 +[0-9a-f]+: 90[ ]+nop * 98 +[0-9a-f]+: 90[ ]+nop * 99 +[0-9a-f]+: 90[ ]+nop * 100 +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax 101 +[0-9a-f]+: 00 00 * 102 +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 103# -> R_X86_64_TPOFF64 sG4 104 +[0-9a-f]+: 90[ ]+nop * 105 +[0-9a-f]+: 90[ ]+nop * 106 +[0-9a-f]+: 90[ ]+nop * 107 +[0-9a-f]+: 90[ ]+nop * 108# GD -> IE, gd first, before IE use 109 +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax 110 +[0-9a-f]+: 00 00 * 111 +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 112# -> R_X86_64_TPOFF64 sG5 113 +[0-9a-f]+: 90[ ]+nop * 114 +[0-9a-f]+: 90[ ]+nop * 115 +[0-9a-f]+: 90[ ]+nop * 116 +[0-9a-f]+: 90[ ]+nop * 117 +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 118# -> R_X86_64_TPOFF64 sG5 119 +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax 120 +[0-9a-f]+: 90[ ]+nop * 121 +[0-9a-f]+: 90[ ]+nop * 122 +[0-9a-f]+: 90[ ]+nop * 123 +[0-9a-f]+: 90[ ]+nop * 124# GD -> IE, desc first, before IE use 125 +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 126# -> R_X86_64_TPOFF64 sG6 127 +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax 128 +[0-9a-f]+: 90[ ]+nop * 129 +[0-9a-f]+: 90[ ]+nop * 130 +[0-9a-f]+: 90[ ]+nop * 131 +[0-9a-f]+: 90[ ]+nop * 132 +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax 133 +[0-9a-f]+: 00 00 * 134 +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> 135# -> R_X86_64_TPOFF64 sG6 136 +[0-9a-f]+: 90[ ]+nop * 137 +[0-9a-f]+: 90[ ]+nop * 138 +[0-9a-f]+: 90[ ]+nop * 139 +[0-9a-f]+: 90[ ]+nop * 140# IE 141 +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx 142 +[0-9a-f]+: 00 00 * 143 +[0-9a-f]+: 90[ ]+nop * 144 +[0-9a-f]+: 90[ ]+nop * 145 +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> 146# -> R_X86_64_TPOFF64 sG5 147 +[0-9a-f]+: 90[ ]+nop * 148 +[0-9a-f]+: 90[ ]+nop * 149 +[0-9a-f]+: 90[ ]+nop * 150 +[0-9a-f]+: 90[ ]+nop * 151# IE 152 +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx 153 +[0-9a-f]+: 00 00 * 154 +[0-9a-f]+: 90[ ]+nop * 155 +[0-9a-f]+: 90[ ]+nop * 156 +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> 157# -> R_X86_64_TPOFF64 sG6 158 +[0-9a-f]+: 90[ ]+nop * 159 +[0-9a-f]+: 90[ ]+nop * 160 +[0-9a-f]+: 90[ ]+nop * 161 +[0-9a-f]+: 90[ ]+nop * 162 +[0-9a-f]+: c9[ ]+leave * 163 +[0-9a-f]+: c3[ ]+ret * 164