* elf32-spu.c (build_stub): Fix malloc under-allocation.
[binutils.git] / ld / testsuite / ld-s390 / tlspic1_64.s
blob4e500080cb6887a4dd8978451a4914393550dadf
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 stmg %r6,%r14,48(%r15)
37 bras %r13,.LTN1
38 /* Literal pool */
39 .LT1:
40 .LC2:
41 .quad sg1@tlsgd
42 .LC3:
43 .quad sg2@tlsgd
44 .LC4:
45 .quad sl1@tlsgd
46 .LC5:
47 .quad sl2@tlsgd
48 .LC6:
49 .quad sh1@tlsgd
50 .LC7:
51 .quad sh2@tlsgd
52 .LC8:
53 .quad sH1@tlsgd
54 .LC9:
55 .quad sH2@tlsgd
56 .LC10:
57 .quad sl1@tlsldm
58 .LC11:
59 .quad sl1@dtpoff
60 .LC12:
61 .quad sl2@dtpoff
62 .LC13:
63 .quad sh1@tlsldm
64 .LC14:
65 .quad sh1@dtpoff
66 .LC15:
67 .quad sh2@dtpoff
68 .LC16:
69 .quad sH1@tlsldm
70 .LC17:
71 .quad sH1@dtpoff
72 .LC18:
73 .quad sH2@dtpoff
74 .LC19:
75 .quad sg2@gotntpoff
76 .LC20:
77 .quad sl2@gotntpoff
78 .LC21:
79 .quad sh2@gotntpoff
80 .LC22:
81 .quad sH2@gotntpoff
82 .LTN1:
83 /* Funtion prolog */
84 lgr %r14,%r15
85 larl %r12,_GLOBAL_OFFSET_TABLE_
86 aghi %r15,-160
87 stg %r14,0(%r14)
89 /* Extract TCB */
90 ear %r9,%a0
91 sllg %r9,%r4,32
92 ear %r9,%a1
94 /* GD */
95 lg %r2,.LC2-.LT1(%r13)
96 brasl %r14,__tls_get_offset@plt:tls_gdcall:sg1
97 la %r2,0(%r2,%r9)
99 /* GD -> IE because variable is referenced through IE too */
100 lg %r2,.LC3-.LT1(%r13)
101 brasl %r14,__tls_get_offset@plt:tls_gdcall:sg2
102 la %r2,0(%r2,%r9)
104 /* GD against local variable */
105 lg %r2,.LC4-.LT1(%r13)
106 brasl %r14,__tls_get_offset@plt:tls_gdcall:sl1
107 la %r2,0(%r2,%r9)
109 /* GD -> IE against local variable referenced through IE too */
110 lg %r2,.LC5-.LT1(%r13)
111 brasl %r14,__tls_get_offset@plt:tls_gdcall:sl2
112 la %r2,0(%r2,%r9)
114 /* GD against hidden and local variable */
115 lg %r2,.LC6-.LT1(%r13)
116 brasl %r14,__tls_get_offset@plt:tls_gdcall:sh1
117 la %r2,0(%r2,%r9)
119 /* GD -> IE against hidden and local variable referenced through
120 IE too */
121 lg %r2,.LC7-.LT1(%r13)
122 brasl %r14,__tls_get_offset@plt:tls_gdcall:sh2
123 la %r2,0(%r2,%r9)
125 /* GD against hidden but not local variable */
126 lg %r2,.LC8-.LT1(%r13)
127 brasl %r14,__tls_get_offset@plt:tls_gdcall:sH1
128 la %r2,0(%r2,%r9)
130 /* GD -> IE against hidden but not local variable referenced through
131 IE too */
132 lg %r2,.LC9-.LT1(%r13)
133 brasl %r14,__tls_get_offset@plt:tls_gdcall:sH2
134 la %r2,0(%r2,%r9)
136 /* LD */
137 lg %r2,.LC10-.LT1(%r13)
138 brasl %r14,__tls_get_offset@plt:tls_ldcall:sl1
139 la %r3,0(%r2,%r9)
140 lg %r4,.LC11-.LT1(%r13)
141 la %r5,0(%r4,%r3)
142 lg %r4,.LC12-.LT1(%r13)
143 la %r5,0(%r4,%r3)
145 /* LD against hidden and local variables */
146 lg %r2,.LC13-.LT1(%r13)
147 brasl %r14,__tls_get_offset@plt:tls_ldcall:sh1
148 la %r3,0(%r2,%r9)
149 lg %r4,.LC14-.LT1(%r13)
150 la %r5,0(%r4,%r3)
151 lg %r4,.LC15-.LT1(%r13)
152 la %r5,0(%r4,%r3)
154 /* LD against hidden but not local variables */
155 lg %r2,.LC16-.LT1(%r13)
156 brasl %r14,__tls_get_offset@plt:tls_ldcall:sH1
157 la %r3,0(%r2,%r9)
158 lg %r4,.LC17-.LT1(%r13)
159 la %r5,0(%r4,%r3)
160 lg %r4,.LC18-.LT1(%r13)
161 la %r5,0(%r4,%r3)
163 /* IE against global var */
164 lg %r3,.LC19-.LT1(%r13)
165 lg %r3,0(%r3,%r12):tls_load:sg2
166 la %r3,0(%r3,%r9)
168 /* IE against local var */
169 lg %r3,.LC20-.LT1(%r13)
170 lg %r4,0(%r3,%r12):tls_load:sl2
171 la %r5,0(%r4,%r9)
173 /* IE against hidden and local var */
174 lg %r3,.LC21-.LT1(%r13)
175 lg %r4,0(%r3,%r12):tls_load:sh2
176 la %r5,0(%r4,%r9)
178 /* IE against hidden but not local var */
179 lg %r3,.LC22-.LT1(%r13)
180 lg %r4,0(%r3,%r12):tls_load:sH2
181 la %r5,0(%r4,%r9)
183 /* IE against global var with larl got access */
184 larl %r3,sg5@indntpoff
185 lg %r3,0(%r3,%r12):tls_load:sg2
186 la %r3,0(%r3,%r9)
188 /* IE against local var with larl got access */
189 larl %r3,sl5@indntpoff
190 lg %r4,0(%r3,%r12):tls_load:sl2
191 la %r5,0(%r4,%r9)
193 /* IE against hidden and local var with larl got access */
194 larl %r3,sh5@indntpoff
195 lg %r4,0(%r3,%r12):tls_load:sh2
196 la %r5,0(%r4,%r9)
198 /* IE against hidden but not local var with larl got access */
199 larl %r3,sH5@indntpoff
200 lg %r4,0(%r3,%r12):tls_load:sH2
201 la %r5,0(%r4,%r9)
203 /* IE against global var with small got access (no optimization) */
204 lg %r3,sg5@gotntpoff(%r12)
205 la %r3,0(%r3,%r9)
207 /* IE against local var with small got access (no optimization) */
208 lg %r3,sl5@gotntpoff(%r12)
209 la %r3,0(%r3,%r9)
211 /* IE against hidden and local var with small got access
212 (no optimization) */
213 lg %r3,sh5@gotntpoff(%r12)
214 la %r3,0(%r3,%r9)
216 /* IE against hidden but not local var with small got access
217 (no optimization) */
218 lg %r3,sH5@gotntpoff(%r12)
219 la %r3,0(%r3,%r9)
221 /* Function epilog */
222 lmg %r6,%r14,208(%r15)
223 br %r14