1	.section ".tdata", "awT", @progbits
2	.globl sg1, sg2
3	.globl sh1, sh2
4	.hidden sh1, sh2
5sg1:	.long 17
6sg2:	.long 18
7sl1:	.long 65
8sl2:	.long 66
9sh1:	.long 257
10sh2:	.long 258
11	.text
12	.align	1
13	.globl	fn1
14	.type	fn1,@function
15fn1:
16	mov.l	r12,@-r15
17	mov.l	r14,@-r15
18	sts.l	pr,@-r15
19	mova	.L3,r0
20	mov.l	.L3,r12
21	add	r0,r12
22	mov	r15,r14
23	nop;nop;nop;nop
24
25	! GD
26	mov.l	1f,r4
27	mova	2f,r0
28	mov.l	2f,r1
29	add	r0,r1
30	jsr	@r1
31	add	r12,r4
32	bra	3f
33	nop
34	.align	2
351:	.long	sg1@TLSGD
362:	.long	__tls_get_addr@PLT
373:
38	nop;nop;nop;nop
39
40	! GD -> IE because variable is referenced through @GOTTPOFF too
41	mov.l	1f,r4
42	mova	2f,r0
43	mov.l	2f,r1
44	add	r0,r1
45	jsr	@r1
46	add	r12,r4
47	bra	3f
48	nop
49	.align	2
501:	.long	sg2@TLSGD
512:	.long	__tls_get_addr@PLT
523:
53	nop;nop;nop;nop
54
55	! GD against local variable
56	mov.l	1f,r4
57	mova	2f,r0
58	mov.l	2f,r1
59	add	r0,r1
60	jsr	@r1
61	add	r12,r4
62	bra	3f
63	nop
64	.align	2
651:	.long	sl1@TLSGD
662:	.long	__tls_get_addr@PLT
673:
68	nop;nop;nop;nop
69
70	! GD -> IE against local variable referenced through @GOTTPOFF too
71	mov.l	1f,r4
72	mova	2f,r0
73	mov.l	2f,r1
74	add	r0,r1
75	jsr	@r1
76	add	r12,r4
77	bra	3f
78	nop
79	.align	2
801:	.long	sl2@TLSGD
812:	.long	__tls_get_addr@PLT
823:
83	nop;nop;nop;nop
84
85	! GD against hidden and local variable
86	mov.l	1f,r4
87	mova	2f,r0
88	mov.l	2f,r1
89	add	r0,r1
90	jsr	@r1
91	add	r12,r4
92	bra	3f
93	nop
94	.align	2
951:	.long	sh1@TLSGD
962:	.long	__tls_get_addr@PLT
973:
98	nop;nop;nop;nop
99
100	! GD -> IE against hidden and local variable referenced through
101	! @GOTTPOFF too
102	mov.l	1f,r4
103	mova	2f,r0
104	mov.l	2f,r1
105	add	r0,r1
106	jsr	@r1
107	add	r12,r4
108	bra	3f
109	nop
110	.align	2
1111:	.long	sh2@TLSGD
1122:	.long	__tls_get_addr@PLT
1133:
114	nop;nop;nop;nop
115
116	! GD against hidden but not local variable
117	mov.l	1f,r4
118	mova	2f,r0
119	mov.l	2f,r1
120	add	r0,r1
121	jsr	@r1
122	add	r12,r4
123	bra	3f
124	nop
125	.align	2
1261:	.long	sH1@TLSGD
1272:	.long	__tls_get_addr@PLT
1283:
129	nop;nop;nop;nop
130
131	! GD -> IE against hidden but not local variable referenced through
132	! @GOTTPOFF too
133	mov.l	1f,r4
134	mova	2f,r0
135	mov.l	2f,r1
136	add	r0,r1
137	jsr	@r1
138	add	r12,r4
139	bra	3f
140	nop
141	.align	2
1421:	.long	sH2@TLSGD
1432:	.long	__tls_get_addr@PLT
1443:
145	nop;nop;nop;nop
146
147	! LD
148	mov.l	1f,r4
149	mova	2f,r0
150	mov.l	2f,r1
151	add	r0,r1
152	jsr	@r1
153	add	r12,r4
154	bra	3f
155	nop
156	.align	2
1571:	.long	sl1@TLSLDM
1582:	.long	__tls_get_addr@PLT
1593:
160	nop;nop
161	mov.l	.L4,r1
162	add	r0,r1
163	nop;nop
164	mov.l	.L5,r2
165	add	r0,r2
166	nop;nop;nop;nop
167
168	! LD against hidden and local variables
169	mov.l	1f,r4
170	mova	2f,r0
171	mov.l	2f,r1
172	add	r0,r1
173	jsr	@r1
174	add	r12,r4
175	bra	3f
176	nop
177	.align	2
1781:	.long	sl1@TLSLDM
1792:	.long	__tls_get_addr@PLT
1803:
181	nop;nop
182	mov.l	.L6,r1
183	add	r0,r1
184	nop;nop
185	mov.l	.L7,r2
186	add	r0,r2
187	nop;nop;nop;nop
188
189	! LD against hidden but not local variables
190	mov.l	1f,r4
191	mova	2f,r0
192	mov.l	2f,r1
193	add	r0,r1
194	jsr	@r1
195	add	r12,r4
196	bra	3f
197	nop
198	.align	2
1991:	.long	sH1@TLSLDM
2002:	.long	__tls_get_addr@PLT
2013:
202	nop;nop
203	mov.l	.L8,r1
204	add	r0,r1
205	nop;nop
206	mov.l	.L9,r2
207	add	r0,r2
208	nop;nop;nop;nop
209
210	! @GOTTPOFF IE against global var
211	mov.l	1f,r0
212	stc	gbr,r1
213	mov.l	@(r0,r12),r0
214	bra	2f
215	add	r0,r1
216	.align	2
2171:	.long	sg2@GOTTPOFF
2182:
219	nop;nop;nop;nop
220
221	! @GOTTPOFF IE against local var
222	mov.l	1f,r0
223	stc	gbr,r1
224	mov.l	@(r0,r12),r0
225	bra	2f
226	add	r0,r1
227	.align	2
2281:	.long	sl2@GOTTPOFF
2292:
230	nop;nop;nop;nop
231
232	! @GOTTPOFF IE against hidden and local var
233	mov.l	1f,r0
234	stc	gbr,r1
235	mov.l	@(r0,r12),r0
236	bra	2f
237	add	r0,r1
238	.align	2
2391:	.long	sh2@GOTTPOFF
2402:
241	nop;nop;nop;nop
242
243	! @GOTTPOFF IE against hidden but not local var
244	mov.l	1f,r0
245	stc	gbr,r1
246	mov.l	@(r0,r12),r0
247	bra	2f
248	add	r0,r1
249	.align	2
2501:	.long	sH2@GOTTPOFF
2512:
252	nop;nop;nop;nop
253
254	mov	r14,r15
255	lds.l	@r15+,pr
256	mov.l	@r15+,r14
257	rts
258	mov.l	@r15+,r12
259
260	.align 2
261.L3:	.long	_GLOBAL_OFFSET_TABLE_
262.L4:	.long	sl1@DTPOFF
263.L5:	.long	sl1@DTPOFF + 4
264.L6:	.long	sh1@DTPOFF
265.L7:	.long	sh2@DTPOFF
266.L8:	.long	sH1@DTPOFF
267.L9:	.long	sH2@DTPOFF
268