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	/* Function 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	/* Function 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
209