Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-s390 / tlspic1.s
1         .section ".tdata", "awT", @progbits
2         .balign 32
3         .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
4         .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
5         .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
6 sg1:    .long 17
7 sg2:    .long 18
8 sg3:    .long 19
9 sg4:    .long 20
10 sg5:    .long 21
11 sg6:    .long 22
12 sg7:    .long 23
13 sg8:    .long 24
14 sl1:    .long 65
15 sl2:    .long 66
16 sl3:    .long 67
17 sl4:    .long 68
18 sl5:    .long 69
19 sl6:    .long 70
20 sl7:    .long 71
21 sl8:    .long 72
22 sh1:    .long 257
23 sh2:    .long 258
24 sh3:    .long 259
25 sh4:    .long 260
26 sh5:    .long 261
27 sh6:    .long 262
28 sh7:    .long 263
29 sh8:    .long 264
30         .text
31         .globl  fn1
32         .type   fn1,@function
33         .balign 64
34 fn1:
35         /* Funtion prolog */
36         stm     %r6,%r14,24(%r15)
37         bras    %r13,.LTN1
38         /* Literal pool */
39 .LT1:
40 .LC0:
41         .long   _GLOBAL_OFFSET_TABLE_-.LT1
42 .LC1:
43         .long   __tls_get_offset@plt-.LT1
44 .LC2:
45         .long   sg1@tlsgd
46 .LC3:
47         .long   sg2@tlsgd
48 .LC4:
49         .long   sl1@tlsgd
50 .LC5:
51         .long   sl2@tlsgd
52 .LC6:
53         .long   sh1@tlsgd
54 .LC7:
55         .long   sh2@tlsgd
56 .LC8:
57         .long   sH1@tlsgd
58 .LC9:
59         .long   sH2@tlsgd
60 .LC10:
61         .long   sl1@tlsldm
62 .LC11:
63         .long   sl1@dtpoff
64 .LC12:
65         .long   sl2@dtpoff
66 .LC13:
67         .long   sh1@tlsldm
68 .LC14:
69         .long   sh1@dtpoff
70 .LC15:
71         .long   sh2@dtpoff
72 .LC16:
73         .long   sH1@tlsldm
74 .LC17:
75         .long   sH1@dtpoff
76 .LC18:
77         .long   sH2@dtpoff
78 .LC19:
79         .long   sg2@gotntpoff
80 .LC20:
81         .long   sl2@gotntpoff
82 .LC21:
83         .long   sh2@gotntpoff
84 .LC22:
85         .long   sH2@gotntpoff
86 .LTN1:  
87         /* Funtion prolog */
88         lr      %r14,%r15
89         l       %r12,.LC0-.LT1(%r13)
90         ahi     %r15,-96
91         la      %r12,0(%r12,%r13)
92         st      %r14,0(%r14)
93
94         /* Extract TCB and load branch offset */
95         ear     %r9,%a0
96         l       %r7,.LC1-.LT1(%r13)
97
98         /* GD */
99         l       %r2,.LC2-.LT1(%r13)
100         bas     %r14,0(%r7,%r13):tls_gdcall:sg1
101         la      %r2,0(%r2,%r9)
102
103         /* GD -> IE because variable is referenced through IE too */
104         l       %r2,.LC3-.LT1(%r13)
105         bas     %r14,0(%r7,%r13):tls_gdcall:sg2
106         la      %r2,0(%r2,%r9)
107
108         /* GD against local variable */
109         l       %r2,.LC4-.LT1(%r13)
110         bas     %r14,0(%r7,%r13):tls_gdcall:sl1
111         la      %r2,0(%r2,%r9)
112         
113         /* GD -> IE against local variable referenced through IE too */
114         l       %r2,.LC5-.LT1(%r13)
115         bas     %r14,0(%r7,%r13):tls_gdcall:sl2
116         la      %r2,0(%r2,%r9)
117
118         /* GD against hidden and local variable */
119         l       %r2,.LC6-.LT1(%r13)
120         bas     %r14,0(%r7,%r13):tls_gdcall:sh1
121         la      %r2,0(%r2,%r9)
122                 
123         /* GD -> IE against hidden and local variable referenced through
124            IE too */
125         l       %r2,.LC7-.LT1(%r13)
126         bas     %r14,0(%r7,%r13):tls_gdcall:sh2
127         la      %r2,0(%r2,%r9)
128
129         /* GD against hidden but not local variable */
130         l       %r2,.LC8-.LT1(%r13)
131         bas     %r14,0(%r7,%r13):tls_gdcall:sH1
132         la      %r2,0(%r2,%r9)
133
134         /* GD -> IE against hidden but not local variable referenced through
135            IE too */
136         l       %r2,.LC9-.LT1(%r13)
137         bas     %r14,0(%r7,%r13):tls_gdcall:sH2
138         la      %r2,0(%r2,%r9)
139
140         /* LD */
141         l       %r2,.LC10-.LT1(%r13)
142         bas     %r14,0(%r7,%r13):tls_ldcall:sl1
143         la      %r3,0(%r2,%r9)
144         l       %r4,.LC11-.LT1(%r13)
145         la      %r5,0(%r4,%r3)
146         l       %r4,.LC12-.LT1(%r13)
147         la      %r5,0(%r4,%r3)
148
149         /* LD against hidden and local variables */
150         l       %r2,.LC13-.LT1(%r13)
151         bas     %r14,0(%r7,%r13):tls_ldcall:sh1
152         la      %r3,0(%r2,%r9)
153         l       %r4,.LC14-.LT1(%r13)
154         la      %r5,0(%r4,%r3)
155         l       %r4,.LC13-.LT1(%r13)
156         la      %r5,0(%r5,%r3)
157         
158         /* LD against hidden but not local variables */
159         l       %r2,.LC16-.LT1(%r13)
160         bas     %r14,0(%r7,%r13):tls_ldcall:sH1
161         la      %r3,0(%r2,%r9)
162         l       %r3,.LC17-.LT1(%r13)
163         la      %r5,0(%r4,%r3)
164         l       %r4,.LC18-.LT1(%r13)
165         la      %r5,0(%r4,%r3)
166
167         /* IE against global var  */
168         l       %r3,.LC19-.LT1(%r13)
169         l       %r3,0(%r3,%r12):tls_load:sg2
170         la      %r3,0(%r3,%r3)
171
172         /* IE against local var  */
173         l       %r3,.LC20-.LT1(%r13)
174         l       %r4,0(%r3,%r12):tls_load:sl2
175         la      %r5,0(%r4,%r3)
176
177         /* IE against hidden and local var  */
178         l       %r3,.LC21-.LT1(%r13)
179         l       %r4,0(%r3,%r12):tls_load:sh2
180         la      %r5,0(%r4,%r3)
181         
182         /* IE against hidden but not local var  */
183         l       %r3,.LC22-.LT1(%r13)
184         l       %r4,0(%r3,%r12):tls_load:sH2
185         la      %r5,0(%r4,%r3)
186
187         /* IE against global var with small got access (no optimization) */
188         l       %r3,sg5@gotntpoff(%r12)
189         la      %r3,0(%r3,%r9)
190
191         /* IE against local var with small got access (no optimization) */
192         l       %r3,sl5@gotntpoff(%r12)
193         la      %r3,0(%r3,%r9)
194
195         /* IE against hidden and local var with small got access
196            (no optimization) */
197         l       %r3,sh5@gotntpoff(%r12)
198         la      %r3,0(%r3,%r9)
199
200         /* IE against hidden but not local var with small got access
201            (no optimization) */
202         l       %r3,sH5@gotntpoff(%r12)
203         la      %r3,0(%r3,%r9)
204
205         /* Function epilog */
206         lm      %r6,%r14,120(%r15)
207         br      %r14
208