Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-x86-64 / tlsgdesc.s
1         .text
2         .globl  fc1
3         .type   fc1,@function
4 fc1:
5         pushq   %rbp
6         movq    %rsp, %rbp
7         nop;nop;nop;nop
8
9         /* IE against global var.  */
10         movq    %fs:0, %rcx
11         nop;nop
12         addq    sG3@gottpoff(%rip), %rcx
13         nop;nop;nop;nop
14
15         /* IE against global var.  */
16         movq    %fs:0, %rcx
17         nop;nop
18         addq    sG4@gottpoff(%rip), %rcx
19         nop;nop;nop;nop
20
21         /* GD, gd first.  */
22         .byte   0x66
23         leaq    sG1@tlsgd(%rip), %rdi
24         .word   0x6666
25         rex64
26         call    __tls_get_addr@plt
27         nop;nop;nop;nop
28
29         leaq    sG1@tlsdesc(%rip), %rax
30         call    *sG1@tlscall(%rax)
31         nop;nop;nop;nop
32
33         /* GD, desc first.  */
34         leaq    sG2@tlsdesc(%rip), %rax
35         call    *sG2@tlscall(%rax)
36         nop;nop;nop;nop
37
38         .byte   0x66
39         leaq    sG2@tlsgd(%rip), %rdi
40         .word   0x6666
41         rex64
42         call    __tls_get_addr@plt
43         nop;nop;nop;nop
44
45         /* GD -> IE, gd first, after IE use.  */
46         .byte   0x66
47         leaq    sG3@tlsgd(%rip), %rdi
48         .word   0x6666
49         rex64
50         call    __tls_get_addr@plt
51         nop;nop;nop;nop
52
53         leaq    sG3@tlsdesc(%rip), %rax
54         call    *sG3@tlscall(%rax)
55         nop;nop;nop;nop
56
57         /* GD -> IE, desc first, after IE use.  */
58         leaq    sG4@tlsdesc(%rip), %rax
59         call    *sG4@tlscall(%rax)
60         nop;nop;nop;nop
61
62         .byte   0x66
63         leaq    sG4@tlsgd(%rip), %rdi
64         .word   0x6666
65         rex64
66         call    __tls_get_addr@plt
67         nop;nop;nop;nop
68
69         /* GD -> IE, gd first, before IE use.  */
70         .byte   0x66
71         leaq    sG5@tlsgd(%rip), %rdi
72         .word   0x6666
73         rex64
74         call    __tls_get_addr@plt
75         nop;nop;nop;nop
76
77         leaq    sG5@tlsdesc(%rip), %rax
78         call    *sG5@tlscall(%rax)
79         nop;nop;nop;nop
80
81         /* GD -> IE, desc first, before IE use.  */
82         leaq    sG6@tlsdesc(%rip), %rax
83         call    *sG6@tlscall(%rax)
84         nop;nop;nop;nop
85
86         .byte   0x66
87         leaq    sG6@tlsgd(%rip), %rdi
88         .word   0x6666
89         rex64
90         call    __tls_get_addr@plt
91         nop;nop;nop;nop
92
93         /* IE against global var.  */
94         movq    %fs:0, %rcx
95         nop;nop
96         addq    sG5@gottpoff(%rip), %rcx
97         nop;nop;nop;nop
98
99         /* IE against global var.  */
100         movq    %fs:0, %rcx
101         nop;nop
102         addq    sG6@gottpoff(%rip), %rcx
103         nop;nop;nop;nop
104
105         leave
106         ret