1        .section        .tbss,"awT",@nobits
2        .align 4
3        .type   l, @object
4        .size   l, 4
5l:
6        .zero   4
7        .align 4
8	.globl i
9        .type   i, @object
10        .size   i, 4
11i:
12        .zero   4
13	.text
14	.globl	_start
15_start:
16	call	#gettlsoff(l+1)
17	call	#gettlsoff(l+1+4096)
18	call	#gettlsoff(l+1+65536)
19
20	sethi.p	#gottlsdeschi(l+2), gr14
21	setlo	#gottlsdesclo(l+2), gr14
22	ldd	#tlsdesc(l+2)@(gr15, gr14), gr8
23	calll	#gettlsoff(l+2)@(gr8, gr0)
24
25	sethi.p	#gottlsdeschi(l+2+4096), gr14
26	setlo	#gottlsdesclo(l+2+4096), gr14
27	ldd	#tlsdesc(l+2+4096)@(gr15, gr14), gr8
28	calll	#gettlsoff(l+2+4096)@(gr8, gr0)
29
30	sethi.p	#gottlsdeschi(l+2+65536), gr14
31	setlo	#gottlsdesclo(l+2+65536), gr14
32	ldd	#tlsdesc(l+2+65536)@(gr15, gr14), gr8
33	calll	#gettlsoff(l+2+65536)@(gr8, gr0)
34
35	lddi.p	@(gr15, #gottlsdesc12(l+3)), gr8
36	setlos	#gottlsdesclo(l+3), gr14
37	calll	#gettlsoff(l+3)@(gr8, gr0)
38
39	lddi.p	@(gr15, #gottlsdesc12(l+3+4096)), gr8
40	setlos	#gottlsdesclo(l+3+4096), gr14
41	calll	#gettlsoff(l+3+4096)@(gr8, gr0)
42
43	lddi.p	@(gr15, #gottlsdesc12(l+3+65536)), gr8
44	setlos	#gottlsdesclo(l+3+65536), gr14
45	calll	#gettlsoff(l+3+65536)@(gr8, gr0)
46
47	sethi	#tlsmoffhi(l+4), gr9
48	setlo	#tlsmofflo(l+4), gr9
49
50	sethi	#tlsmoffhi(l+4+4096), gr9
51	setlo	#tlsmofflo(l+4+4096), gr9
52
53	sethi	#tlsmoffhi(l+4+65536), gr9
54	setlo	#tlsmofflo(l+4+65536), gr9
55
56	call	#gettlsoff(i+1)
57	call	#gettlsoff(i+1+4096)
58	call	#gettlsoff(i+1+65536)
59
60	sethi.p	#gottlsdeschi(i+2), gr14
61	setlo	#gottlsdesclo(i+2), gr14
62	ldd	#tlsdesc(i+2)@(gr15, gr14), gr8
63	calll	#gettlsoff(i+2)@(gr8, gr0)
64
65	sethi.p	#gottlsdeschi(i+2+4096), gr14
66	setlo	#gottlsdesclo(i+2+4096), gr14
67	ldd	#tlsdesc(i+2+4096)@(gr15, gr14), gr8
68	calll	#gettlsoff(i+2+4096)@(gr8, gr0)
69
70	sethi.p	#gottlsdeschi(i+2+65536), gr14
71	setlo	#gottlsdesclo(i+2+65536), gr14
72	ldd	#tlsdesc(i+2+65536)@(gr15, gr14), gr8
73	calll	#gettlsoff(i+2+65536)@(gr8, gr0)
74
75	lddi.p	@(gr15, #gottlsdesc12(i+3)), gr8
76	setlos	#gottlsdesclo(i+3), gr14
77	calll	#gettlsoff(i+3)@(gr8, gr0)
78
79	lddi.p	@(gr15, #gottlsdesc12(i+3+4096)), gr8
80	setlos	#gottlsdesclo(i+3+4096), gr14
81	calll	#gettlsoff(i+3+4096)@(gr8, gr0)
82
83	lddi.p	@(gr15, #gottlsdesc12(i+3+65536)), gr8
84	setlos	#gottlsdesclo(i+3+65536), gr14
85	calll	#gettlsoff(i+3+65536)@(gr8, gr0)
86
87	sethi	#tlsmoffhi(i+4), gr9
88	setlo	#tlsmofflo(i+4), gr9
89
90	sethi	#tlsmoffhi(i+4+4096), gr9
91	setlo	#tlsmofflo(i+4+4096), gr9
92
93	sethi	#tlsmoffhi(i+4+65536), gr9
94	setlo	#tlsmofflo(i+4+65536), gr9
95
96	call	#gettlsoff(0+1)
97	call	#gettlsoff(0+1+4096)
98	call	#gettlsoff(0+1+65536)
99
100	sethi.p	#gottlsdeschi(0+2), gr14
101	setlo	#gottlsdesclo(0+2), gr14
102	ldd	#tlsdesc(0+2)@(gr15, gr14), gr8
103	calll	#gettlsoff(0+2)@(gr8, gr0)
104
105	sethi.p	#gottlsdeschi(0+2+4096), gr14
106	setlo	#gottlsdesclo(0+2+4096), gr14
107	ldd	#tlsdesc(0+2+4096)@(gr15, gr14), gr8
108	calll	#gettlsoff(0+2+4096)@(gr8, gr0)
109
110	sethi.p	#gottlsdeschi(0+2+65536), gr14
111	setlo	#gottlsdesclo(0+2+65536), gr14
112	ldd	#tlsdesc(0+2+65536)@(gr15, gr14), gr8
113	calll	#gettlsoff(0+2+65536)@(gr8, gr0)
114
115	lddi.p	@(gr15, #gottlsdesc12(0+3)), gr8
116	setlos	#gottlsdesclo(0+3), gr14
117	calll	#gettlsoff(0+3)@(gr8, gr0)
118
119	lddi.p	@(gr15, #gottlsdesc12(0+3+4096)), gr8
120	setlos	#gottlsdesclo(0+3+4096), gr14
121	calll	#gettlsoff(0+3+4096)@(gr8, gr0)
122
123	lddi.p	@(gr15, #gottlsdesc12(0+3+65536)), gr8
124	setlos	#gottlsdesclo(0+3+65536), gr14
125	calll	#gettlsoff(0+3+65536)@(gr8, gr0)
126
127	sethi	#tlsmoffhi(0+4), gr9
128	setlo	#tlsmofflo(0+4), gr9
129
130	sethi	#tlsmoffhi(0+4+4096), gr9
131	setlo	#tlsmofflo(0+4+4096), gr9
132
133	sethi	#tlsmoffhi(0+4+65536), gr9
134	setlo	#tlsmofflo(0+4+65536), gr9
135
136	call	#gettlsoff(x+1)
137	call	#gettlsoff(x+1+4096)
138	call	#gettlsoff(x+1+65536)
139
140	sethi.p	#gottlsdeschi(x+2), gr14
141	setlo	#gottlsdesclo(x+2), gr14
142	ldd	#tlsdesc(x+2)@(gr15, gr14), gr8
143	calll	#gettlsoff(x+2)@(gr8, gr0)
144
145	sethi.p	#gottlsdeschi(x+2+4096), gr14
146	setlo	#gottlsdesclo(x+2+4096), gr14
147	ldd	#tlsdesc(x+2+4096)@(gr15, gr14), gr8
148	calll	#gettlsoff(x+2+4096)@(gr8, gr0)
149
150	sethi.p	#gottlsdeschi(x+2+65536), gr14
151	setlo	#gottlsdesclo(x+2+65536), gr14
152	ldd	#tlsdesc(x+2+65536)@(gr15, gr14), gr8
153	calll	#gettlsoff(x+2+65536)@(gr8, gr0)
154
155	lddi.p	@(gr15, #gottlsdesc12(x+3)), gr8
156	setlos	#gottlsdesclo(x+3), gr14
157	calll	#gettlsoff(x+3)@(gr8, gr0)
158
159	lddi.p	@(gr15, #gottlsdesc12(x+3+4096)), gr8
160	setlos	#gottlsdesclo(x+3+4096), gr14
161	calll	#gettlsoff(x+3+4096)@(gr8, gr0)
162
163	lddi.p	@(gr15, #gottlsdesc12(x+3+65536)), gr8
164	setlos	#gottlsdesclo(x+3+65536), gr14
165	calll	#gettlsoff(x+3+65536)@(gr8, gr0)
166
167.ifdef	static_tls
168	ldi	@(gr15, #gottlsoff12(l+1)), gr9
169	ldi	@(gr15, #gottlsoff12(l+1+65536)), gr9
170	ldi	@(gr15, #gottlsoff12(i+1)), gr9
171	ldi	@(gr15, #gottlsoff12(i+1+65536)), gr9
172	ldi	@(gr15, #gottlsoff12(0+1)), gr9
173	ldi	@(gr15, #gottlsoff12(0+1+65536)), gr9
174	ldi	@(gr15, #gottlsoff12(x+1)), gr9
175	ldi	@(gr15, #gottlsoff12(x+1+65536)), gr9
176
177	setlos	#gottlsofflo(l+1+4096), gr8
178	ld	#tlsoff(l+1+4096)@(gr15, gr8), gr9
179
180	sethi	#gottlsoffhi(i+1+4096), gr8
181	setlo	#gottlsofflo(i+1+4096), gr8
182	ld	#tlsoff(i+1+4096)@(gr15, gr8), gr9
183.endif
184