1	.data
2	.align	4096
3	.section ".tbss"
4	.align	4
5bl1:	.word 0
6bl2:	.word 0
7bl3:	.word 0
8bl4:	.word 0
9bl5:	.word 0
10	.text
11	.align	4096
12	.globl	fn3
13	.type	fn3,#function
14	.proc	04
15fn3:
16	save	%sp, -160, %sp
17	.hidden	_GLOBAL_OFFSET_TABLE_
18	sethi	%hh(_GLOBAL_OFFSET_TABLE_), %l1
19	sethi	%lm(_GLOBAL_OFFSET_TABLE_), %l2
20	or	%l1, %hm(_GLOBAL_OFFSET_TABLE_), %l1
21	or	%l2, %lo(_GLOBAL_OFFSET_TABLE_), %l2
22	sllx	%l1, 32, %l1
23	add	%l1, %l2, %l1
24	nop;nop;nop;nop
25
26	/* IE against global var  */
27	sethi	%tie_hi22(sg1), %o3
28	add	%o3, %tie_lo10(sg1), %o3
29	ldx	[%l1 + %o3], %o2, %tie_ldx(sg1)
30	add	%g7, %o2, %o4, %tie_add(sg1)
31	nop;nop;nop;nop
32
33	/* direct %g7 access IE against global var  */
34	sethi	%tie_hi22(sg2), %o0
35	add	%o0, %tie_lo10(sg2), %o0
36	ldx	[%l1 + %o0], %o0, %tie_ldx(sg2)
37	lduw [%g7 + %o0], %o0, %tie_add(sg2)
38	nop;nop;nop;nop
39
40	/* IE against hidden var */
41	sethi	%tie_hi22(sh1), %o0
42	add	%o0, %tie_lo10(sh1), %o0
43	ldx	[%l1 + %o0], %o0, %tie_ldx(sh1)
44	add	%g7, %o0, %o0, %tie_add(sh1)
45	nop;nop;nop;nop
46
47	/* direct %g7 access IE against hidden var */
48	sethi	%tie_hi22(sh2), %o5
49	add	%o5, %tie_lo10(sh2), %o1
50	ldx	[%l1 + %o1], %o2, %tie_ldx(sh2)
51	stb	%o3, [%g7 + %o2], %tie_add(sh2)
52	nop;nop;nop;nop
53
54	/* IE against local var  */
55	sethi	%tie_hi22(bl1), %o0
56	add	%o0, %tie_lo10(bl1), %o0
57	ldx	[%l1 + %o0], %o0, %tie_ldx(bl1)
58	add	%g7, %o0, %o0, %tie_add(bl1)
59	nop;nop;nop;nop
60
61	/* direct %g7 access IE against local var  */
62	sethi	%tie_hi22(bl2), %o5
63	add	%o5, %tie_lo10(bl2), %o1
64	ldx	[%l1 + %o1], %o2, %tie_ldx(bl2)
65	stb	%o3, [%g7 + %o2], %tie_add(bl2)
66	nop;nop;nop;nop
67
68	/* LE, local var  */
69	sethi	%tle_hix22(bl3+1), %o2
70	xor     %o2, %tle_lox10(bl3+1), %o4
71	add	%g7, %o4, %o0
72	nop;nop;nop;nop
73
74	/* LE, hidden var, direct %g7 access  */
75	sethi	%tle_hix22(sh3), %o2
76	xor     %o2, %tle_lox10(sh3), %o2
77	ld	[%g7 + %o2], %o2
78	nop;nop;nop;nop
79
80	return	%i7 + 8
81	nop
82