Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-i386 / tlsgdesc.s
1         .text
2         .globl  fc1
3         .type   fc1,@function
4 fc1:
5         pushl   %ebp
6         movl    %esp, %ebp
7         pushl   %ebx
8         pushl   %eax
9         call    1f
10 1:      popl    %ebx
11         addl    $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
12         nop;nop;nop;nop
13
14         /* @gottpoff IE against global var  */
15         movl    %gs:0, %ecx
16         nop;nop
17         subl    sG3@gottpoff(%ebx), %ecx
18         nop;nop;nop;nop
19
20         /* @gotntpoff IE against global var  */
21         movl    %gs:0, %ecx
22         nop;nop
23         addl    sG4@gotntpoff(%ebx), %ecx
24         nop;nop;nop;nop
25
26         /* GD */
27         leal    sG1@tlsgd(,%ebx,1), %eax
28         call    ___tls_get_addr@plt
29         nop;nop;nop;nop
30
31         /* GD */
32         leal    sG1@tlsdesc(%ebx), %eax
33         call    *sG1@tlscall(%eax)
34         nop;nop;nop;nop
35
36         /* GD */
37         leal    sG2@tlsdesc(%ebx), %eax
38         call    *sG2@tlscall(%eax)
39         nop;nop;nop;nop
40
41         /* GD */
42         leal    sG2@tlsgd(,%ebx,1), %eax
43         call    ___tls_get_addr@plt
44         nop;nop;nop;nop
45
46         /* GD -> IE tpoff */
47         leal    sG3@tlsgd(,%ebx,1), %eax
48         call    ___tls_get_addr@plt
49         nop;nop;nop;nop
50
51         /* GD -> IE tpoff */
52         leal    sG3@tlsdesc(%ebx), %eax
53         call    *sG3@tlscall(%eax)
54         nop;nop;nop;nop
55
56         /* GD -> IE ntpoff */
57         leal    sG4@tlsdesc(%ebx), %eax
58         call    *sG4@tlscall(%eax)
59         nop;nop;nop;nop
60
61         /* GD -> IE ntpoff */
62         leal    sG4@tlsgd(,%ebx,1), %eax
63         call    ___tls_get_addr@plt
64         nop;nop;nop;nop
65
66         /* GD -> IE ntpoff */
67         leal    sG5@tlsgd(,%ebx,1), %eax
68         call    ___tls_get_addr@plt
69         nop;nop;nop;nop
70
71         /* GD -> IE ntpoff */
72         leal    sG5@tlsdesc(%ebx), %eax
73         call    *sG5@tlscall(%eax)
74         nop;nop;nop;nop
75
76         /* GD -> IE tpoff */
77         leal    sG6@tlsdesc(%ebx), %eax
78         call    *sG6@tlscall(%eax)
79         nop;nop;nop;nop
80
81         /* GD -> IE tpoff */
82         leal    sG6@tlsgd(,%ebx,1), %eax
83         call    ___tls_get_addr@plt
84         nop;nop;nop;nop
85
86         /* @gotntpoff IE against global var  */
87         movl    %gs:0, %ecx
88         nop;nop
89         addl    sG5@gotntpoff(%ebx), %ecx
90         nop;nop;nop;nop
91
92         /* @gottpoff IE against global var  */
93         movl    %gs:0, %ecx
94         nop;nop
95         subl    sG6@gottpoff(%ebx), %ecx
96         nop;nop;nop;nop
97
98         movl    -4(%ebp), %ebx
99         leave
100         ret