1.section	".text",#alloc,#execinstr
2
3.align	32
4.globl	sha1_block_data_order
5sha1_block_data_order:
6	save	%sp,-112,%sp
7	sllx	%i2,6,%i2
8	add	%i1,%i2,%i2
9
10	or	%g0,1,%g2
11	sllx	%g2,32,%g2
12	or	%g2,1,%g2
13
14	ld	[%i0+0],%l0
15	ld	[%i0+4],%l1
16	ld	[%i0+8],%l2
17	ld	[%i0+12],%l3
18	ld	[%i0+16],%l4
19	andn	%i1,7,%i3
20
21	sethi	%hi(0x5a827999),%l5
22	or	%l5,%lo(0x5a827999),%l5
23	sethi	%hi(0x6ed9eba1),%l6
24	or	%l6,%lo(0x6ed9eba1),%l6
25	sethi	%hi(0x8f1bbcdc),%l7
26	or	%l7,%lo(0x8f1bbcdc),%l7
27	sethi	%hi(0xca62c1d6),%g5
28	or	%g5,%lo(0xca62c1d6),%g5
29
30.Lloop:
31	ldx	[%i3+0],%o0
32	ldx	[%i3+16],%o2
33	ldx	[%i3+32],%o4
34	ldx	[%i3+48],%g1
35	and	%i1,7,%i4
36	ldx	[%i3+8],%o1
37	sll	%i4,3,%i4
38	ldx	[%i3+24],%o3
39	subcc	%g0,%i4,%i5	! should be 64-%i4, but -%i4 works too
40	ldx	[%i3+40],%o5
41	bz,pt	%icc,.Laligned
42	ldx	[%i3+56],%o7
43
44	sllx	%o0,%i4,%o0
45	ldx	[%i3+64],%g3
46	srlx	%o1,%i5,%g4
47	sllx	%o1,%i4,%o1
48	or	%g4,%o0,%o0
49	srlx	%o2,%i5,%g4
50	sllx	%o2,%i4,%o2
51	or	%g4,%o1,%o1
52	srlx	%o3,%i5,%g4
53	sllx	%o3,%i4,%o3
54	or	%g4,%o2,%o2
55	srlx	%o4,%i5,%g4
56	sllx	%o4,%i4,%o4
57	or	%g4,%o3,%o3
58	srlx	%o5,%i5,%g4
59	sllx	%o5,%i4,%o5
60	or	%g4,%o4,%o4
61	srlx	%g1,%i5,%g4
62	sllx	%g1,%i4,%g1
63	or	%g4,%o5,%o5
64	srlx	%o7,%i5,%g4
65	sllx	%o7,%i4,%o7
66	or	%g4,%g1,%g1
67	srlx	%g3,%i5,%g3
68	or	%g3,%o7,%o7
69.Laligned:
70	srlx	%o0,32,%g4
71	sll	%l0,5,%i3		!! 0
72	add	%l5,%l4,%l4
73	srl	%l0,27,%i4
74	add	%i3,%l4,%l4
75	and	%l2,%l1,%i3
76	add	%i4,%l4,%l4
77	sll	%l1,30,%i5
78	andn	%l3,%l1,%i4
79	srl	%l1,2,%l1
80	or	%i4,%i3,%i4
81	or	%i5,%l1,%l1
82	add	%g4,%l4,%l4
83	add	%i4,%l4,%l4
84	sll	%l4,5,%i3		!! 1
85	add	%l5,%l3,%l3
86	srl	%l4,27,%i4
87	add	%i3,%l3,%l3
88	and	%l1,%l0,%i3
89	add	%i4,%l3,%l3
90	sll	%l0,30,%i5
91	andn	%l2,%l0,%i4
92	srl	%l0,2,%l0
93	or	%i4,%i3,%i4
94	or	%i5,%l0,%l0
95	add	%o0,%l3,%l3
96	srlx	%o1,32,%g4
97	add	%i4,%l3,%l3
98	sll	%l3,5,%i3		!! 2
99	add	%l5,%l2,%l2
100	srl	%l3,27,%i4
101	add	%i3,%l2,%l2
102	and	%l0,%l4,%i3
103	add	%i4,%l2,%l2
104	sll	%l4,30,%i5
105	andn	%l1,%l4,%i4
106	srl	%l4,2,%l4
107	or	%i4,%i3,%i4
108	or	%i5,%l4,%l4
109	add	%g4,%l2,%l2
110	add	%i4,%l2,%l2
111	sll	%l2,5,%i3		!! 3
112	add	%l5,%l1,%l1
113	srl	%l2,27,%i4
114	add	%i3,%l1,%l1
115	and	%l4,%l3,%i3
116	add	%i4,%l1,%l1
117	sll	%l3,30,%i5
118	andn	%l0,%l3,%i4
119	srl	%l3,2,%l3
120	or	%i4,%i3,%i4
121	or	%i5,%l3,%l3
122	add	%o1,%l1,%l1
123	srlx	%o2,32,%g4
124	add	%i4,%l1,%l1
125	sll	%l1,5,%i3		!! 4
126	add	%l5,%l0,%l0
127	srl	%l1,27,%i4
128	add	%i3,%l0,%l0
129	and	%l3,%l2,%i3
130	add	%i4,%l0,%l0
131	sll	%l2,30,%i5
132	andn	%l4,%l2,%i4
133	srl	%l2,2,%l2
134	or	%i4,%i3,%i4
135	or	%i5,%l2,%l2
136	add	%g4,%l0,%l0
137	add	%i4,%l0,%l0
138	sll	%l0,5,%i3		!! 5
139	add	%l5,%l4,%l4
140	srl	%l0,27,%i4
141	add	%i3,%l4,%l4
142	and	%l2,%l1,%i3
143	add	%i4,%l4,%l4
144	sll	%l1,30,%i5
145	andn	%l3,%l1,%i4
146	srl	%l1,2,%l1
147	or	%i4,%i3,%i4
148	or	%i5,%l1,%l1
149	add	%o2,%l4,%l4
150	srlx	%o3,32,%g4
151	add	%i4,%l4,%l4
152	sll	%l4,5,%i3		!! 6
153	add	%l5,%l3,%l3
154	srl	%l4,27,%i4
155	add	%i3,%l3,%l3
156	and	%l1,%l0,%i3
157	add	%i4,%l3,%l3
158	sll	%l0,30,%i5
159	andn	%l2,%l0,%i4
160	srl	%l0,2,%l0
161	or	%i4,%i3,%i4
162	or	%i5,%l0,%l0
163	add	%g4,%l3,%l3
164	add	%i4,%l3,%l3
165	sll	%l3,5,%i3		!! 7
166	add	%l5,%l2,%l2
167	srl	%l3,27,%i4
168	add	%i3,%l2,%l2
169	and	%l0,%l4,%i3
170	add	%i4,%l2,%l2
171	sll	%l4,30,%i5
172	andn	%l1,%l4,%i4
173	srl	%l4,2,%l4
174	or	%i4,%i3,%i4
175	or	%i5,%l4,%l4
176	add	%o3,%l2,%l2
177	srlx	%o4,32,%g4
178	add	%i4,%l2,%l2
179	sll	%l2,5,%i3		!! 8
180	add	%l5,%l1,%l1
181	srl	%l2,27,%i4
182	add	%i3,%l1,%l1
183	and	%l4,%l3,%i3
184	add	%i4,%l1,%l1
185	sll	%l3,30,%i5
186	andn	%l0,%l3,%i4
187	srl	%l3,2,%l3
188	or	%i4,%i3,%i4
189	or	%i5,%l3,%l3
190	add	%g4,%l1,%l1
191	add	%i4,%l1,%l1
192	sll	%l1,5,%i3		!! 9
193	add	%l5,%l0,%l0
194	srl	%l1,27,%i4
195	add	%i3,%l0,%l0
196	and	%l3,%l2,%i3
197	add	%i4,%l0,%l0
198	sll	%l2,30,%i5
199	andn	%l4,%l2,%i4
200	srl	%l2,2,%l2
201	or	%i4,%i3,%i4
202	or	%i5,%l2,%l2
203	add	%o4,%l0,%l0
204	srlx	%o5,32,%g4
205	add	%i4,%l0,%l0
206	sll	%l0,5,%i3		!! 10
207	add	%l5,%l4,%l4
208	srl	%l0,27,%i4
209	add	%i3,%l4,%l4
210	and	%l2,%l1,%i3
211	add	%i4,%l4,%l4
212	sll	%l1,30,%i5
213	andn	%l3,%l1,%i4
214	srl	%l1,2,%l1
215	or	%i4,%i3,%i4
216	or	%i5,%l1,%l1
217	add	%g4,%l4,%l4
218	add	%i4,%l4,%l4
219	sll	%l4,5,%i3		!! 11
220	add	%l5,%l3,%l3
221	srl	%l4,27,%i4
222	add	%i3,%l3,%l3
223	and	%l1,%l0,%i3
224	add	%i4,%l3,%l3
225	sll	%l0,30,%i5
226	andn	%l2,%l0,%i4
227	srl	%l0,2,%l0
228	or	%i4,%i3,%i4
229	or	%i5,%l0,%l0
230	add	%o5,%l3,%l3
231	srlx	%g1,32,%g4
232	add	%i4,%l3,%l3
233	sll	%l3,5,%i3		!! 12
234	add	%l5,%l2,%l2
235	srl	%l3,27,%i4
236	add	%i3,%l2,%l2
237	and	%l0,%l4,%i3
238	add	%i4,%l2,%l2
239	sll	%l4,30,%i5
240	andn	%l1,%l4,%i4
241	srl	%l4,2,%l4
242	or	%i4,%i3,%i4
243	or	%i5,%l4,%l4
244	add	%g4,%l2,%l2
245	add	%i4,%l2,%l2
246	sll	%l2,5,%i3		!! 13
247	add	%l5,%l1,%l1
248	srl	%l2,27,%i4
249	add	%i3,%l1,%l1
250	and	%l4,%l3,%i3
251	add	%i4,%l1,%l1
252	sll	%l3,30,%i5
253	andn	%l0,%l3,%i4
254	srl	%l3,2,%l3
255	or	%i4,%i3,%i4
256	or	%i5,%l3,%l3
257	add	%g1,%l1,%l1
258	srlx	%o7,32,%g4
259	add	%i4,%l1,%l1
260	sll	%l1,5,%i3		!! 14
261	add	%l5,%l0,%l0
262	srl	%l1,27,%i4
263	add	%i3,%l0,%l0
264	and	%l3,%l2,%i3
265	add	%i4,%l0,%l0
266	sll	%l2,30,%i5
267	andn	%l4,%l2,%i4
268	srl	%l2,2,%l2
269	or	%i4,%i3,%i4
270	or	%i5,%l2,%l2
271	add	%g4,%l0,%l0
272	add	%i4,%l0,%l0
273	sll	%l0,5,%i3		!! 15
274	add	%l5,%l4,%l4
275	srl	%l0,27,%i4
276	add	%i3,%l4,%l4
277	and	%l2,%l1,%i3
278	add	%i4,%l4,%l4
279	sll	%l1,30,%i5
280	andn	%l3,%l1,%i4
281	srl	%l1,2,%l1
282	or	%i4,%i3,%i4
283	or	%i5,%l1,%l1
284	add	%o7,%l4,%l4
285	add	%i4,%l4,%l4
286	sllx	%g1,32,%g4	! Xupdate(16)
287	xor	%o1,%o0,%o0
288	srlx	%o7,32,%i4
289	xor	%o4,%o0,%o0
290	sll	%l4,5,%i3		!! 16
291	or	%i4,%g4,%g4
292	add	%l5,%l3,%l3		!!
293	xor	%g4,%o0,%o0
294	srlx	%o0,31,%g4
295	add	%o0,%o0,%o0
296	and	%g4,%g2,%g4
297	andn	%o0,%g2,%o0
298	srl	%l4,27,%i4		!!
299	or	%g4,%o0,%o0
300	srlx	%o0,32,%g4
301	add	%i3,%l3,%l3		!!
302	and	%l1,%l0,%i3
303	add	%i4,%l3,%l3
304	sll	%l0,30,%i5
305	add	%g4,%l3,%l3
306	andn	%l2,%l0,%i4
307	srl	%l0,2,%l0
308	or	%i4,%i3,%i4
309	or	%i5,%l0,%l0
310	add	%i4,%l3,%l3
311	sll	%l3,5,%i3		!! 17
312	add	%l5,%l2,%l2
313	srl	%l3,27,%i4
314	add	%i3,%l2,%l2		!!
315	and	%l0,%l4,%i3
316	add	%i4,%l2,%l2
317	sll	%l4,30,%i5
318	add	%o0,%l2,%l2
319	andn	%l1,%l4,%i4
320	srl	%l4,2,%l4
321	or	%i4,%i3,%i4
322	or	%i5,%l4,%l4
323	add	%i4,%l2,%l2
324	sllx	%o7,32,%g4	! Xupdate(18)
325	xor	%o2,%o1,%o1
326	srlx	%o0,32,%i4
327	xor	%o5,%o1,%o1
328	sll	%l2,5,%i3		!! 18
329	or	%i4,%g4,%g4
330	add	%l5,%l1,%l1		!!
331	xor	%g4,%o1,%o1
332	srlx	%o1,31,%g4
333	add	%o1,%o1,%o1
334	and	%g4,%g2,%g4
335	andn	%o1,%g2,%o1
336	srl	%l2,27,%i4		!!
337	or	%g4,%o1,%o1
338	srlx	%o1,32,%g4
339	add	%i3,%l1,%l1		!!
340	and	%l4,%l3,%i3
341	add	%i4,%l1,%l1
342	sll	%l3,30,%i5
343	add	%g4,%l1,%l1
344	andn	%l0,%l3,%i4
345	srl	%l3,2,%l3
346	or	%i4,%i3,%i4
347	or	%i5,%l3,%l3
348	add	%i4,%l1,%l1
349	sll	%l1,5,%i3		!! 19
350	add	%l5,%l0,%l0
351	srl	%l1,27,%i4
352	add	%i3,%l0,%l0		!!
353	and	%l3,%l2,%i3
354	add	%i4,%l0,%l0
355	sll	%l2,30,%i5
356	add	%o1,%l0,%l0
357	andn	%l4,%l2,%i4
358	srl	%l2,2,%l2
359	or	%i4,%i3,%i4
360	or	%i5,%l2,%l2
361	add	%i4,%l0,%l0
362	sllx	%o0,32,%g4	! Xupdate(20)
363	xor	%o3,%o2,%o2
364	srlx	%o1,32,%i4
365	xor	%g1,%o2,%o2
366	sll	%l0,5,%i3		!! 20
367	or	%i4,%g4,%g4
368	add	%l6,%l4,%l4		!!
369	xor	%g4,%o2,%o2
370	srlx	%o2,31,%g4
371	add	%o2,%o2,%o2
372	and	%g4,%g2,%g4
373	andn	%o2,%g2,%o2
374	srl	%l0,27,%i4		!!
375	or	%g4,%o2,%o2
376	srlx	%o2,32,%g4
377	add	%i3,%l4,%l4		!!
378	xor	%l2,%l1,%i3
379	add	%i4,%l4,%l4
380	sll	%l1,30,%i5
381	xor	%l3,%i3,%i4
382	srl	%l1,2,%l1
383	add	%i4,%l4,%l4
384	or	%i5,%l1,%l1
385	add	%g4,%l4,%l4
386	sll	%l4,5,%i3		!! 21
387	add	%l6,%l3,%l3
388	srl	%l4,27,%i4
389	add	%i3,%l3,%l3		!!
390	xor	%l1,%l0,%i3
391	add	%i4,%l3,%l3
392	sll	%l0,30,%i5
393	xor	%l2,%i3,%i4
394	srl	%l0,2,%l0
395	add	%i4,%l3,%l3
396	or	%i5,%l0,%l0
397	add	%o2,%l3,%l3
398	sllx	%o1,32,%g4	! Xupdate(22)
399	xor	%o4,%o3,%o3
400	srlx	%o2,32,%i4
401	xor	%o7,%o3,%o3
402	sll	%l3,5,%i3		!! 22
403	or	%i4,%g4,%g4
404	add	%l6,%l2,%l2		!!
405	xor	%g4,%o3,%o3
406	srlx	%o3,31,%g4
407	add	%o3,%o3,%o3
408	and	%g4,%g2,%g4
409	andn	%o3,%g2,%o3
410	srl	%l3,27,%i4		!!
411	or	%g4,%o3,%o3
412	srlx	%o3,32,%g4
413	add	%i3,%l2,%l2		!!
414	xor	%l0,%l4,%i3
415	add	%i4,%l2,%l2
416	sll	%l4,30,%i5
417	xor	%l1,%i3,%i4
418	srl	%l4,2,%l4
419	add	%i4,%l2,%l2
420	or	%i5,%l4,%l4
421	add	%g4,%l2,%l2
422	sll	%l2,5,%i3		!! 23
423	add	%l6,%l1,%l1
424	srl	%l2,27,%i4
425	add	%i3,%l1,%l1		!!
426	xor	%l4,%l3,%i3
427	add	%i4,%l1,%l1
428	sll	%l3,30,%i5
429	xor	%l0,%i3,%i4
430	srl	%l3,2,%l3
431	add	%i4,%l1,%l1
432	or	%i5,%l3,%l3
433	add	%o3,%l1,%l1
434	sllx	%o2,32,%g4	! Xupdate(24)
435	xor	%o5,%o4,%o4
436	srlx	%o3,32,%i4
437	xor	%o0,%o4,%o4
438	sll	%l1,5,%i3		!! 24
439	or	%i4,%g4,%g4
440	add	%l6,%l0,%l0		!!
441	xor	%g4,%o4,%o4
442	srlx	%o4,31,%g4
443	add	%o4,%o4,%o4
444	and	%g4,%g2,%g4
445	andn	%o4,%g2,%o4
446	srl	%l1,27,%i4		!!
447	or	%g4,%o4,%o4
448	srlx	%o4,32,%g4
449	add	%i3,%l0,%l0		!!
450	xor	%l3,%l2,%i3
451	add	%i4,%l0,%l0
452	sll	%l2,30,%i5
453	xor	%l4,%i3,%i4
454	srl	%l2,2,%l2
455	add	%i4,%l0,%l0
456	or	%i5,%l2,%l2
457	add	%g4,%l0,%l0
458	sll	%l0,5,%i3		!! 25
459	add	%l6,%l4,%l4
460	srl	%l0,27,%i4
461	add	%i3,%l4,%l4		!!
462	xor	%l2,%l1,%i3
463	add	%i4,%l4,%l4
464	sll	%l1,30,%i5
465	xor	%l3,%i3,%i4
466	srl	%l1,2,%l1
467	add	%i4,%l4,%l4
468	or	%i5,%l1,%l1
469	add	%o4,%l4,%l4
470	sllx	%o3,32,%g4	! Xupdate(26)
471	xor	%g1,%o5,%o5
472	srlx	%o4,32,%i4
473	xor	%o1,%o5,%o5
474	sll	%l4,5,%i3		!! 26
475	or	%i4,%g4,%g4
476	add	%l6,%l3,%l3		!!
477	xor	%g4,%o5,%o5
478	srlx	%o5,31,%g4
479	add	%o5,%o5,%o5
480	and	%g4,%g2,%g4
481	andn	%o5,%g2,%o5
482	srl	%l4,27,%i4		!!
483	or	%g4,%o5,%o5
484	srlx	%o5,32,%g4
485	add	%i3,%l3,%l3		!!
486	xor	%l1,%l0,%i3
487	add	%i4,%l3,%l3
488	sll	%l0,30,%i5
489	xor	%l2,%i3,%i4
490	srl	%l0,2,%l0
491	add	%i4,%l3,%l3
492	or	%i5,%l0,%l0
493	add	%g4,%l3,%l3
494	sll	%l3,5,%i3		!! 27
495	add	%l6,%l2,%l2
496	srl	%l3,27,%i4
497	add	%i3,%l2,%l2		!!
498	xor	%l0,%l4,%i3
499	add	%i4,%l2,%l2
500	sll	%l4,30,%i5
501	xor	%l1,%i3,%i4
502	srl	%l4,2,%l4
503	add	%i4,%l2,%l2
504	or	%i5,%l4,%l4
505	add	%o5,%l2,%l2
506	sllx	%o4,32,%g4	! Xupdate(28)
507	xor	%o7,%g1,%g1
508	srlx	%o5,32,%i4
509	xor	%o2,%g1,%g1
510	sll	%l2,5,%i3		!! 28
511	or	%i4,%g4,%g4
512	add	%l6,%l1,%l1		!!
513	xor	%g4,%g1,%g1
514	srlx	%g1,31,%g4
515	add	%g1,%g1,%g1
516	and	%g4,%g2,%g4
517	andn	%g1,%g2,%g1
518	srl	%l2,27,%i4		!!
519	or	%g4,%g1,%g1
520	srlx	%g1,32,%g4
521	add	%i3,%l1,%l1		!!
522	xor	%l4,%l3,%i3
523	add	%i4,%l1,%l1
524	sll	%l3,30,%i5
525	xor	%l0,%i3,%i4
526	srl	%l3,2,%l3
527	add	%i4,%l1,%l1
528	or	%i5,%l3,%l3
529	add	%g4,%l1,%l1
530	sll	%l1,5,%i3		!! 29
531	add	%l6,%l0,%l0
532	srl	%l1,27,%i4
533	add	%i3,%l0,%l0		!!
534	xor	%l3,%l2,%i3
535	add	%i4,%l0,%l0
536	sll	%l2,30,%i5
537	xor	%l4,%i3,%i4
538	srl	%l2,2,%l2
539	add	%i4,%l0,%l0
540	or	%i5,%l2,%l2
541	add	%g1,%l0,%l0
542	sllx	%o5,32,%g4	! Xupdate(30)
543	xor	%o0,%o7,%o7
544	srlx	%g1,32,%i4
545	xor	%o3,%o7,%o7
546	sll	%l0,5,%i3		!! 30
547	or	%i4,%g4,%g4
548	add	%l6,%l4,%l4		!!
549	xor	%g4,%o7,%o7
550	srlx	%o7,31,%g4
551	add	%o7,%o7,%o7
552	and	%g4,%g2,%g4
553	andn	%o7,%g2,%o7
554	srl	%l0,27,%i4		!!
555	or	%g4,%o7,%o7
556	srlx	%o7,32,%g4
557	add	%i3,%l4,%l4		!!
558	xor	%l2,%l1,%i3
559	add	%i4,%l4,%l4
560	sll	%l1,30,%i5
561	xor	%l3,%i3,%i4
562	srl	%l1,2,%l1
563	add	%i4,%l4,%l4
564	or	%i5,%l1,%l1
565	add	%g4,%l4,%l4
566	sll	%l4,5,%i3		!! 31
567	add	%l6,%l3,%l3
568	srl	%l4,27,%i4
569	add	%i3,%l3,%l3		!!
570	xor	%l1,%l0,%i3
571	add	%i4,%l3,%l3
572	sll	%l0,30,%i5
573	xor	%l2,%i3,%i4
574	srl	%l0,2,%l0
575	add	%i4,%l3,%l3
576	or	%i5,%l0,%l0
577	add	%o7,%l3,%l3
578	sllx	%g1,32,%g4	! Xupdate(32)
579	xor	%o1,%o0,%o0
580	srlx	%o7,32,%i4
581	xor	%o4,%o0,%o0
582	sll	%l3,5,%i3		!! 32
583	or	%i4,%g4,%g4
584	add	%l6,%l2,%l2		!!
585	xor	%g4,%o0,%o0
586	srlx	%o0,31,%g4
587	add	%o0,%o0,%o0
588	and	%g4,%g2,%g4
589	andn	%o0,%g2,%o0
590	srl	%l3,27,%i4		!!
591	or	%g4,%o0,%o0
592	srlx	%o0,32,%g4
593	add	%i3,%l2,%l2		!!
594	xor	%l0,%l4,%i3
595	add	%i4,%l2,%l2
596	sll	%l4,30,%i5
597	xor	%l1,%i3,%i4
598	srl	%l4,2,%l4
599	add	%i4,%l2,%l2
600	or	%i5,%l4,%l4
601	add	%g4,%l2,%l2
602	sll	%l2,5,%i3		!! 33
603	add	%l6,%l1,%l1
604	srl	%l2,27,%i4
605	add	%i3,%l1,%l1		!!
606	xor	%l4,%l3,%i3
607	add	%i4,%l1,%l1
608	sll	%l3,30,%i5
609	xor	%l0,%i3,%i4
610	srl	%l3,2,%l3
611	add	%i4,%l1,%l1
612	or	%i5,%l3,%l3
613	add	%o0,%l1,%l1
614	sllx	%o7,32,%g4	! Xupdate(34)
615	xor	%o2,%o1,%o1
616	srlx	%o0,32,%i4
617	xor	%o5,%o1,%o1
618	sll	%l1,5,%i3		!! 34
619	or	%i4,%g4,%g4
620	add	%l6,%l0,%l0		!!
621	xor	%g4,%o1,%o1
622	srlx	%o1,31,%g4
623	add	%o1,%o1,%o1
624	and	%g4,%g2,%g4
625	andn	%o1,%g2,%o1
626	srl	%l1,27,%i4		!!
627	or	%g4,%o1,%o1
628	srlx	%o1,32,%g4
629	add	%i3,%l0,%l0		!!
630	xor	%l3,%l2,%i3
631	add	%i4,%l0,%l0
632	sll	%l2,30,%i5
633	xor	%l4,%i3,%i4
634	srl	%l2,2,%l2
635	add	%i4,%l0,%l0
636	or	%i5,%l2,%l2
637	add	%g4,%l0,%l0
638	sll	%l0,5,%i3		!! 35
639	add	%l6,%l4,%l4
640	srl	%l0,27,%i4
641	add	%i3,%l4,%l4		!!
642	xor	%l2,%l1,%i3
643	add	%i4,%l4,%l4
644	sll	%l1,30,%i5
645	xor	%l3,%i3,%i4
646	srl	%l1,2,%l1
647	add	%i4,%l4,%l4
648	or	%i5,%l1,%l1
649	add	%o1,%l4,%l4
650	sllx	%o0,32,%g4	! Xupdate(36)
651	xor	%o3,%o2,%o2
652	srlx	%o1,32,%i4
653	xor	%g1,%o2,%o2
654	sll	%l4,5,%i3		!! 36
655	or	%i4,%g4,%g4
656	add	%l6,%l3,%l3		!!
657	xor	%g4,%o2,%o2
658	srlx	%o2,31,%g4
659	add	%o2,%o2,%o2
660	and	%g4,%g2,%g4
661	andn	%o2,%g2,%o2
662	srl	%l4,27,%i4		!!
663	or	%g4,%o2,%o2
664	srlx	%o2,32,%g4
665	add	%i3,%l3,%l3		!!
666	xor	%l1,%l0,%i3
667	add	%i4,%l3,%l3
668	sll	%l0,30,%i5
669	xor	%l2,%i3,%i4
670	srl	%l0,2,%l0
671	add	%i4,%l3,%l3
672	or	%i5,%l0,%l0
673	add	%g4,%l3,%l3
674	sll	%l3,5,%i3		!! 37
675	add	%l6,%l2,%l2
676	srl	%l3,27,%i4
677	add	%i3,%l2,%l2		!!
678	xor	%l0,%l4,%i3
679	add	%i4,%l2,%l2
680	sll	%l4,30,%i5
681	xor	%l1,%i3,%i4
682	srl	%l4,2,%l4
683	add	%i4,%l2,%l2
684	or	%i5,%l4,%l4
685	add	%o2,%l2,%l2
686	sllx	%o1,32,%g4	! Xupdate(38)
687	xor	%o4,%o3,%o3
688	srlx	%o2,32,%i4
689	xor	%o7,%o3,%o3
690	sll	%l2,5,%i3		!! 38
691	or	%i4,%g4,%g4
692	add	%l6,%l1,%l1		!!
693	xor	%g4,%o3,%o3
694	srlx	%o3,31,%g4
695	add	%o3,%o3,%o3
696	and	%g4,%g2,%g4
697	andn	%o3,%g2,%o3
698	srl	%l2,27,%i4		!!
699	or	%g4,%o3,%o3
700	srlx	%o3,32,%g4
701	add	%i3,%l1,%l1		!!
702	xor	%l4,%l3,%i3
703	add	%i4,%l1,%l1
704	sll	%l3,30,%i5
705	xor	%l0,%i3,%i4
706	srl	%l3,2,%l3
707	add	%i4,%l1,%l1
708	or	%i5,%l3,%l3
709	add	%g4,%l1,%l1
710	sll	%l1,5,%i3		!! 39
711	add	%l6,%l0,%l0
712	srl	%l1,27,%i4
713	add	%i3,%l0,%l0		!!
714	xor	%l3,%l2,%i3
715	add	%i4,%l0,%l0
716	sll	%l2,30,%i5
717	xor	%l4,%i3,%i4
718	srl	%l2,2,%l2
719	add	%i4,%l0,%l0
720	or	%i5,%l2,%l2
721	add	%o3,%l0,%l0
722	sllx	%o2,32,%g4	! Xupdate(40)
723	xor	%o5,%o4,%o4
724	srlx	%o3,32,%i4
725	xor	%o0,%o4,%o4
726	sll	%l0,5,%i3		!! 40
727	or	%i4,%g4,%g4
728	add	%l7,%l4,%l4		!!
729	xor	%g4,%o4,%o4
730	srlx	%o4,31,%g4
731	add	%o4,%o4,%o4
732	and	%g4,%g2,%g4
733	andn	%o4,%g2,%o4
734	srl	%l0,27,%i4		!!
735	or	%g4,%o4,%o4
736	srlx	%o4,32,%g4
737	add	%i3,%l4,%l4		!!
738	and	%l2,%l1,%i3
739	add	%i4,%l4,%l4
740	sll	%l1,30,%i5
741	or	%l2,%l1,%i4
742	srl	%l1,2,%l1
743	and	%l3,%i4,%i4
744	add	%g4,%l4,%l4
745	or	%i4,%i3,%i4
746	or	%i5,%l1,%l1
747	add	%i4,%l4,%l4
748	sll	%l4,5,%i3		!! 41
749	add	%l7,%l3,%l3
750	srl	%l4,27,%i4
751	add	%i3,%l3,%l3		!!
752	and	%l1,%l0,%i3
753	add	%i4,%l3,%l3
754	sll	%l0,30,%i5
755	or	%l1,%l0,%i4
756	srl	%l0,2,%l0
757	and	%l2,%i4,%i4
758	add	%o4,%l3,%l3
759	or	%i4,%i3,%i4
760	or	%i5,%l0,%l0
761	add	%i4,%l3,%l3
762	sllx	%o3,32,%g4	! Xupdate(42)
763	xor	%g1,%o5,%o5
764	srlx	%o4,32,%i4
765	xor	%o1,%o5,%o5
766	sll	%l3,5,%i3		!! 42
767	or	%i4,%g4,%g4
768	add	%l7,%l2,%l2		!!
769	xor	%g4,%o5,%o5
770	srlx	%o5,31,%g4
771	add	%o5,%o5,%o5
772	and	%g4,%g2,%g4
773	andn	%o5,%g2,%o5
774	srl	%l3,27,%i4		!!
775	or	%g4,%o5,%o5
776	srlx	%o5,32,%g4
777	add	%i3,%l2,%l2		!!
778	and	%l0,%l4,%i3
779	add	%i4,%l2,%l2
780	sll	%l4,30,%i5
781	or	%l0,%l4,%i4
782	srl	%l4,2,%l4
783	and	%l1,%i4,%i4
784	add	%g4,%l2,%l2
785	or	%i4,%i3,%i4
786	or	%i5,%l4,%l4
787	add	%i4,%l2,%l2
788	sll	%l2,5,%i3		!! 43
789	add	%l7,%l1,%l1
790	srl	%l2,27,%i4
791	add	%i3,%l1,%l1		!!
792	and	%l4,%l3,%i3
793	add	%i4,%l1,%l1
794	sll	%l3,30,%i5
795	or	%l4,%l3,%i4
796	srl	%l3,2,%l3
797	and	%l0,%i4,%i4
798	add	%o5,%l1,%l1
799	or	%i4,%i3,%i4
800	or	%i5,%l3,%l3
801	add	%i4,%l1,%l1
802	sllx	%o4,32,%g4	! Xupdate(44)
803	xor	%o7,%g1,%g1
804	srlx	%o5,32,%i4
805	xor	%o2,%g1,%g1
806	sll	%l1,5,%i3		!! 44
807	or	%i4,%g4,%g4
808	add	%l7,%l0,%l0		!!
809	xor	%g4,%g1,%g1
810	srlx	%g1,31,%g4
811	add	%g1,%g1,%g1
812	and	%g4,%g2,%g4
813	andn	%g1,%g2,%g1
814	srl	%l1,27,%i4		!!
815	or	%g4,%g1,%g1
816	srlx	%g1,32,%g4
817	add	%i3,%l0,%l0		!!
818	and	%l3,%l2,%i3
819	add	%i4,%l0,%l0
820	sll	%l2,30,%i5
821	or	%l3,%l2,%i4
822	srl	%l2,2,%l2
823	and	%l4,%i4,%i4
824	add	%g4,%l0,%l0
825	or	%i4,%i3,%i4
826	or	%i5,%l2,%l2
827	add	%i4,%l0,%l0
828	sll	%l0,5,%i3		!! 45
829	add	%l7,%l4,%l4
830	srl	%l0,27,%i4
831	add	%i3,%l4,%l4		!!
832	and	%l2,%l1,%i3
833	add	%i4,%l4,%l4
834	sll	%l1,30,%i5
835	or	%l2,%l1,%i4
836	srl	%l1,2,%l1
837	and	%l3,%i4,%i4
838	add	%g1,%l4,%l4
839	or	%i4,%i3,%i4
840	or	%i5,%l1,%l1
841	add	%i4,%l4,%l4
842	sllx	%o5,32,%g4	! Xupdate(46)
843	xor	%o0,%o7,%o7
844	srlx	%g1,32,%i4
845	xor	%o3,%o7,%o7
846	sll	%l4,5,%i3		!! 46
847	or	%i4,%g4,%g4
848	add	%l7,%l3,%l3		!!
849	xor	%g4,%o7,%o7
850	srlx	%o7,31,%g4
851	add	%o7,%o7,%o7
852	and	%g4,%g2,%g4
853	andn	%o7,%g2,%o7
854	srl	%l4,27,%i4		!!
855	or	%g4,%o7,%o7
856	srlx	%o7,32,%g4
857	add	%i3,%l3,%l3		!!
858	and	%l1,%l0,%i3
859	add	%i4,%l3,%l3
860	sll	%l0,30,%i5
861	or	%l1,%l0,%i4
862	srl	%l0,2,%l0
863	and	%l2,%i4,%i4
864	add	%g4,%l3,%l3
865	or	%i4,%i3,%i4
866	or	%i5,%l0,%l0
867	add	%i4,%l3,%l3
868	sll	%l3,5,%i3		!! 47
869	add	%l7,%l2,%l2
870	srl	%l3,27,%i4
871	add	%i3,%l2,%l2		!!
872	and	%l0,%l4,%i3
873	add	%i4,%l2,%l2
874	sll	%l4,30,%i5
875	or	%l0,%l4,%i4
876	srl	%l4,2,%l4
877	and	%l1,%i4,%i4
878	add	%o7,%l2,%l2
879	or	%i4,%i3,%i4
880	or	%i5,%l4,%l4
881	add	%i4,%l2,%l2
882	sllx	%g1,32,%g4	! Xupdate(48)
883	xor	%o1,%o0,%o0
884	srlx	%o7,32,%i4
885	xor	%o4,%o0,%o0
886	sll	%l2,5,%i3		!! 48
887	or	%i4,%g4,%g4
888	add	%l7,%l1,%l1		!!
889	xor	%g4,%o0,%o0
890	srlx	%o0,31,%g4
891	add	%o0,%o0,%o0
892	and	%g4,%g2,%g4
893	andn	%o0,%g2,%o0
894	srl	%l2,27,%i4		!!
895	or	%g4,%o0,%o0
896	srlx	%o0,32,%g4
897	add	%i3,%l1,%l1		!!
898	and	%l4,%l3,%i3
899	add	%i4,%l1,%l1
900	sll	%l3,30,%i5
901	or	%l4,%l3,%i4
902	srl	%l3,2,%l3
903	and	%l0,%i4,%i4
904	add	%g4,%l1,%l1
905	or	%i4,%i3,%i4
906	or	%i5,%l3,%l3
907	add	%i4,%l1,%l1
908	sll	%l1,5,%i3		!! 49
909	add	%l7,%l0,%l0
910	srl	%l1,27,%i4
911	add	%i3,%l0,%l0		!!
912	and	%l3,%l2,%i3
913	add	%i4,%l0,%l0
914	sll	%l2,30,%i5
915	or	%l3,%l2,%i4
916	srl	%l2,2,%l2
917	and	%l4,%i4,%i4
918	add	%o0,%l0,%l0
919	or	%i4,%i3,%i4
920	or	%i5,%l2,%l2
921	add	%i4,%l0,%l0
922	sllx	%o7,32,%g4	! Xupdate(50)
923	xor	%o2,%o1,%o1
924	srlx	%o0,32,%i4
925	xor	%o5,%o1,%o1
926	sll	%l0,5,%i3		!! 50
927	or	%i4,%g4,%g4
928	add	%l7,%l4,%l4		!!
929	xor	%g4,%o1,%o1
930	srlx	%o1,31,%g4
931	add	%o1,%o1,%o1
932	and	%g4,%g2,%g4
933	andn	%o1,%g2,%o1
934	srl	%l0,27,%i4		!!
935	or	%g4,%o1,%o1
936	srlx	%o1,32,%g4
937	add	%i3,%l4,%l4		!!
938	and	%l2,%l1,%i3
939	add	%i4,%l4,%l4
940	sll	%l1,30,%i5
941	or	%l2,%l1,%i4
942	srl	%l1,2,%l1
943	and	%l3,%i4,%i4
944	add	%g4,%l4,%l4
945	or	%i4,%i3,%i4
946	or	%i5,%l1,%l1
947	add	%i4,%l4,%l4
948	sll	%l4,5,%i3		!! 51
949	add	%l7,%l3,%l3
950	srl	%l4,27,%i4
951	add	%i3,%l3,%l3		!!
952	and	%l1,%l0,%i3
953	add	%i4,%l3,%l3
954	sll	%l0,30,%i5
955	or	%l1,%l0,%i4
956	srl	%l0,2,%l0
957	and	%l2,%i4,%i4
958	add	%o1,%l3,%l3
959	or	%i4,%i3,%i4
960	or	%i5,%l0,%l0
961	add	%i4,%l3,%l3
962	sllx	%o0,32,%g4	! Xupdate(52)
963	xor	%o3,%o2,%o2
964	srlx	%o1,32,%i4
965	xor	%g1,%o2,%o2
966	sll	%l3,5,%i3		!! 52
967	or	%i4,%g4,%g4
968	add	%l7,%l2,%l2		!!
969	xor	%g4,%o2,%o2
970	srlx	%o2,31,%g4
971	add	%o2,%o2,%o2
972	and	%g4,%g2,%g4
973	andn	%o2,%g2,%o2
974	srl	%l3,27,%i4		!!
975	or	%g4,%o2,%o2
976	srlx	%o2,32,%g4
977	add	%i3,%l2,%l2		!!
978	and	%l0,%l4,%i3
979	add	%i4,%l2,%l2
980	sll	%l4,30,%i5
981	or	%l0,%l4,%i4
982	srl	%l4,2,%l4
983	and	%l1,%i4,%i4
984	add	%g4,%l2,%l2
985	or	%i4,%i3,%i4
986	or	%i5,%l4,%l4
987	add	%i4,%l2,%l2
988	sll	%l2,5,%i3		!! 53
989	add	%l7,%l1,%l1
990	srl	%l2,27,%i4
991	add	%i3,%l1,%l1		!!
992	and	%l4,%l3,%i3
993	add	%i4,%l1,%l1
994	sll	%l3,30,%i5
995	or	%l4,%l3,%i4
996	srl	%l3,2,%l3
997	and	%l0,%i4,%i4
998	add	%o2,%l1,%l1
999	or	%i4,%i3,%i4
1000	or	%i5,%l3,%l3
1001	add	%i4,%l1,%l1
1002	sllx	%o1,32,%g4	! Xupdate(54)
1003	xor	%o4,%o3,%o3
1004	srlx	%o2,32,%i4
1005	xor	%o7,%o3,%o3
1006	sll	%l1,5,%i3		!! 54
1007	or	%i4,%g4,%g4
1008	add	%l7,%l0,%l0		!!
1009	xor	%g4,%o3,%o3
1010	srlx	%o3,31,%g4
1011	add	%o3,%o3,%o3
1012	and	%g4,%g2,%g4
1013	andn	%o3,%g2,%o3
1014	srl	%l1,27,%i4		!!
1015	or	%g4,%o3,%o3
1016	srlx	%o3,32,%g4
1017	add	%i3,%l0,%l0		!!
1018	and	%l3,%l2,%i3
1019	add	%i4,%l0,%l0
1020	sll	%l2,30,%i5
1021	or	%l3,%l2,%i4
1022	srl	%l2,2,%l2
1023	and	%l4,%i4,%i4
1024	add	%g4,%l0,%l0
1025	or	%i4,%i3,%i4
1026	or	%i5,%l2,%l2
1027	add	%i4,%l0,%l0
1028	sll	%l0,5,%i3		!! 55
1029	add	%l7,%l4,%l4
1030	srl	%l0,27,%i4
1031	add	%i3,%l4,%l4		!!
1032	and	%l2,%l1,%i3
1033	add	%i4,%l4,%l4
1034	sll	%l1,30,%i5
1035	or	%l2,%l1,%i4
1036	srl	%l1,2,%l1
1037	and	%l3,%i4,%i4
1038	add	%o3,%l4,%l4
1039	or	%i4,%i3,%i4
1040	or	%i5,%l1,%l1
1041	add	%i4,%l4,%l4
1042	sllx	%o2,32,%g4	! Xupdate(56)
1043	xor	%o5,%o4,%o4
1044	srlx	%o3,32,%i4
1045	xor	%o0,%o4,%o4
1046	sll	%l4,5,%i3		!! 56
1047	or	%i4,%g4,%g4
1048	add	%l7,%l3,%l3		!!
1049	xor	%g4,%o4,%o4
1050	srlx	%o4,31,%g4
1051	add	%o4,%o4,%o4
1052	and	%g4,%g2,%g4
1053	andn	%o4,%g2,%o4
1054	srl	%l4,27,%i4		!!
1055	or	%g4,%o4,%o4
1056	srlx	%o4,32,%g4
1057	add	%i3,%l3,%l3		!!
1058	and	%l1,%l0,%i3
1059	add	%i4,%l3,%l3
1060	sll	%l0,30,%i5
1061	or	%l1,%l0,%i4
1062	srl	%l0,2,%l0
1063	and	%l2,%i4,%i4
1064	add	%g4,%l3,%l3
1065	or	%i4,%i3,%i4
1066	or	%i5,%l0,%l0
1067	add	%i4,%l3,%l3
1068	sll	%l3,5,%i3		!! 57
1069	add	%l7,%l2,%l2
1070	srl	%l3,27,%i4
1071	add	%i3,%l2,%l2		!!
1072	and	%l0,%l4,%i3
1073	add	%i4,%l2,%l2
1074	sll	%l4,30,%i5
1075	or	%l0,%l4,%i4
1076	srl	%l4,2,%l4
1077	and	%l1,%i4,%i4
1078	add	%o4,%l2,%l2
1079	or	%i4,%i3,%i4
1080	or	%i5,%l4,%l4
1081	add	%i4,%l2,%l2
1082	sllx	%o3,32,%g4	! Xupdate(58)
1083	xor	%g1,%o5,%o5
1084	srlx	%o4,32,%i4
1085	xor	%o1,%o5,%o5
1086	sll	%l2,5,%i3		!! 58
1087	or	%i4,%g4,%g4
1088	add	%l7,%l1,%l1		!!
1089	xor	%g4,%o5,%o5
1090	srlx	%o5,31,%g4
1091	add	%o5,%o5,%o5
1092	and	%g4,%g2,%g4
1093	andn	%o5,%g2,%o5
1094	srl	%l2,27,%i4		!!
1095	or	%g4,%o5,%o5
1096	srlx	%o5,32,%g4
1097	add	%i3,%l1,%l1		!!
1098	and	%l4,%l3,%i3
1099	add	%i4,%l1,%l1
1100	sll	%l3,30,%i5
1101	or	%l4,%l3,%i4
1102	srl	%l3,2,%l3
1103	and	%l0,%i4,%i4
1104	add	%g4,%l1,%l1
1105	or	%i4,%i3,%i4
1106	or	%i5,%l3,%l3
1107	add	%i4,%l1,%l1
1108	sll	%l1,5,%i3		!! 59
1109	add	%l7,%l0,%l0
1110	srl	%l1,27,%i4
1111	add	%i3,%l0,%l0		!!
1112	and	%l3,%l2,%i3
1113	add	%i4,%l0,%l0
1114	sll	%l2,30,%i5
1115	or	%l3,%l2,%i4
1116	srl	%l2,2,%l2
1117	and	%l4,%i4,%i4
1118	add	%o5,%l0,%l0
1119	or	%i4,%i3,%i4
1120	or	%i5,%l2,%l2
1121	add	%i4,%l0,%l0
1122	sllx	%o4,32,%g4	! Xupdate(60)
1123	xor	%o7,%g1,%g1
1124	srlx	%o5,32,%i4
1125	xor	%o2,%g1,%g1
1126	sll	%l0,5,%i3		!! 60
1127	or	%i4,%g4,%g4
1128	add	%g5,%l4,%l4		!!
1129	xor	%g4,%g1,%g1
1130	srlx	%g1,31,%g4
1131	add	%g1,%g1,%g1
1132	and	%g4,%g2,%g4
1133	andn	%g1,%g2,%g1
1134	srl	%l0,27,%i4		!!
1135	or	%g4,%g1,%g1
1136	srlx	%g1,32,%g4
1137	add	%i3,%l4,%l4		!!
1138	xor	%l2,%l1,%i3
1139	add	%i4,%l4,%l4
1140	sll	%l1,30,%i5
1141	xor	%l3,%i3,%i4
1142	srl	%l1,2,%l1
1143	add	%i4,%l4,%l4
1144	or	%i5,%l1,%l1
1145	add	%g4,%l4,%l4
1146	sll	%l4,5,%i3		!! 61
1147	add	%g5,%l3,%l3
1148	srl	%l4,27,%i4
1149	add	%i3,%l3,%l3		!!
1150	xor	%l1,%l0,%i3
1151	add	%i4,%l3,%l3
1152	sll	%l0,30,%i5
1153	xor	%l2,%i3,%i4
1154	srl	%l0,2,%l0
1155	add	%i4,%l3,%l3
1156	or	%i5,%l0,%l0
1157	add	%g1,%l3,%l3
1158	sllx	%o5,32,%g4	! Xupdate(62)
1159	xor	%o0,%o7,%o7
1160	srlx	%g1,32,%i4
1161	xor	%o3,%o7,%o7
1162	sll	%l3,5,%i3		!! 62
1163	or	%i4,%g4,%g4
1164	add	%g5,%l2,%l2		!!
1165	xor	%g4,%o7,%o7
1166	srlx	%o7,31,%g4
1167	add	%o7,%o7,%o7
1168	and	%g4,%g2,%g4
1169	andn	%o7,%g2,%o7
1170	srl	%l3,27,%i4		!!
1171	or	%g4,%o7,%o7
1172	srlx	%o7,32,%g4
1173	add	%i3,%l2,%l2		!!
1174	xor	%l0,%l4,%i3
1175	add	%i4,%l2,%l2
1176	sll	%l4,30,%i5
1177	xor	%l1,%i3,%i4
1178	srl	%l4,2,%l4
1179	add	%i4,%l2,%l2
1180	or	%i5,%l4,%l4
1181	add	%g4,%l2,%l2
1182	sll	%l2,5,%i3		!! 63
1183	add	%g5,%l1,%l1
1184	srl	%l2,27,%i4
1185	add	%i3,%l1,%l1		!!
1186	xor	%l4,%l3,%i3
1187	add	%i4,%l1,%l1
1188	sll	%l3,30,%i5
1189	xor	%l0,%i3,%i4
1190	srl	%l3,2,%l3
1191	add	%i4,%l1,%l1
1192	or	%i5,%l3,%l3
1193	add	%o7,%l1,%l1
1194	sllx	%g1,32,%g4	! Xupdate(64)
1195	xor	%o1,%o0,%o0
1196	srlx	%o7,32,%i4
1197	xor	%o4,%o0,%o0
1198	sll	%l1,5,%i3		!! 64
1199	or	%i4,%g4,%g4
1200	add	%g5,%l0,%l0		!!
1201	xor	%g4,%o0,%o0
1202	srlx	%o0,31,%g4
1203	add	%o0,%o0,%o0
1204	and	%g4,%g2,%g4
1205	andn	%o0,%g2,%o0
1206	srl	%l1,27,%i4		!!
1207	or	%g4,%o0,%o0
1208	srlx	%o0,32,%g4
1209	add	%i3,%l0,%l0		!!
1210	xor	%l3,%l2,%i3
1211	add	%i4,%l0,%l0
1212	sll	%l2,30,%i5
1213	xor	%l4,%i3,%i4
1214	srl	%l2,2,%l2
1215	add	%i4,%l0,%l0
1216	or	%i5,%l2,%l2
1217	add	%g4,%l0,%l0
1218	sll	%l0,5,%i3		!! 65
1219	add	%g5,%l4,%l4
1220	srl	%l0,27,%i4
1221	add	%i3,%l4,%l4		!!
1222	xor	%l2,%l1,%i3
1223	add	%i4,%l4,%l4
1224	sll	%l1,30,%i5
1225	xor	%l3,%i3,%i4
1226	srl	%l1,2,%l1
1227	add	%i4,%l4,%l4
1228	or	%i5,%l1,%l1
1229	add	%o0,%l4,%l4
1230	sllx	%o7,32,%g4	! Xupdate(66)
1231	xor	%o2,%o1,%o1
1232	srlx	%o0,32,%i4
1233	xor	%o5,%o1,%o1
1234	sll	%l4,5,%i3		!! 66
1235	or	%i4,%g4,%g4
1236	add	%g5,%l3,%l3		!!
1237	xor	%g4,%o1,%o1
1238	srlx	%o1,31,%g4
1239	add	%o1,%o1,%o1
1240	and	%g4,%g2,%g4
1241	andn	%o1,%g2,%o1
1242	srl	%l4,27,%i4		!!
1243	or	%g4,%o1,%o1
1244	srlx	%o1,32,%g4
1245	add	%i3,%l3,%l3		!!
1246	xor	%l1,%l0,%i3
1247	add	%i4,%l3,%l3
1248	sll	%l0,30,%i5
1249	xor	%l2,%i3,%i4
1250	srl	%l0,2,%l0
1251	add	%i4,%l3,%l3
1252	or	%i5,%l0,%l0
1253	add	%g4,%l3,%l3
1254	sll	%l3,5,%i3		!! 67
1255	add	%g5,%l2,%l2
1256	srl	%l3,27,%i4
1257	add	%i3,%l2,%l2		!!
1258	xor	%l0,%l4,%i3
1259	add	%i4,%l2,%l2
1260	sll	%l4,30,%i5
1261	xor	%l1,%i3,%i4
1262	srl	%l4,2,%l4
1263	add	%i4,%l2,%l2
1264	or	%i5,%l4,%l4
1265	add	%o1,%l2,%l2
1266	sllx	%o0,32,%g4	! Xupdate(68)
1267	xor	%o3,%o2,%o2
1268	srlx	%o1,32,%i4
1269	xor	%g1,%o2,%o2
1270	sll	%l2,5,%i3		!! 68
1271	or	%i4,%g4,%g4
1272	add	%g5,%l1,%l1		!!
1273	xor	%g4,%o2,%o2
1274	srlx	%o2,31,%g4
1275	add	%o2,%o2,%o2
1276	and	%g4,%g2,%g4
1277	andn	%o2,%g2,%o2
1278	srl	%l2,27,%i4		!!
1279	or	%g4,%o2,%o2
1280	srlx	%o2,32,%g4
1281	add	%i3,%l1,%l1		!!
1282	xor	%l4,%l3,%i3
1283	add	%i4,%l1,%l1
1284	sll	%l3,30,%i5
1285	xor	%l0,%i3,%i4
1286	srl	%l3,2,%l3
1287	add	%i4,%l1,%l1
1288	or	%i5,%l3,%l3
1289	add	%g4,%l1,%l1
1290	sll	%l1,5,%i3		!! 69
1291	add	%g5,%l0,%l0
1292	srl	%l1,27,%i4
1293	add	%i3,%l0,%l0		!!
1294	xor	%l3,%l2,%i3
1295	add	%i4,%l0,%l0
1296	sll	%l2,30,%i5
1297	xor	%l4,%i3,%i4
1298	srl	%l2,2,%l2
1299	add	%i4,%l0,%l0
1300	or	%i5,%l2,%l2
1301	add	%o2,%l0,%l0
1302	sllx	%o1,32,%g4	! Xupdate(70)
1303	xor	%o4,%o3,%o3
1304	srlx	%o2,32,%i4
1305	xor	%o7,%o3,%o3
1306	sll	%l0,5,%i3		!! 70
1307	or	%i4,%g4,%g4
1308	add	%g5,%l4,%l4		!!
1309	xor	%g4,%o3,%o3
1310	srlx	%o3,31,%g4
1311	add	%o3,%o3,%o3
1312	and	%g4,%g2,%g4
1313	andn	%o3,%g2,%o3
1314	srl	%l0,27,%i4		!!
1315	or	%g4,%o3,%o3
1316	srlx	%o3,32,%g4
1317	add	%i3,%l4,%l4		!!
1318	xor	%l2,%l1,%i3
1319	add	%i4,%l4,%l4
1320	sll	%l1,30,%i5
1321	xor	%l3,%i3,%i4
1322	srl	%l1,2,%l1
1323	add	%i4,%l4,%l4
1324	or	%i5,%l1,%l1
1325	add	%g4,%l4,%l4
1326	sll	%l4,5,%i3		!! 71
1327	add	%g5,%l3,%l3
1328	srl	%l4,27,%i4
1329	add	%i3,%l3,%l3		!!
1330	xor	%l1,%l0,%i3
1331	add	%i4,%l3,%l3
1332	sll	%l0,30,%i5
1333	xor	%l2,%i3,%i4
1334	srl	%l0,2,%l0
1335	add	%i4,%l3,%l3
1336	or	%i5,%l0,%l0
1337	add	%o3,%l3,%l3
1338	sllx	%o2,32,%g4	! Xupdate(72)
1339	xor	%o5,%o4,%o4
1340	srlx	%o3,32,%i4
1341	xor	%o0,%o4,%o4
1342	sll	%l3,5,%i3		!! 72
1343	or	%i4,%g4,%g4
1344	add	%g5,%l2,%l2		!!
1345	xor	%g4,%o4,%o4
1346	srlx	%o4,31,%g4
1347	add	%o4,%o4,%o4
1348	and	%g4,%g2,%g4
1349	andn	%o4,%g2,%o4
1350	srl	%l3,27,%i4		!!
1351	or	%g4,%o4,%o4
1352	srlx	%o4,32,%g4
1353	add	%i3,%l2,%l2		!!
1354	xor	%l0,%l4,%i3
1355	add	%i4,%l2,%l2
1356	sll	%l4,30,%i5
1357	xor	%l1,%i3,%i4
1358	srl	%l4,2,%l4
1359	add	%i4,%l2,%l2
1360	or	%i5,%l4,%l4
1361	add	%g4,%l2,%l2
1362	sll	%l2,5,%i3		!! 73
1363	add	%g5,%l1,%l1
1364	srl	%l2,27,%i4
1365	add	%i3,%l1,%l1		!!
1366	xor	%l4,%l3,%i3
1367	add	%i4,%l1,%l1
1368	sll	%l3,30,%i5
1369	xor	%l0,%i3,%i4
1370	srl	%l3,2,%l3
1371	add	%i4,%l1,%l1
1372	or	%i5,%l3,%l3
1373	add	%o4,%l1,%l1
1374	sllx	%o3,32,%g4	! Xupdate(74)
1375	xor	%g1,%o5,%o5
1376	srlx	%o4,32,%i4
1377	xor	%o1,%o5,%o5
1378	sll	%l1,5,%i3		!! 74
1379	or	%i4,%g4,%g4
1380	add	%g5,%l0,%l0		!!
1381	xor	%g4,%o5,%o5
1382	srlx	%o5,31,%g4
1383	add	%o5,%o5,%o5
1384	and	%g4,%g2,%g4
1385	andn	%o5,%g2,%o5
1386	srl	%l1,27,%i4		!!
1387	or	%g4,%o5,%o5
1388	srlx	%o5,32,%g4
1389	add	%i3,%l0,%l0		!!
1390	xor	%l3,%l2,%i3
1391	add	%i4,%l0,%l0
1392	sll	%l2,30,%i5
1393	xor	%l4,%i3,%i4
1394	srl	%l2,2,%l2
1395	add	%i4,%l0,%l0
1396	or	%i5,%l2,%l2
1397	add	%g4,%l0,%l0
1398	sll	%l0,5,%i3		!! 75
1399	add	%g5,%l4,%l4
1400	srl	%l0,27,%i4
1401	add	%i3,%l4,%l4		!!
1402	xor	%l2,%l1,%i3
1403	add	%i4,%l4,%l4
1404	sll	%l1,30,%i5
1405	xor	%l3,%i3,%i4
1406	srl	%l1,2,%l1
1407	add	%i4,%l4,%l4
1408	or	%i5,%l1,%l1
1409	add	%o5,%l4,%l4
1410	sllx	%o4,32,%g4	! Xupdate(76)
1411	xor	%o7,%g1,%g1
1412	srlx	%o5,32,%i4
1413	xor	%o2,%g1,%g1
1414	sll	%l4,5,%i3		!! 76
1415	or	%i4,%g4,%g4
1416	add	%g5,%l3,%l3		!!
1417	xor	%g4,%g1,%g1
1418	srlx	%g1,31,%g4
1419	add	%g1,%g1,%g1
1420	and	%g4,%g2,%g4
1421	andn	%g1,%g2,%g1
1422	srl	%l4,27,%i4		!!
1423	or	%g4,%g1,%g1
1424	srlx	%g1,32,%g4
1425	add	%i3,%l3,%l3		!!
1426	xor	%l1,%l0,%i3
1427	add	%i4,%l3,%l3
1428	sll	%l0,30,%i5
1429	xor	%l2,%i3,%i4
1430	srl	%l0,2,%l0
1431	add	%i4,%l3,%l3
1432	or	%i5,%l0,%l0
1433	add	%g4,%l3,%l3
1434	sll	%l3,5,%i3		!! 77
1435	add	%g5,%l2,%l2
1436	srl	%l3,27,%i4
1437	add	%i3,%l2,%l2		!!
1438	xor	%l0,%l4,%i3
1439	add	%i4,%l2,%l2
1440	sll	%l4,30,%i5
1441	xor	%l1,%i3,%i4
1442	srl	%l4,2,%l4
1443	add	%i4,%l2,%l2
1444	or	%i5,%l4,%l4
1445	add	%g1,%l2,%l2
1446	sllx	%o5,32,%g4	! Xupdate(78)
1447	xor	%o0,%o7,%o7
1448	srlx	%g1,32,%i4
1449	xor	%o3,%o7,%o7
1450	sll	%l2,5,%i3		!! 78
1451	or	%i4,%g4,%g4
1452	add	%g5,%l1,%l1		!!
1453	xor	%g4,%o7,%o7
1454	srlx	%o7,31,%g4
1455	add	%o7,%o7,%o7
1456	and	%g4,%g2,%g4
1457	andn	%o7,%g2,%o7
1458	srl	%l2,27,%i4		!!
1459	or	%g4,%o7,%o7
1460	srlx	%o7,32,%g4
1461	add	%i3,%l1,%l1		!!
1462	xor	%l4,%l3,%i3
1463	add	%i4,%l1,%l1
1464	sll	%l3,30,%i5
1465	xor	%l0,%i3,%i4
1466	srl	%l3,2,%l3
1467	add	%i4,%l1,%l1
1468	or	%i5,%l3,%l3
1469	add	%g4,%l1,%l1
1470	sll	%l1,5,%i3		!! 79
1471	add	%g5,%l0,%l0
1472	srl	%l1,27,%i4
1473	add	%i3,%l0,%l0		!!
1474	xor	%l3,%l2,%i3
1475	add	%i4,%l0,%l0
1476	sll	%l2,30,%i5
1477	xor	%l4,%i3,%i4
1478	srl	%l2,2,%l2
1479	add	%i4,%l0,%l0
1480	or	%i5,%l2,%l2
1481	add	%o7,%l0,%l0
1482
1483	ld	[%i0+0],%o0
1484	ld	[%i0+4],%o1
1485	ld	[%i0+8],%o2
1486	ld	[%i0+12],%o3
1487	add	%i1,64,%i1
1488	ld	[%i0+16],%o4
1489	cmp	%i1,%i2
1490
1491	add	%l0,%o0,%l0
1492	st	%l0,[%i0+0]
1493	add	%l1,%o1,%l1
1494	st	%l1,[%i0+4]
1495	add	%l2,%o2,%l2
1496	st	%l2,[%i0+8]
1497	add	%l3,%o3,%l3
1498	st	%l3,[%i0+12]
1499	add	%l4,%o4,%l4
1500	st	%l4,[%i0+16]
1501
1502	bne	%icc,.Lloop
1503	andn	%i1,7,%i3
1504
1505	ret
1506	restore
1507.type	sha1_block_data_order,#function
1508.size	sha1_block_data_order,(.-sha1_block_data_order)
1509.asciz	"SHA1 block transform for SPARCv9, CRYPTOGAMS by <appro@openssl.org>"
1510.align	4
1511