177298Sobrien	.data
2218822Sdim	.align	4096
3218822Sdim	.section ".tbss"
477298Sobrien	.align	4
577298Sobrienbl1:	.word 0
6130561Sobrienbl2:	.word 0
777298Sobrienbl3:	.word 0
8130561Sobrienbl4:	.word 0
9130561Sobrienbl5:	.word 0
10130561Sobrien	.text
11130561Sobrien	.align	4096
1277298Sobrien	.globl	fn3
13130561Sobrien	.type	fn3,#function
14130561Sobrien	.proc	04
15130561Sobrienfn3:
16130561Sobrien	save	%sp, -104, %sp
1777298Sobrien	.hidden	_GLOBAL_OFFSET_TABLE_
18130561Sobrien	sethi	%hi(_GLOBAL_OFFSET_TABLE_), %l1
19130561Sobrien	or	%l1, %lo(_GLOBAL_OFFSET_TABLE_), %l1
20218822Sdim	nop;nop;nop;nop
2177298Sobrien
2277298Sobrien	/* IE against global var  */
2377298Sobrien	sethi	%tie_hi22(sg1), %o3
2477298Sobrien	add	%o3, %tie_lo10(sg1), %o3
2577298Sobrien	ld	[%l1 + %o3], %o2, %tie_ld(sg1)
2677298Sobrien	add	%g7, %o2, %o4, %tie_add(sg1)
27130561Sobrien	nop;nop;nop;nop
28130561Sobrien
2977298Sobrien	/* direct %g7 access IE against global var  */
3077298Sobrien	sethi	%tie_hi22(sg2), %o0
3177298Sobrien	add	%o0, %tie_lo10(sg2), %o0
3277298Sobrien	ld	[%l1 + %o0], %o0, %tie_ld(sg2)
33130561Sobrien	ld	[%g7 + %o0], %o0, %tie_add(sg2)
34130561Sobrien	nop;nop;nop;nop
35130561Sobrien
36130561Sobrien	/* IE against hidden var */
3777298Sobrien	sethi	%tie_hi22(sh1), %o0
38130561Sobrien	add	%o0, %tie_lo10(sh1), %o0
3977298Sobrien	ld	[%l1 + %o0], %o0, %tie_ld(sh1)
4077298Sobrien	add	%g7, %o0, %o0, %tie_add(sh1)
41130561Sobrien	nop;nop;nop;nop
42130561Sobrien
4377298Sobrien	/* direct %g7 access IE against hidden var */
4477298Sobrien	sethi	%tie_hi22(sh2), %o5
4577298Sobrien	add	%o5, %tie_lo10(sh2), %o1
4677298Sobrien	ld	[%l1 + %o1], %o2, %tie_ld(sh2)
4777298Sobrien	stb	%o3, [%g7 + %o2], %tie_add(sh2)
4877298Sobrien	nop;nop;nop;nop
4977298Sobrien
5078828Sobrien	/* IE against local var  */
5178828Sobrien	sethi	%tie_hi22(bl1), %o0
5289857Sobrien	add	%o0, %tie_lo10(bl1), %o0
5389857Sobrien	ld	[%l1 + %o0], %o0, %tie_ld(bl1)
5477298Sobrien	add	%g7, %o0, %o0, %tie_add(bl1)
5577298Sobrien	nop;nop;nop;nop
5677298Sobrien
57130561Sobrien	/* direct %g7 access IE against local var  */
58130561Sobrien	sethi	%tie_hi22(bl2), %o5
5977298Sobrien	add	%o5, %tie_lo10(bl2), %o1
60218822Sdim	ld	[%l1 + %o1], %o2, %tie_ld(bl2)
61218822Sdim	stb	%o3, [%g7 + %o2], %tie_add(bl2)
6277298Sobrien	nop;nop;nop;nop
6377298Sobrien
64130561Sobrien	/* LE, local var  */
65130561Sobrien	sethi	%tle_hix22(bl3+1), %o2
66130561Sobrien	xor     %o2, %tle_lox10(bl3+1), %o4
67130561Sobrien	add	%g7, %o4, %o0
68130561Sobrien	nop;nop;nop;nop
69130561Sobrien
7077298Sobrien	/* LE, hidden var, direct %g7 access  */
7189857Sobrien	sethi	%tle_hix22(sh3), %o2
7289857Sobrien	xor     %o2, %tle_lox10(sh3), %o2
7389857Sobrien	ld	[%g7 + %o2], %o2
7489857Sobrien	nop;nop;nop;nop
7589857Sobrien
7689857Sobrien	ret
7777298Sobrien	restore
7877298Sobrien