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