Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-x86-64 / tlsbin.s
1         .section ".tbss", "awT", @nobits
2         .globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8
3 bg1:    .space 4
4 bg2:    .space 4
5 bg3:    .space 4
6 bg4:    .space 4
7 bg5:    .space 4
8 bg6:    .space 4
9 bg7:    .space 4
10 bg8:    .space 4
11 bl1:    .space 4
12 bl2:    .space 4
13 bl3:    .space 4
14 bl4:    .space 4
15 bl5:    .space 4
16 bl6:    .space 4
17 bl7:    .space 4
18 bl8:    .space 4
19         .text
20         .globl  _start
21         .type   _start,@function
22 _start:
23         pushq   %rbp
24         movq    %rsp, %rbp
25
26         /* IE against global var  */
27         movq    %fs:0, %r11
28         nop;nop
29         addq    sG6@gottpoff(%rip), %r11
30         nop;nop;nop;nop
31
32         /* IE -> LE against global var defined in exec  */
33         movq    %fs:0, %rdx
34         nop;nop
35         addq    bg6@gottpoff(%rip), %rdx
36         nop;nop;nop;nop
37
38         /* IE -> LE against local var  */
39         movq    %fs:0, %r12
40         nop;nop
41         addq    bl6@gottpoff(%rip), %r12
42         nop;nop;nop;nop
43
44         /* direct %fs access IE -> LE against local var  */
45         movq    bl8@gottpoff(%rip), %rdx
46         nop;nop
47         movq    %fs:(%rdx), %rax
48         nop;nop;nop;nop
49
50         /* IE -> LE against hidden but not local var  */
51         movq    %fs:0, %rdx
52         nop;nop
53         addq    sh6@gottpoff(%rip), %rdx
54         nop;nop;nop;nop
55
56         /* direct %fs access IE -> LE against hidden but not local var  */
57         movq    sh8@gottpoff(%rip), %rdx
58         nop;nop
59         movq    %fs:(%rdx), %rax
60         nop;nop;nop;nop
61
62         /* LE, global var defined in exec  */
63         movq    %fs:0, %rax
64         nop;nop
65         leaq    sg2@tpoff(%rax), %rdx
66         nop;nop;nop;nop
67
68         /* LE, local var, non-canonical sequence  */
69         movq    $2+bl2@tpoff, %r9
70         nop;nop
71         movq    %fs:0, %rdx
72         nop;nop
73         addq    %r9, %rdx
74         nop;nop;nop;nop
75
76         /* LE, hidden var defined in exec, non-canonical sequence */
77         movq    %fs:0, %rdx
78         nop;nop
79         addq    $sh2@tpoff+1, %rdx
80         nop;nop;nop;nop
81
82         /* Direct %fs access  */
83
84         /* LE, global var defined in exec  */
85         movq    %fs:sg3@tpoff, %rax
86         nop;nop;nop;nop
87
88         /* LE, local var  */
89         movq    %fs:bl3@tpoff+3, %r10
90         nop;nop;nop;nop
91
92         /* LE, hidden var defined in exec  */
93         movq    %fs:1+sh3@tpoff, %rdx
94         nop;nop;nop;nop
95
96         leave
97         ret