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