1 /* Force .data aligned to 4K, so that .got very likely gets at
2 0x5021a0 (0x60 bytes .tdata and 0x140 bytes .dynamic) */
5 .section ".tdata", "awT", @progbits
6 .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
7 .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
8 .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
33 /* Force .text aligned to 4K, so it very likely gets at 0x401000. */
42 /* GD -> IE because variable is not defined in executable */
43 leaq sG1@tlsdesc
(%rip
), %rax
44 call
*sG1@tlscall
(%rax
)
47 /* GD -> IE because variable is not defined in executable where
48 the variable is referenced through IE too */
49 leaq sG2@tlsdesc
(%rip
), %rax
50 call
*sG2@tlscall
(%rax
)
53 /* GD -> LE with global variable defined in executable */
54 leaq sg1@tlsdesc
(%rip
), %rax
55 call
*sg1@tlscall
(%rax
)
58 /* GD -> LE with local variable defined in executable */
59 leaq sl1@tlsdesc
(%rip
), %rax
60 call
*sl1@tlscall
(%rax
)
63 /* GD -> LE with hidden variable defined in executable */
64 leaq sh1@tlsdesc
(%rip
), %rax
65 call
*sh1@tlscall
(%rax
)
69 leaq _TLS_MODULE_BASE_@tlsdesc
(%rip
), %rax
70 call
*_TLS_MODULE_BASE_@tlscall
(%rax
)
72 leaq
1+sl1@dtpoff
(%rax
), %rdx
74 leaq sl2@dtpoff+
2(%rax
), %r9
77 /* LD -> LE against hidden variables */
78 leaq sh1@dtpoff
(%rax
), %rdx
80 leaq
3+sh2@dtpoff
(%rax
), %rcx
83 /* IE against global var */
86 addq sG2@gottpoff
(%rip
), %r9
89 /* IE -> LE against global var defined in exec */
92 addq sg1@gottpoff
(%rip
), %r10
95 /* IE -> LE against local var */
98 addq sl1@gottpoff
(%rip
), %rax
101 /* IE -> LE against hidden var */
104 addq sh1@gottpoff
(%rip
), %rcx
107 /* Direct access through %fs */
109 /* IE against global var */
110 movq sG5@gottpoff
(%rip
), %rcx
112 movq
%fs:(%rcx
), %rdx
115 /* IE->LE against local var */
116 movq sl5@gottpoff
(%rip
), %r11
118 movq
%fs:(%r11), %r12
121 /* IE->LE against hidden var */
122 movq sh5@gottpoff
(%rip
), %rdx
124 movq
%fs:(%rdx
), %rdx