Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-i386 / tlsnopic1.s
1         .section ".data.rel.ro", "aw", @progbits
2         /* Align, so that .got is likely at address 0x2080.  */
3         .balign 4096
4         .section ".tbss", "awT", @nobits
5 bl1:    .space 4
6 bl2:    .space 4
7 bl3:    .space 4
8 bl4:    .space 4
9 bl5:    .space 4
10         .text
11         /* Align, so that fn3 is likely at address 0x1000.  */
12         .balign 4096
13         .globl  fn3
14         .type   fn3,@function
15 fn3:
16         pushl   %ebp
17         movl    %esp, %ebp
18
19         /* @indntpoff IE against global var  */
20         movl    %gs:0, %eax
21         nop;nop
22         addl    sg1@indntpoff, %eax
23         nop;nop;nop;nop
24
25         /* @indntpoff direct %gs access IE against global var  */
26         movl    sg2@indntpoff, %edx
27         nop;nop
28         movl    %gs:(%edx), %eax
29         nop;nop;nop;nop
30
31         /* @indntpoff IE against hidden var */
32         movl    %gs:0, %eax
33         nop;nop
34         addl    sh1@indntpoff, %eax
35         nop;nop;nop;nop
36
37         /* @indntpoff direct %gs access IE against hidden var */
38         movl    sh2@indntpoff, %edx
39         nop;nop
40         movl    %gs:(%edx), %eax
41         nop;nop;nop;nop
42
43         /* @indntpoff IE against local var  */
44         movl    %gs:0, %eax
45         nop;nop
46         addl    bl1@indntpoff, %eax
47         nop;nop;nop;nop
48
49         /* @indntpoff direct %gs access IE against local var  */
50         movl    bl2@indntpoff, %edx
51         nop;nop
52         movl    %gs:(%edx), %eax
53         nop;nop;nop;nop
54
55         /* LE @tpoff, global var  */
56         movl    $-3+sg3@tpoff, %edx
57         nop;nop
58         movl    %gs:0, %eax
59         nop;nop
60         subl    %edx, %eax
61         nop;nop;nop;nop
62
63         /* LE @tpoff, local var  */
64         movl    $-1+bl3@tpoff, %eax
65         nop;nop
66         movl    %gs:0, %edx
67         nop;nop
68         subl    %eax, %edx
69         nop;nop;nop;nop
70
71         /* LE @ntpoff, global var  */
72         movl    %gs:0, %eax
73         nop;nop
74         leal    2+sg4@ntpoff(%eax), %edx
75         nop;nop;nop;nop
76
77         /* LE @ntpoff, hidden var, non-canonical sequence  */
78         movl    $sh3@ntpoff, %eax
79         nop;nop
80         movl    %gs:0, %edx
81         nop;nop
82         addl    %eax, %edx
83         nop;nop;nop;nop
84
85         /* LE @ntpoff, local var, non-canonical sequence */
86         movl    %gs:0, %edx
87         nop;nop
88         addl    $bl4@ntpoff+1, %edx
89         nop;nop;nop;nop
90
91         /* Direct %gs access  */
92
93         /* LE @ntpoff, global var  */
94         movl    %gs:sg5@ntpoff, %eax
95         nop;nop;nop;nop
96
97         /* LE @ntpoff, local var  */
98         movl    %gs:bl5@ntpoff+3, %edx
99         nop;nop;nop;nop
100
101         /* LE @ntpoff, hidden var  */
102         movl    %gs:1+sh4@ntpoff, %edx
103         nop;nop;nop;nop
104
105         movl    -4(%ebp), %ebx
106         leave
107         ret