file config.texi was initially added on branch binutils-2_17-branch.
[binutils.git] / ld / testsuite / ld-s390 / tlspic1.s
blob28b9c3aeb28d6ddfe761f333ff3f061178a42204
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)
94 /* Extract TCB and load branch offset */
95 ear %r9,%a0
96 l %r7,.LC1-.LT1(%r13)
98 /* GD */
99 l %r2,.LC2-.LT1(%r13)
100 bas %r14,0(%r7,%r13):tls_gdcall:sg1
101 la %r2,0(%r2,%r9)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
187 /* IE against global var with small got access (no optimization) */
188 l %r3,sg5@gotntpoff(%r12)
189 la %r3,0(%r3,%r9)
191 /* IE against local var with small got access (no optimization) */
192 l %r3,sl5@gotntpoff(%r12)
193 la %r3,0(%r3,%r9)
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)
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)
205 /* Function epilog */
206 lm %r6,%r14,120(%r15)
207 br %r14