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
6sg1:	.long 17
7sg2:	.long 18
8sg3:	.long 19
9sg4:	.long 20
10sg5:	.long 21
11sg6:	.long 22
12sg7:	.long 23
13sg8:	.long 24
14sl1:	.long 65
15sl2:	.long 66
16sl3:	.long 67
17sl4:	.long 68
18sl5:	.long 69
19sl6:	.long 70
20sl7:	.long 71
21sl8:	.long 72
22sh1:	.long 257
23sh2:	.long 258
24sh3:	.long 259
25sh4:	.long 260
26sh5:	.long 261
27sh6:	.long 262
28sh7:	.long 263
29sh8:	.long 264
30	.text
31	.globl	fn1
32	.type	fn1,@function
33	.balign	64
34fn1:
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)
88
89	/* Extract TCB */
90	ear	%r9,%a0
91	sllg	%r9,%r4,32
92	ear	%r9,%a1
93
94	/* GD */
95	lg	%r2,.LC2-.LT1(%r13)
96	brasl	%r14,__tls_get_offset@plt:tls_gdcall:sg1
97	la	%r2,0(%r2,%r9)
98
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)
103
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)
108
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)
113
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)
118
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)
124
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)
129
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)
135
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)
144
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)
153
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)
162
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)
167
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)
172
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)
177
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)
182
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)
187
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)
192
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)
197
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)
202
203	/* IE against global var with small got access (no optimization) */
204	lg	%r3,sg5@gotntpoff(%r12)
205	la	%r3,0(%r3,%r9)
206
207	/* IE against local var with small got access (no optimization) */
208	lg	%r3,sl5@gotntpoff(%r12)
209	la	%r3,0(%r3,%r9)
210
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)
215
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)
220
221	/* Function epilog */
222	lmg	%r6,%r14,208(%r15)
223	br	%r14
224
225