1 #source: tlsdesc.s 2 #source: tlspic2.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 .*: +file format elf64-x86-64.* 9 10 Disassembly of section .text: 11 12 0+[0-9a-f]+ <fn1>: 13 +[0-9a-f]+: 55[ ]+push %rbp 14 +[0-9a-f]+: 48 89 e5[ ]+mov %rsp,%rbp 15 +[0-9a-f]+: 90[ ]+nop * 16 +[0-9a-f]+: 90[ ]+nop * 17 +[0-9a-f]+: 90[ ]+nop * 18 +[0-9a-f]+: 90[ ]+nop * 19 # GD 20 +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x48> 21 # -> R_X86_64_TLSDESC sg1 22 +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) 23 +[0-9a-f]+: 90[ ]+nop * 24 +[0-9a-f]+: 90[ ]+nop * 25 +[0-9a-f]+: 90[ ]+nop * 26 +[0-9a-f]+: 90[ ]+nop * 27 # GD -> IE because variable is referenced through IE too 28 +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x180> 29 # -> R_X86_64_TPOFF64 sg2 30 +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax 31 +[0-9a-f]+: 90[ ]+nop * 32 +[0-9a-f]+: 90[ ]+nop * 33 +[0-9a-f]+: 90[ ]+nop * 34 +[0-9a-f]+: 90[ ]+nop * 35 # GD against local variable 36 +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x18> 37 # -> R_X86_64_TLSDESC [0 0x2000000000000000] 38 +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) 39 +[0-9a-f]+: 90[ ]+nop * 40 +[0-9a-f]+: 90[ ]+nop * 41 +[0-9a-f]+: 90[ ]+nop * 42 +[0-9a-f]+: 90[ ]+nop * 43 # GD -> IE against local variable referenced through IE too 44 +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x150> 45 # -> R_X86_64_TPOFF64 *ABS*+0x24 46 +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax 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 # GD against hidden and local variable 52 +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x58> 53 # -> R_X86_64_TLSDESC [0 0x4000000000000000] 54 +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) 55 +[0-9a-f]+: 90[ ]+nop * 56 +[0-9a-f]+: 90[ ]+nop * 57 +[0-9a-f]+: 90[ ]+nop * 58 +[0-9a-f]+: 90[ ]+nop * 59 # GD -> IE against hidden and local variable referenced through IE too 60 +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x188> 61 # -> R_X86_64_TPOFF64 *ABS*+0x44 62 +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax 63 +[0-9a-f]+: 90[ ]+nop * 64 +[0-9a-f]+: 90[ ]+nop * 65 +[0-9a-f]+: 90[ ]+nop * 66 +[0-9a-f]+: 90[ ]+nop * 67 # GD against hidden but not local variable 68 +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x28> 69 # -> R_X86_64_TLSDESC [0 0x6000000000000000] 70 +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) 71 +[0-9a-f]+: 90[ ]+nop * 72 +[0-9a-f]+: 90[ ]+nop * 73 +[0-9a-f]+: 90[ ]+nop * 74 +[0-9a-f]+: 90[ ]+nop * 75 # GD -> IE against hidden but not local variable referenced through IE too 76 +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x160> 77 # -> R_X86_64_TPOFF64 *ABS*+0x64 78 +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax 79 +[0-9a-f]+: 90[ ]+nop * 80 +[0-9a-f]+: 90[ ]+nop * 81 +[0-9a-f]+: 90[ ]+nop * 82 +[0-9a-f]+: 90[ ]+nop * 83 # LD 84 +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x38> 85 # -> R_X86_64_TLSDESC [0 0x000000000000000] 86 +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) 87 +[0-9a-f]+: 90[ ]+nop * 88 +[0-9a-f]+: 90[ ]+nop * 89 +[0-9a-f]+: 48 8d 90 20 00 00 00[ ]+lea 0x20\(%rax\),%rdx 90 +[0-9a-f]+: 90[ ]+nop * 91 +[0-9a-f]+: 90[ ]+nop * 92 +[0-9a-f]+: 4c 8d 88 26 00 00 00[ ]+lea 0x26\(%rax\),%r9 93 +[0-9a-f]+: 90[ ]+nop * 94 +[0-9a-f]+: 90[ ]+nop * 95 +[0-9a-f]+: 90[ ]+nop * 96 +[0-9a-f]+: 90[ ]+nop * 97 # LD against hidden and local variables 98 +[0-9a-f]+: 48 8d 90 40 00 00 00[ ]+lea 0x40\(%rax\),%rdx 99 +[0-9a-f]+: 90[ ]+nop * 100 +[0-9a-f]+: 90[ ]+nop * 101 +[0-9a-f]+: 48 8d 88 47 00 00 00[ ]+lea 0x47\(%rax\),%rcx 102 +[0-9a-f]+: 90[ ]+nop * 103 +[0-9a-f]+: 90[ ]+nop * 104 +[0-9a-f]+: 90[ ]+nop * 105 +[0-9a-f]+: 90[ ]+nop * 106 # LD against hidden but not local variables 107 +[0-9a-f]+: 4c 8d a0 60 00 00 00[ ]+lea 0x60\(%rax\),%r12 108 +[0-9a-f]+: 90[ ]+nop * 109 +[0-9a-f]+: 90[ ]+nop * 110 +[0-9a-f]+: 48 8d 88 65 00 00 00[ ]+lea 0x65\(%rax\),%rcx 111 +[0-9a-f]+: 90[ ]+nop * 112 +[0-9a-f]+: 90[ ]+nop * 113 # IE against global var 114 +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx 115 +[0-9a-f]+: 00 00 * 116 +[0-9a-f]+: 90[ ]+nop * 117 +[0-9a-f]+: 90[ ]+nop * 118 +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x180> 119 # -> R_X86_64_TPOFF64 sg2 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 # IE against local var 125 +[0-9a-f]+: 64 4c 8b 34 25 00 00[ ]+mov %fs:0x0,%r14 126 +[0-9a-f]+: 00 00 * 127 +[0-9a-f]+: 90[ ]+nop * 128 +[0-9a-f]+: 90[ ]+nop * 129 +[0-9a-f]+: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <_DYNAMIC\+0x150> 130 # -> R_X86_64_TPOFF64 *ABS*+0x24 131 +[0-9a-f]+: 90[ ]+nop * 132 +[0-9a-f]+: 90[ ]+nop * 133 +[0-9a-f]+: 90[ ]+nop * 134 +[0-9a-f]+: 90[ ]+nop * 135 # IE against hidden and local var 136 +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx 137 +[0-9a-f]+: 00 00 * 138 +[0-9a-f]+: 90[ ]+nop * 139 +[0-9a-f]+: 90[ ]+nop * 140 +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x188> 141 # -> R_X86_64_TPOFF64 *ABS*+0x44 142 +[0-9a-f]+: 90[ ]+nop * 143 +[0-9a-f]+: 90[ ]+nop * 144 +[0-9a-f]+: 90[ ]+nop * 145 +[0-9a-f]+: 90[ ]+nop * 146 # IE against hidden but not local var 147 +[0-9a-f]+: 64 48 8b 0c 25 00 00[ ]+mov %fs:0x0,%rcx 148 +[0-9a-f]+: 00 00 * 149 +[0-9a-f]+: 90[ ]+nop * 150 +[0-9a-f]+: 90[ ]+nop * 151 +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x160> 152 # -> R_X86_64_TPOFF64 *ABS*+0x64 153 +[0-9a-f]+: 90[ ]+nop * 154 +[0-9a-f]+: 90[ ]+nop * 155 +[0-9a-f]+: 90[ ]+nop * 156 +[0-9a-f]+: 90[ ]+nop * 157 # Direct access through %fs 158 # IE against global var 159 +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x168> 160 # -> R_X86_64_TPOFF64 sg5 161 +[0-9a-f]+: 90[ ]+nop * 162 +[0-9a-f]+: 90[ ]+nop * 163 +[0-9a-f]+: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx 164 +[0-9a-f]+: 90[ ]+nop * 165 +[0-9a-f]+: 90[ ]+nop * 166 +[0-9a-f]+: 90[ ]+nop * 167 +[0-9a-f]+: 90[ ]+nop * 168 # IE against local var 169 +[0-9a-f]+: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <_DYNAMIC\+0x158> 170 # -> R_X86_64_TPOFF64 *ABS*+0x30 171 +[0-9a-f]+: 90[ ]+nop * 172 +[0-9a-f]+: 90[ ]+nop * 173 +[0-9a-f]+: 64 4d 8b 22[ ]+mov %fs:\(%r10\),%r12 174 +[0-9a-f]+: 90[ ]+nop * 175 +[0-9a-f]+: 90[ ]+nop * 176 +[0-9a-f]+: 90[ ]+nop * 177 +[0-9a-f]+: 90[ ]+nop * 178 # IE against hidden and local var 179 +[0-9a-f]+: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <_DYNAMIC\+0x170> 180 # -> R_X86_64_TPOFF64 *ABS*+0x50 181 +[0-9a-f]+: 90[ ]+nop * 182 +[0-9a-f]+: 90[ ]+nop * 183 +[0-9a-f]+: 64 48 8b 12[ ]+mov %fs:\(%rdx\),%rdx 184 +[0-9a-f]+: 90[ ]+nop * 185 +[0-9a-f]+: 90[ ]+nop * 186 +[0-9a-f]+: 90[ ]+nop * 187 +[0-9a-f]+: 90[ ]+nop * 188 # IE against hidden but not local var 189 +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x178> 190 # -> R_X86_64_TPOFF64 *ABS*+0x70 191 +[0-9a-f]+: 90[ ]+nop * 192 +[0-9a-f]+: 90[ ]+nop * 193 +[0-9a-f]+: 64 48 8b 11[ ]+mov %fs:\(%rcx\),%rdx 194 +[0-9a-f]+: 90[ ]+nop * 195 +[0-9a-f]+: 90[ ]+nop * 196 +[0-9a-f]+: 90[ ]+nop * 197 +[0-9a-f]+: 90[ ]+nop * 198 +[0-9a-f]+: c9[ ]+leaveq * 199 +[0-9a-f]+: c3[ ]+retq * 200