8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / common / crypto / sha1 / sparc / sun4u / sha1_asm.s
blob60d7440bd98fb82fe8a10817a49bafcb90b0f909
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
22 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #pragma ident "%Z%%M% %I% %E% SMI"
28 #include <sys/asm_linkage.h>
29 #include <sys/stack.h>
31 #ifdef _KERNEL
33 #include <sys/privregs.h>
34 #include <sys/regset.h>
35 #include <sys/vis.h>
36 #include <sys/machthread.h>
38 #endif /* _KERNEL */
40 #if defined(lint)
42 #ifdef _KERNEL
44 /* ARGSUSED */
45 int
46 sha1_savefp(kfpu_t *fpu, int svfp_ok)
47 { return(0); }
49 /* ARGSUSED */
50 void
51 sha1_restorefp(kfpu_t *fpu)
54 #endif /* _KERNEL */
56 /* ARGSUSED */
57 void
58 SHA1TransformVIS(uint64_t *X0, uint64_t *blk, uint32_t *cstate, uint64_t *VIS)
61 #else /* defined(lint) */
63 #ifdef _KERNEL
65 #define FZERO \
66 fzero %f0 ;\
67 fzero %f2 ;\
68 faddd %f0, %f2, %f4 ;\
69 fmuld %f0, %f2, %f6 ;\
70 faddd %f0, %f2, %f8 ;\
71 fmuld %f0, %f2, %f10 ;\
72 faddd %f0, %f2, %f12 ;\
73 fmuld %f0, %f2, %f14 ;\
74 faddd %f0, %f2, %f16 ;\
75 fmuld %f0, %f2, %f18 ;\
76 faddd %f0, %f2, %f20 ;\
77 fmuld %f0, %f2, %f22 ;\
78 faddd %f0, %f2, %f24 ;\
79 fmuld %f0, %f2, %f26 ;\
80 faddd %f0, %f2, %f28 ;\
81 fmuld %f0, %f2, %f30 ;\
82 faddd %f0, %f2, %f32 ;\
83 fmuld %f0, %f2, %f34 ;\
84 faddd %f0, %f2, %f36 ;\
85 fmuld %f0, %f2, %f38 ;\
86 faddd %f0, %f2, %f40 ;\
87 fmuld %f0, %f2, %f42 ;\
88 faddd %f0, %f2, %f44 ;\
89 fmuld %f0, %f2, %f46 ;\
90 faddd %f0, %f2, %f48 ;\
91 fmuld %f0, %f2, %f50 ;\
92 faddd %f0, %f2, %f52 ;\
93 fmuld %f0, %f2, %f54 ;\
94 faddd %f0, %f2, %f56 ;\
95 fmuld %f0, %f2, %f58 ;\
96 faddd %f0, %f2, %f60 ;\
97 fmuld %f0, %f2, %f62
99 #include "assym.h"
101 ENTRY(sha1_savefp)
102 rd %fprs, %o2
103 st %o2, [%o0 + FPU_FPRS]
104 andcc %o2, FPRS_FEF, %g0
105 bz,a,pt %icc, 1f
106 wr %g0, FPRS_FEF, %fprs
107 brz,pt %o1, 2f
109 rd %gsr, %o3
110 stx %o3, [%o0 + FPU_GSR]
111 stx %fsr, [%o0 + FPU_FSR]
112 BSTORE_FPREGS(%o0, %o4)
114 retl
115 or %g0, 1, %o0
117 retl
118 clr %o0
119 SET_SIZE(sha1_savefp)
121 ENTRY(sha1_restorefp)
122 ld [%o0 + FPU_FPRS], %o1
123 andcc %o1, FPRS_FEF, %g0
124 bz,pt %icc, 1f
126 BLOAD_FPREGS(%o0, %o2)
127 wr %o1, 0, %fprs
128 ldx [%o0 + FPU_FSR], %fsr
129 ldx [%o0 + FPU_GSR], %o3
130 retl
131 wr %o3, 0, %gsr
133 FZERO
134 retl
135 wr %o1, 0, %fprs
136 SET_SIZE(sha1_restorefp)
138 #endif /* _KERNEL */
140 ENTRY(SHA1TransformVIS)
141 save %sp, -SA(MINFRAME), %sp
143 ld [%i2 + 0], %o0
144 mov 5, %g1
146 ld [%i2 + 4], %o1
147 alignaddr %g0, %g1, %g0
149 ld [%i2 + 8], %o2
151 ld [%i2 + 12], %o3
153 ld [%i2 + 16], %o4
155 ld [%i3 + 0 + 16], %g1
157 ! Starting round 0
158 sll %o0, 5, %l0
159 and %o1, %o2, %l1
160 ld [%i1 + (0 * 4)], %l2
162 srl %o0, 27, %l3
163 andn %o3, %o1, %l4
164 ld [%i1 + 0], %f16
166 sll %o1, 30, %l5
167 xor %l1, %l4, %l1
168 ld [%i1 + 4], %f17
170 srl %o1, 2, %l7
171 or %l0, %l3, %l0
172 ld [%i1 + 8], %f30
174 add %l0, %l1, %l0
175 add %o4, %g1, %l1
176 ld [%i1 + 12], %f31
178 or %l5, %l7, %o1
179 add %l0, %l1, %l0
180 ld [%i1 + 16], %f28
182 add %l0, %l2, %o5
183 ld [%i1 + 20], %f29
185 ! Starting round 1
186 sll %o5, 5, %l0
187 and %o0, %o1, %l1
188 ld [%i1 + (1 * 4)], %l2
190 srl %o5, 27, %l3
191 andn %o2, %o0, %l4
192 ld [%i1 + 24], %f26
194 sll %o0, 30, %l5
195 xor %l1, %l4, %l1
196 ld [%i1 + 28], %f27
197 fzero %f52
199 srl %o0, 2, %l7
200 or %l0, %l3, %l0
201 ld [%i1 + 32], %f24
203 add %l0, %l1, %l0
204 add %o3, %g1, %l1
205 ld [%i1 + 36], %f25
207 or %l5, %l7, %o0
208 add %l0, %l1, %l0
209 ld [%i1 + 40], %f22
211 add %l0, %l2, %o4
212 ld [%i1 + 44], %f23
214 ! Starting round 2
215 sll %o4, 5, %l0
216 and %o5, %o0, %l1
217 ld [%i1 + (2 * 4)], %l2
219 srl %o4, 27, %l3
220 andn %o1, %o5, %l4
221 ld [%i1 + 48], %f20
223 sll %o5, 30, %l5
224 xor %l1, %l4, %l1
225 ld [%i1 + 52], %f21
227 srl %o5, 2, %l7
228 or %l0, %l3, %l0
229 fxor %f16, %f30, %f38
230 ld [%i1 + 56], %f18
232 add %l0, %l1, %l0
233 add %o2, %g1, %l1
234 fxor %f28, %f30, %f14
235 ld [%i1 + 60], %f19
237 or %l5, %l7, %o5
238 add %l0, %l1, %l0
239 ld [%i1 + 52], %f0
241 add %l0, %l2, %o3
243 ! Starting round 3
244 sll %o3, 5, %l0
245 and %o4, %o5, %l1
246 ld [%i1 + (3 * 4)], %l2
248 srl %o3, 27, %l3
249 andn %o0, %o4, %l4
250 ld [%i1 + 56], %f1
252 sll %o4, 30, %l5
253 xor %l1, %l4, %l1
254 ldd [%i3 + 8], %f54
255 fxor %f38, %f24, %f38
257 srl %o4, 2, %l7
258 or %l0, %l3, %l0
259 ldd [%i3 + 0], %f50
260 fxor %f14, %f22, %f14
262 add %l0, %l1, %l0
263 add %o1, %g1, %l1
264 ld [%i1 + 60], %f8
266 or %l5, %l7, %o4
267 add %l0, %l1, %l0
269 add %l0, %l2, %o2
271 ! Starting round 4
272 and %o3, %o4, %l1
273 sll %o2, 5, %l0
274 ld [%i1 + (4 * 4)], %l2
275 fxor %f38, %f0, %f36
277 srl %o2, 27, %l3
278 andn %o5, %o3, %l4
279 fxors %f14, %f8, %f12
281 sll %o3, 30, %l5
282 xor %l1, %l4, %l1
283 fxor %f28, %f30, %f14
285 srl %o3, 2, %l7
286 or %l0, %l3, %l0
287 fand %f50, %f36, %f2
289 add %l0, %l1, %l0
290 add %o0, %g1, %l1
291 fand %f50, %f12, %f10
293 or %l5, %l7, %o3
294 add %l0, %l1, %l0
295 fpadd32 %f36, %f36, %f4
297 add %l0, %l2, %o1
298 ! Starting round 5
299 and %o2, %o3, %l1
300 sll %o1, 5, %l0
301 ld [%i1 + (5 * 4)], %l2
302 faligndata %f52, %f2, %f2
304 srl %o1, 27, %l3
305 andn %o4, %o2, %l4
306 faligndata %f52, %f10, %f10
308 sll %o2, 30, %l5
309 xor %l1, %l4, %l1
310 fpadd32s %f12, %f12, %f12
312 srl %o2, 2, %l7
313 or %l0, %l3, %l0
314 fxor %f26, %f28, %f38
315 fmul8x16 %f2, %f54, %f6
317 add %l0, %l1, %l0
318 add %o5, %g1, %l1
319 fxor %f14, %f22, %f14
320 fmul8x16 %f3, %f54, %f2
322 or %l5, %l7, %o2
323 add %l0, %l1, %l0
324 fmul8x16 %f10, %f54, %f10
326 add %l0, %l2, %o0
328 ! Starting round 6
329 and %o1, %o2, %l1
330 sll %o0, 5, %l0
331 ld [%i1 + (6 * 4)], %l2
332 fxor %f38, %f20, %f38
334 srl %o0, 27, %l3
335 andn %o3, %o1, %l4
336 fors %f4, %f7, %f8
337 st %f8, [%i0 + (16*4) + (0)]
339 sll %o1, 30, %l5
340 xor %l1, %l4, %l1
341 fors %f5, %f3, %f0
342 st %f0, [%i0 + (16*4) + (4)]
344 srl %o1, 2, %l7
345 or %l0, %l3, %l0
346 fors %f12, %f11, %f1
347 st %f1, [%i0 + (16*4) + (8)]
349 add %l0, %l1, %l0
350 add %o4, %g1, %l1
351 fors %f4, %f7, %f16
353 or %l5, %l7, %o1
354 add %l0, %l1, %l0
355 fors %f5, %f3, %f17
357 add %l0, %l2, %o5
358 fors %f12, %f11, %f9
360 ! Starting round 7
361 and %o0, %o1, %l1
362 sll %o5, 5, %l0
363 ld [%i1 + (7 * 4)], %l2
364 fxor %f38, %f0, %f36
366 srl %o5, 27, %l3
367 andn %o2, %o0, %l4
368 fxors %f15, %f8, %f12
370 sll %o0, 30, %l5
371 xor %l1, %l4, %l1
372 fxor %f24, %f26, %f38
374 srl %o0, 2, %l7
375 or %l0, %l3, %l0
376 fand %f50, %f36, %f2
378 add %l0, %l1, %l0
379 add %o3, %g1, %l1
380 fand %f50, %f12, %f10
382 or %l5, %l7, %o0
383 add %l0, %l1, %l0
384 fpadd32 %f36, %f36, %f4
386 add %l0, %l2, %o4
387 ! Starting round 8
388 and %o5, %o0, %l1
389 sll %o4, 5, %l0
390 ld [%i1 + (8 * 4)], %l2
391 faligndata %f52, %f2, %f2
393 srl %o4, 27, %l3
394 andn %o1, %o5, %l4
395 faligndata %f52, %f10, %f10
397 sll %o5, 30, %l5
398 xor %l1, %l4, %l1
399 fpadd32s %f12, %f12, %f12
401 srl %o5, 2, %l7
402 or %l0, %l3, %l0
403 fxor %f22, %f24, %f14
404 fmul8x16 %f2, %f54, %f6
406 add %l0, %l1, %l0
407 add %o2, %g1, %l1
408 fxor %f38, %f18, %f38
409 fmul8x16 %f3, %f54, %f2
411 or %l5, %l7, %o5
412 add %l0, %l1, %l0
413 fmovs %f9, %f30
414 fmul8x16 %f10, %f54, %f10
416 add %l0, %l2, %o3
418 ! Starting round 9
419 and %o4, %o5, %l1
420 sll %o3, 5, %l0
421 ld [%i1 + (9 * 4)], %l2
422 fxor %f14, %f16, %f14
424 srl %o3, 27, %l3
425 andn %o0, %o4, %l4
426 fors %f4, %f7, %f1
427 st %f1, [%i0 + (19*4) + (4)]
429 sll %o4, 30, %l5
430 xor %l1, %l4, %l1
431 fors %f5, %f3, %f8
432 st %f8, [%i0 + (19*4) + (8)]
434 srl %o4, 2, %l7
435 or %l0, %l3, %l0
436 fors %f12, %f11, %f0
437 st %f0, [%i0 + (19*4) + (0)]
439 add %l0, %l1, %l0
440 add %o1, %g1, %l1
441 fors %f4, %f7, %f28
443 or %l5, %l7, %o4
444 add %l0, %l1, %l0
445 fors %f5, %f3, %f29
447 add %l0, %l2, %o2
448 fors %f12, %f11, %f31
450 ! Starting round 10
451 and %o3, %o4, %l1
452 sll %o2, 5, %l0
453 ld [%i1 + (10 * 4)], %l2
454 fxor %f38, %f0, %f36
456 srl %o2, 27, %l3
457 andn %o5, %o3, %l4
458 fxors %f14, %f8, %f12
460 sll %o3, 30, %l5
461 xor %l1, %l4, %l1
462 fxor %f22, %f24, %f14
464 srl %o3, 2, %l7
465 or %l0, %l3, %l0
466 fand %f50, %f36, %f2
468 add %l0, %l1, %l0
469 add %o0, %g1, %l1
470 fand %f50, %f12, %f10
472 or %l5, %l7, %o3
473 add %l0, %l1, %l0
474 fpadd32 %f36, %f36, %f4
476 add %l0, %l2, %o1
478 ! Starting round 11
479 and %o2, %o3, %l1
480 sll %o1, 5, %l0
481 ld [%i1 + (11 * 4)], %l2
482 faligndata %f52, %f2, %f2
484 srl %o1, 27, %l3
485 andn %o4, %o2, %l4
486 faligndata %f52, %f10, %f10
488 sll %o2, 30, %l5
489 xor %l1, %l4, %l1
490 fpadd32s %f12, %f12, %f12
492 srl %o2, 2, %l7
493 or %l0, %l3, %l0
494 fxor %f20, %f22, %f38
495 fmul8x16 %f2, %f54, %f6
497 add %l0, %l1, %l0
498 add %o5, %g1, %l1
499 fxor %f14, %f16, %f14
500 fmul8x16 %f3, %f54, %f2
502 or %l5, %l7, %o2
503 add %l0, %l1, %l0
504 fmul8x16 %f10, %f54, %f10
506 add %l0, %l2, %o0
508 ! Starting round 12
509 and %o1, %o2, %l1
510 sll %o0, 5, %l0
511 ld [%i1 + (12 * 4)], %l2
512 fxor %f38, %f30, %f38
514 srl %o0, 27, %l3
515 andn %o3, %o1, %l4
516 fors %f4, %f7, %f8
517 st %f8, [%i0 + (22*4) + (0)]
519 sll %o1, 30, %l5
520 xor %l1, %l4, %l1
521 fors %f5, %f3, %f0
522 st %f0, [%i0 + (22*4) + (4)]
524 srl %o1, 2, %l7
525 or %l0, %l3, %l0
526 fors %f12, %f11, %f1
527 st %f1, [%i0 + (22*4) + (8)]
529 add %l0, %l1, %l0
530 add %o4, %g1, %l1
531 fors %f4, %f7, %f26
533 or %l5, %l7, %o1
534 add %l0, %l1, %l0
535 fors %f5, %f3, %f27
537 add %l0, %l2, %o5
538 fors %f12, %f11, %f9
540 ! Starting round 13
541 and %o0, %o1, %l1
542 sll %o5, 5, %l0
543 ld [%i1 + (13 * 4)], %l2
544 fxor %f38, %f0, %f36
546 srl %o5, 27, %l3
547 andn %o2, %o0, %l4
548 fxors %f15, %f8, %f12
550 sll %o0, 30, %l5
551 xor %l1, %l4, %l1
552 fxor %f18, %f20, %f38
554 srl %o0, 2, %l7
555 or %l0, %l3, %l0
556 fand %f50, %f36, %f2
558 add %l0, %l1, %l0
559 add %o3, %g1, %l1
560 fand %f50, %f12, %f10
562 or %l5, %l7, %o0
563 add %l0, %l1, %l0
564 fpadd32 %f36, %f36, %f4
566 add %l0, %l2, %o4
567 ! Starting round 14
568 and %o5, %o0, %l1
569 sll %o4, 5, %l0
570 ld [%i1 + (14 * 4)], %l2
571 faligndata %f52, %f2, %f2
573 srl %o4, 27, %l3
574 andn %o1, %o5, %l4
575 faligndata %f52, %f10, %f10
577 sll %o5, 30, %l5
578 xor %l1, %l4, %l1
579 fpadd32s %f12, %f12, %f12
581 srl %o5, 2, %l7
582 or %l0, %l3, %l0
583 fxor %f16, %f18, %f14
584 fmul8x16 %f2, %f54, %f6
586 add %l0, %l1, %l0
587 add %o2, %g1, %l1
588 fxor %f38, %f28, %f38
589 fmul8x16 %f3, %f54, %f2
591 or %l5, %l7, %o5
592 add %l0, %l1, %l0
593 fmovs %f9, %f24
594 fmul8x16 %f10, %f54, %f10
596 add %l0, %l2, %o3
598 ! Starting round 15
599 and %o4, %o5, %l1
600 sll %o3, 5, %l0
601 ld [%i1 + (15 * 4)], %l2
602 fxor %f14, %f26, %f14
604 srl %o3, 27, %l3
605 andn %o0, %o4, %l4
606 fors %f4, %f7, %f1
607 st %f1, [%i0 + (25*4) + (4)]
609 sll %o4, 30, %l5
610 xor %l1, %l4, %l1
611 fors %f5, %f3, %f8
612 st %f8, [%i0 + (25*4) + (8)]
614 srl %o4, 2, %l7
615 or %l0, %l3, %l0
616 fors %f12, %f11, %f0
617 st %f0, [%i0 + (25*4) + (0)]
619 add %l0, %l1, %l0
620 add %o1, %g1, %l1
621 fors %f4, %f7, %f22
623 or %l5, %l7, %o4
624 add %l0, %l1, %l0
625 fors %f5, %f3, %f23
627 add %l0, %l2, %o2
628 fors %f12, %f11, %f25
630 ! Starting round 16
631 and %o3, %o4, %l1
632 sll %o2, 5, %l0
633 ld [%i0 + (16 * 4)], %l2
634 fxor %f38, %f0, %f36
636 srl %o2, 27, %l3
637 andn %o5, %o3, %l4
638 fxors %f14, %f8, %f12
640 sll %o3, 30, %l5
641 xor %l1, %l4, %l1
642 fxor %f16, %f18, %f14
644 srl %o3, 2, %l7
645 or %l0, %l3, %l0
646 fand %f50, %f36, %f2
648 add %l0, %l1, %l0
649 add %o0, %g1, %l1
650 fand %f50, %f12, %f10
652 or %l5, %l7, %o3
653 add %l0, %l1, %l0
654 fpadd32 %f36, %f36, %f4
656 add %l0, %l2, %o1
658 ! Starting round 17
659 and %o2, %o3, %l1
660 sll %o1, 5, %l0
661 ld [%i0 + (17 * 4)], %l2
662 faligndata %f52, %f2, %f2
664 srl %o1, 27, %l3
665 andn %o4, %o2, %l4
666 faligndata %f52, %f10, %f10
668 sll %o2, 30, %l5
669 xor %l1, %l4, %l1
670 fpadd32s %f12, %f12, %f12
672 srl %o2, 2, %l7
673 or %l0, %l3, %l0
674 fxor %f30, %f16, %f38
675 fmul8x16 %f2, %f54, %f6
677 add %l0, %l1, %l0
678 add %o5, %g1, %l1
679 fxor %f14, %f26, %f14
680 fmul8x16 %f3, %f54, %f2
682 or %l5, %l7, %o2
683 add %l0, %l1, %l0
684 fmul8x16 %f10, %f54, %f10
686 add %l0, %l2, %o0
688 ! Starting round 18
689 and %o1, %o2, %l1
690 sll %o0, 5, %l0
691 ld [%i0 + (18 * 4)], %l2
692 fxor %f38, %f24, %f38
694 srl %o0, 27, %l3
695 andn %o3, %o1, %l4
696 fors %f4, %f7, %f8
697 st %f8, [%i0 + (28*4) + (0)]
699 sll %o1, 30, %l5
700 xor %l1, %l4, %l1
701 fors %f5, %f3, %f0
702 st %f0, [%i0 + (28*4) + (4)]
704 srl %o1, 2, %l7
705 or %l0, %l3, %l0
706 fors %f12, %f11, %f1
707 st %f1, [%i0 + (28*4) + (8)]
709 add %l0, %l1, %l0
710 add %o4, %g1, %l1
711 fors %f4, %f7, %f20
713 or %l5, %l7, %o1
714 add %l0, %l1, %l0
715 fors %f5, %f3, %f21
717 add %l0, %l2, %o5
718 fors %f12, %f11, %f9
720 ! Starting round 19
721 and %o0, %o1, %l1
722 sll %o5, 5, %l0
723 ld [%i0 + (19 * 4)], %l2
724 fxor %f38, %f0, %f36
726 srl %o5, 27, %l3
727 andn %o2, %o0, %l4
728 fxors %f15, %f8, %f12
730 sll %o0, 30, %l5
731 xor %l1, %l4, %l1
732 fxor %f28, %f30, %f38
734 srl %o0, 2, %l7
735 or %l0, %l3, %l0
736 fand %f50, %f36, %f2
738 add %l0, %l1, %l0
739 add %o3, %g1, %l1
740 fand %f50, %f12, %f10
742 or %l5, %l7, %o0
743 add %l0, %l1, %l0
744 fpadd32 %f36, %f36, %f4
746 add %l0, %l2, %o4
748 ld [%i3 + 4 + 16], %g1
750 ! Starting round 20
751 sll %o4, 5, %l0
752 xor %o5, %o0, %l1
753 ld [%i0 + (20 * 4)], %l2
754 faligndata %f52, %f2, %f2
756 srl %o4, 27, %l3
757 xor %l1, %o1, %l1
758 faligndata %f52, %f10, %f10
760 sll %o5, 30, %l5
761 or %l0, %l3, %l0
762 fpadd32s %f12, %f12, %f12
764 add %o2, %g1, %l4
765 add %l0, %l1, %l0
766 fxor %f26, %f28, %f14
767 fmul8x16 %f2, %f54, %f6
769 srl %o5, 2, %l7
770 add %l0, %l4, %l0
771 fxor %f38, %f22, %f38
772 fmul8x16 %f3, %f54, %f2
774 or %l5, %l7, %o5
775 add %l0, %l2, %o3
776 fmovs %f9, %f18
777 fmul8x16 %f10, %f54, %f10
779 ! Starting round 21
780 sll %o3, 5, %l0
781 xor %o4, %o5, %l1
782 ld [%i0 + (21 * 4)], %l2
784 fxor %f14, %f20, %f14
785 srl %o3, 27, %l3
786 xor %l1, %o0, %l1
787 fors %f4, %f7, %f1
788 st %f1, [%i0 + (31*4) + (4)]
790 sll %o4, 30, %l5
791 or %l0, %l3, %l0
792 fors %f5, %f3, %f8
793 st %f8, [%i0 + (31*4) + (8)]
795 add %o1, %g1, %l4
796 add %l0, %l1, %l0
797 fors %f12, %f11, %f0
798 st %f0, [%i0 + (31*4) + (0)]
800 srl %o4, 2, %l7
801 add %l0, %l4, %l0
802 fors %f4, %f7, %f16
804 or %l5, %l7, %o4
805 add %l0, %l2, %o2
806 fors %f5, %f3, %f17
808 fors %f12, %f11, %f19
810 ! Starting round 22
811 sll %o2, 5, %l0
812 xor %o3, %o4, %l1
813 ld [%i0 + (22 * 4)], %l2
814 fxor %f38, %f0, %f36
816 srl %o2, 27, %l3
817 xor %l1, %o5, %l1
818 fxors %f14, %f8, %f12
820 sll %o3, 30, %l5
821 or %l0, %l3, %l0
822 fxor %f26, %f28, %f14
824 add %o0, %g1, %l4
825 add %l0, %l1, %l0
826 fand %f50, %f36, %f2
828 srl %o3, 2, %l7
829 add %l0, %l4, %l0
830 fand %f50, %f12, %f10
832 or %l5, %l7, %o3
833 add %l0, %l2, %o1
835 fpadd32 %f36, %f36, %f4
837 ! Starting round 23
838 sll %o1, 5, %l0
839 xor %o2, %o3, %l1
840 ld [%i0 + (23 * 4)], %l2
841 faligndata %f52, %f2, %f2
843 srl %o1, 27, %l3
844 xor %l1, %o4, %l1
846 faligndata %f52, %f10, %f10
848 sll %o2, 30, %l5
849 or %l0, %l3, %l0
850 fpadd32s %f12, %f12, %f12
852 add %o5, %g1, %l4
853 add %l0, %l1, %l0
854 fxor %f24, %f26, %f38
855 fmul8x16 %f2, %f54, %f6
857 srl %o2, 2, %l7
858 add %l0, %l4, %l0
859 fxor %f14, %f20, %f14
860 fmul8x16 %f3, %f54, %f2
862 or %l5, %l7, %o2
863 add %l0, %l2, %o0
864 fmul8x16 %f10, %f54, %f10
866 ! Starting round 24
867 sll %o0, 5, %l0
868 xor %o1, %o2, %l1
869 ld [%i0 + (24 * 4)], %l2
871 fxor %f38, %f18, %f38
872 srl %o0, 27, %l3
873 xor %l1, %o3, %l1
874 fors %f4, %f7, %f8
875 st %f8, [%i0 + (34*4) + (0)]
877 sll %o1, 30, %l5
878 or %l0, %l3, %l0
879 fors %f5, %f3, %f0
880 st %f0, [%i0 + (34*4) + (4)]
882 add %o4, %g1, %l4
883 add %l0, %l1, %l0
884 fors %f12, %f11, %f1
885 st %f1, [%i0 + (34*4) + (8)]
887 srl %o1, 2, %l7
888 add %l0, %l4, %l0
889 fors %f4, %f7, %f30
891 or %l5, %l7, %o1
892 add %l0, %l2, %o5
893 fors %f5, %f3, %f31
895 fors %f12, %f11, %f9
897 ! Starting round 25
898 sll %o5, 5, %l0
899 xor %o0, %o1, %l1
900 ld [%i0 + (25 * 4)], %l2
901 fxor %f38, %f0, %f36
903 srl %o5, 27, %l3
904 xor %l1, %o2, %l1
905 fxors %f15, %f8, %f12
907 sll %o0, 30, %l5
908 or %l0, %l3, %l0
909 fxor %f22, %f24, %f38
911 add %o3, %g1, %l4
912 add %l0, %l1, %l0
913 fand %f50, %f36, %f2
915 srl %o0, 2, %l7
916 add %l0, %l4, %l0
917 fand %f50, %f12, %f10
919 or %l5, %l7, %o0
920 add %l0, %l2, %o4
922 fpadd32 %f36, %f36, %f4
924 ! Starting round 26
925 sll %o4, 5, %l0
926 xor %o5, %o0, %l1
927 ld [%i0 + (26 * 4)], %l2
928 faligndata %f52, %f2, %f2
930 srl %o4, 27, %l3
931 xor %l1, %o1, %l1
933 faligndata %f52, %f10, %f10
935 sll %o5, 30, %l5
936 or %l0, %l3, %l0
937 fpadd32s %f12, %f12, %f12
939 add %o2, %g1, %l4
940 add %l0, %l1, %l0
941 fxor %f20, %f22, %f14
942 fmul8x16 %f2, %f54, %f6
944 srl %o5, 2, %l7
945 add %l0, %l4, %l0
946 fxor %f38, %f16, %f38
947 fmul8x16 %f3, %f54, %f2
949 or %l5, %l7, %o5
950 add %l0, %l2, %o3
951 fmovs %f9, %f28
952 fmul8x16 %f10, %f54, %f10
954 ! Starting round 27
955 sll %o3, 5, %l0
956 xor %o4, %o5, %l1
957 ld [%i0 + (27 * 4)], %l2
959 fxor %f14, %f30, %f14
960 srl %o3, 27, %l3
961 xor %l1, %o0, %l1
962 fors %f4, %f7, %f1
963 st %f1, [%i0 + (37*4) + (4)]
965 sll %o4, 30, %l5
966 or %l0, %l3, %l0
967 fors %f5, %f3, %f8
968 st %f8, [%i0 + (37*4) + (8)]
970 add %o1, %g1, %l4
971 add %l0, %l1, %l0
972 fors %f12, %f11, %f0
973 st %f0, [%i0 + (37*4) + (0)]
975 srl %o4, 2, %l7
976 add %l0, %l4, %l0
977 fors %f4, %f7, %f26
979 or %l5, %l7, %o4
980 add %l0, %l2, %o2
981 fors %f5, %f3, %f27
983 fors %f12, %f11, %f29
985 ! Starting round 28
986 sll %o2, 5, %l0
987 xor %o3, %o4, %l1
988 ld [%i0 + (28 * 4)], %l2
989 fxor %f38, %f0, %f36
991 srl %o2, 27, %l3
992 xor %l1, %o5, %l1
993 fxors %f14, %f8, %f12
995 sll %o3, 30, %l5
996 or %l0, %l3, %l0
997 fxor %f20, %f22, %f14
999 add %o0, %g1, %l4
1000 add %l0, %l1, %l0
1001 fand %f50, %f36, %f2
1003 srl %o3, 2, %l7
1004 add %l0, %l4, %l0
1005 fand %f50, %f12, %f10
1007 or %l5, %l7, %o3
1008 add %l0, %l2, %o1
1010 fpadd32 %f36, %f36, %f4
1012 ! Starting round 29
1013 sll %o1, 5, %l0
1014 xor %o2, %o3, %l1
1015 ld [%i0 + (29 * 4)], %l2
1016 faligndata %f52, %f2, %f2
1018 srl %o1, 27, %l3
1019 xor %l1, %o4, %l1
1021 faligndata %f52, %f10, %f10
1023 sll %o2, 30, %l5
1024 or %l0, %l3, %l0
1025 fpadd32s %f12, %f12, %f12
1027 add %o5, %g1, %l4
1028 add %l0, %l1, %l0
1029 fxor %f18, %f20, %f38
1030 fmul8x16 %f2, %f54, %f6
1032 srl %o2, 2, %l7
1033 add %l0, %l4, %l0
1034 fxor %f14, %f30, %f14
1035 fmul8x16 %f3, %f54, %f2
1037 or %l5, %l7, %o2
1038 add %l0, %l2, %o0
1039 fmul8x16 %f10, %f54, %f10
1041 ! Starting round 30
1042 sll %o0, 5, %l0
1043 xor %o1, %o2, %l1
1044 ld [%i0 + (30 * 4)], %l2
1046 fxor %f38, %f28, %f38
1047 srl %o0, 27, %l3
1048 xor %l1, %o3, %l1
1049 fors %f4, %f7, %f8
1050 st %f8, [%i0 + (40*4) + (0)]
1052 sll %o1, 30, %l5
1053 or %l0, %l3, %l0
1054 fors %f5, %f3, %f0
1055 st %f0, [%i0 + (40*4) + (4)]
1057 add %o4, %g1, %l4
1058 add %l0, %l1, %l0
1059 fors %f12, %f11, %f1
1060 st %f1, [%i0 + (40*4) + (8)]
1062 srl %o1, 2, %l7
1063 add %l0, %l4, %l0
1064 fors %f4, %f7, %f24
1066 or %l5, %l7, %o1
1067 add %l0, %l2, %o5
1068 fors %f5, %f3, %f25
1070 fors %f12, %f11, %f9
1072 ! Starting round 31
1073 sll %o5, 5, %l0
1074 xor %o0, %o1, %l1
1075 ld [%i0 + (31 * 4)], %l2
1076 fxor %f38, %f0, %f36
1078 srl %o5, 27, %l3
1079 xor %l1, %o2, %l1
1080 fxors %f15, %f8, %f12
1082 sll %o0, 30, %l5
1083 or %l0, %l3, %l0
1084 fxor %f16, %f18, %f38
1086 add %o3, %g1, %l4
1087 add %l0, %l1, %l0
1088 fand %f50, %f36, %f2
1090 srl %o0, 2, %l7
1091 add %l0, %l4, %l0
1092 fand %f50, %f12, %f10
1094 or %l5, %l7, %o0
1095 add %l0, %l2, %o4
1096 fpadd32 %f36, %f36, %f4
1098 ! Starting round 32
1099 sll %o4, 5, %l0
1100 xor %o5, %o0, %l1
1101 ld [%i0 + (32 * 4)], %l2
1102 faligndata %f52, %f2, %f2
1104 srl %o4, 27, %l3
1105 xor %l1, %o1, %l1
1106 faligndata %f52, %f10, %f10
1108 sll %o5, 30, %l5
1109 or %l0, %l3, %l0
1110 fpadd32s %f12, %f12, %f12
1112 add %o2, %g1, %l4
1113 add %l0, %l1, %l0
1114 fxor %f30, %f16, %f14
1115 fmul8x16 %f2, %f54, %f6
1117 srl %o5, 2, %l7
1118 add %l0, %l4, %l0
1119 fxor %f38, %f26, %f38
1120 fmul8x16 %f3, %f54, %f2
1122 or %l5, %l7, %o5
1123 add %l0, %l2, %o3
1124 fmovs %f9, %f22
1125 fmul8x16 %f10, %f54, %f10
1127 ! Starting round 33
1128 sll %o3, 5, %l0
1129 xor %o4, %o5, %l1
1130 ld [%i0 + (33 * 4)], %l2
1131 fxor %f14, %f24, %f14
1133 srl %o3, 27, %l3
1134 xor %l1, %o0, %l1
1135 fors %f4, %f7, %f1
1136 st %f1, [%i0 + (43*4) + (4)]
1138 sll %o4, 30, %l5
1139 or %l0, %l3, %l0
1140 fors %f5, %f3, %f8
1141 st %f8, [%i0 + (43*4) + (8)]
1143 add %o1, %g1, %l4
1144 add %l0, %l1, %l0
1145 fors %f12, %f11, %f0
1146 st %f0, [%i0 + (43*4) + (0)]
1148 srl %o4, 2, %l7
1149 add %l0, %l4, %l0
1150 fors %f4, %f7, %f20
1152 or %l5, %l7, %o4
1153 add %l0, %l2, %o2
1154 fors %f5, %f3, %f21
1156 fors %f12, %f11, %f23
1158 ! Starting round 34
1159 sll %o2, 5, %l0
1160 xor %o3, %o4, %l1
1161 ld [%i0 + (34 * 4)], %l2
1162 fxor %f38, %f0, %f36
1164 srl %o2, 27, %l3
1165 xor %l1, %o5, %l1
1166 fxors %f14, %f8, %f12
1168 sll %o3, 30, %l5
1169 or %l0, %l3, %l0
1170 fxor %f30, %f16, %f14
1172 add %o0, %g1, %l4
1173 add %l0, %l1, %l0
1174 fand %f50, %f36, %f2
1176 srl %o3, 2, %l7
1177 add %l0, %l4, %l0
1178 fand %f50, %f12, %f10
1180 or %l5, %l7, %o3
1181 add %l0, %l2, %o1
1182 fpadd32 %f36, %f36, %f4
1184 ! Starting round 35
1185 sll %o1, 5, %l0
1186 xor %o2, %o3, %l1
1187 ld [%i0 + (35 * 4)], %l2
1188 faligndata %f52, %f2, %f2
1190 srl %o1, 27, %l3
1191 xor %l1, %o4, %l1
1192 faligndata %f52, %f10, %f10
1194 sll %o2, 30, %l5
1195 or %l0, %l3, %l0
1196 fpadd32s %f12, %f12, %f12
1198 add %o5, %g1, %l4
1199 add %l0, %l1, %l0
1200 fxor %f28, %f30, %f38
1201 fmul8x16 %f2, %f54, %f6
1203 srl %o2, 2, %l7
1204 add %l0, %l4, %l0
1205 fxor %f14, %f24, %f14
1206 fmul8x16 %f3, %f54, %f2
1208 or %l5, %l7, %o2
1209 add %l0, %l2, %o0
1210 fmul8x16 %f10, %f54, %f10
1212 ! Starting round 36
1213 sll %o0, 5, %l0
1214 xor %o1, %o2, %l1
1215 ld [%i0 + (36 * 4)], %l2
1216 fxor %f38, %f22, %f38
1218 srl %o0, 27, %l3
1219 xor %l1, %o3, %l1
1220 fors %f4, %f7, %f8
1221 st %f8, [%i0 + (46*4) + (0)]
1223 sll %o1, 30, %l5
1224 or %l0, %l3, %l0
1225 fors %f5, %f3, %f0
1226 st %f0, [%i0 + (46*4) + (4)]
1228 add %o4, %g1, %l4
1229 add %l0, %l1, %l0
1230 fors %f12, %f11, %f1
1231 st %f1, [%i0 + (46*4) + (8)]
1233 srl %o1, 2, %l7
1234 add %l0, %l4, %l0
1235 fors %f4, %f7, %f18
1237 or %l5, %l7, %o1
1238 add %l0, %l2, %o5
1239 fors %f5, %f3, %f19
1241 fors %f12, %f11, %f9
1243 ! Starting round 37
1244 sll %o5, 5, %l0
1245 xor %o0, %o1, %l1
1246 ld [%i0 + (37 * 4)], %l2
1247 fxor %f38, %f0, %f36
1249 srl %o5, 27, %l3
1250 xor %l1, %o2, %l1
1251 fxors %f15, %f8, %f12
1253 sll %o0, 30, %l5
1254 or %l0, %l3, %l0
1255 fxor %f26, %f28, %f38
1257 add %o3, %g1, %l4
1258 add %l0, %l1, %l0
1259 fand %f50, %f36, %f2
1261 srl %o0, 2, %l7
1262 add %l0, %l4, %l0
1263 fand %f50, %f12, %f10
1265 or %l5, %l7, %o0
1266 add %l0, %l2, %o4
1267 fpadd32 %f36, %f36, %f4
1269 ! Starting round 38
1270 sll %o4, 5, %l0
1271 xor %o5, %o0, %l1
1272 ld [%i0 + (38 * 4)], %l2
1273 faligndata %f52, %f2, %f2
1275 srl %o4, 27, %l3
1276 xor %l1, %o1, %l1
1277 faligndata %f52, %f10, %f10
1279 sll %o5, 30, %l5
1280 or %l0, %l3, %l0
1281 fpadd32s %f12, %f12, %f12
1283 add %o2, %g1, %l4
1284 add %l0, %l1, %l0
1285 fxor %f24, %f26, %f14
1286 fmul8x16 %f2, %f54, %f6
1288 srl %o5, 2, %l7
1289 add %l0, %l4, %l0
1290 fxor %f38, %f20, %f38
1291 fmul8x16 %f3, %f54, %f2
1293 or %l5, %l7, %o5
1294 add %l0, %l2, %o3
1295 fmovs %f9, %f16
1296 fmul8x16 %f10, %f54, %f10
1298 ! Starting round 39
1299 sll %o3, 5, %l0
1300 xor %o4, %o5, %l1
1301 ld [%i0 + (39 * 4)], %l2
1302 fxor %f14, %f18, %f14
1304 srl %o3, 27, %l3
1305 xor %l1, %o0, %l1
1306 fors %f4, %f7, %f1
1307 st %f1, [%i0 + (49*4) + (4)]
1309 sll %o4, 30, %l5
1310 or %l0, %l3, %l0
1311 fors %f5, %f3, %f8
1312 st %f8, [%i0 + (49*4) + (8)]
1314 add %o1, %g1, %l4
1315 add %l0, %l1, %l0
1316 fors %f12, %f11, %f0
1317 st %f0, [%i0 + (49*4) + (0)]
1319 srl %o4, 2, %l7
1320 add %l0, %l4, %l0
1321 fors %f4, %f7, %f30
1323 or %l5, %l7, %o4
1324 add %l0, %l2, %o2
1325 fors %f5, %f3, %f31
1327 fors %f12, %f11, %f17
1328 ld [%i3 + 8 + 16], %g1
1330 ! Starting round 40
1331 sll %o2, 5, %l0
1332 and %o3, %o4, %l1
1333 ld [%i0 + (40 * 4)], %l2
1334 fxor %f38, %f0, %f36
1336 srl %o2, 27, %l3
1337 or %o3, %o4, %l4
1338 fxors %f14, %f8, %f12
1340 sll %o3, 30, %l5
1341 and %l4, %o5, %l4
1342 fxor %f24, %f26, %f14
1344 add %o0, %g1, %l6
1345 or %l1, %l4, %l1
1346 fand %f50, %f36, %f2
1348 or %l0, %l3, %l0
1349 add %l6, %l1, %l1
1350 fand %f50, %f12, %f10
1352 srl %o3, 2, %l7
1353 add %l0, %l1, %l0
1354 fpadd32 %f36, %f36, %f4
1356 or %l5, %l7, %o3
1357 add %l0, %l2, %o1
1359 ! Starting round 41
1360 sll %o1, 5, %l0
1361 and %o2, %o3, %l1
1362 ld [%i0 + (41 * 4)], %l2
1363 faligndata %f52, %f2, %f2
1365 srl %o1, 27, %l3
1366 or %o2, %o3, %l4
1367 faligndata %f52, %f10, %f10
1369 sll %o2, 30, %l5
1370 and %l4, %o4, %l4
1371 fpadd32s %f12, %f12, %f12
1373 add %o5, %g1, %l6
1374 or %l1, %l4, %l1
1375 fxor %f22, %f24, %f38
1376 fmul8x16 %f2, %f54, %f6
1378 or %l0, %l3, %l0
1379 add %l6, %l1, %l1
1380 fxor %f14, %f18, %f14
1381 fmul8x16 %f3, %f54, %f2
1383 srl %o2, 2, %l7
1384 add %l0, %l1, %l0
1385 fmul8x16 %f10, %f54, %f10
1387 or %l5, %l7, %o2
1388 add %l0, %l2, %o0
1390 ! Starting round 42
1391 sll %o0, 5, %l0
1392 and %o1, %o2, %l1
1393 ld [%i0 + (42 * 4)], %l2
1394 fxor %f38, %f16, %f38
1396 srl %o0, 27, %l3
1397 or %o1, %o2, %l4
1398 fors %f4, %f7, %f8
1399 st %f8, [%i0 + (52*4) +(0)]
1401 sll %o1, 30, %l5
1402 and %l4, %o3, %l4
1403 fors %f5, %f3, %f0
1404 st %f0, [%i0 + (52*4) + (4)]
1406 add %o4, %g1, %l6
1407 or %l1, %l4, %l1
1408 fors %f12, %f11, %f1
1409 st %f1, [%i0 + (52*4) + (8)]
1411 or %l0, %l3, %l0
1412 add %l6, %l1, %l1
1413 fors %f4, %f7, %f28
1415 srl %o1, 2, %l7
1416 add %l0, %l1, %l0
1417 fors %f5, %f3, %f29
1419 or %l5, %l7, %o1
1420 add %l0, %l2, %o5
1421 fors %f12, %f11, %f9
1423 ! Starting round 43
1424 sll %o5, 5, %l0
1425 and %o0, %o1, %l1
1426 ld [%i0 + (43 * 4)], %l2
1427 fxor %f38, %f0, %f36
1429 srl %o5, 27, %l3
1430 or %o0, %o1, %l4
1431 fxors %f15, %f8, %f12
1433 sll %o0, 30, %l5
1434 and %l4, %o2, %l4
1435 fxor %f20, %f22, %f38
1437 add %o3, %g1, %l6
1438 or %l1, %l4, %l1
1439 fand %f50, %f36, %f2
1441 or %l0, %l3, %l0
1442 add %l6, %l1, %l1
1443 fand %f50, %f12, %f10
1445 srl %o0, 2, %l7
1446 add %l0, %l1, %l0
1447 fpadd32 %f36, %f36, %f4
1449 or %l5, %l7, %o0
1450 add %l0, %l2, %o4
1452 ! Starting round 44
1453 sll %o4, 5, %l0
1454 and %o5, %o0, %l1
1455 ld [%i0 + (44 * 4)], %l2
1456 faligndata %f52, %f2, %f2
1458 srl %o4, 27, %l3
1459 or %o5, %o0, %l4
1460 faligndata %f52, %f10, %f10
1462 sll %o5, 30, %l5
1463 and %l4, %o1, %l4
1464 fpadd32s %f12, %f12, %f12
1466 add %o2, %g1, %l6
1467 or %l1, %l4, %l1
1468 fxor %f18, %f20, %f14
1469 fmul8x16 %f2, %f54, %f6
1471 or %l0, %l3, %l0
1472 add %l6, %l1, %l1
1473 fxor %f38, %f30, %f38
1474 fmul8x16 %f3, %f54, %f2
1476 srl %o5, 2, %l7
1477 add %l0, %l1, %l0
1478 fmovs %f9, %f26
1479 fmul8x16 %f10, %f54, %f10
1481 or %l5, %l7, %o5
1482 add %l0, %l2, %o3
1484 ! Starting round 45
1485 sll %o3, 5, %l0
1486 and %o4, %o5, %l1
1487 ld [%i0 + (45 * 4)], %l2
1488 fxor %f14, %f28, %f14
1490 srl %o3, 27, %l3
1491 or %o4, %o5, %l4
1492 fors %f4, %f7, %f1
1493 st %f1, [%i0 + (55*4) +(4)]
1495 sll %o4, 30, %l5
1496 and %l4, %o0, %l4
1497 fors %f5, %f3, %f8
1498 st %f8, [%i0 + (55*4) + (8)]
1500 add %o1, %g1, %l6
1501 or %l1, %l4, %l1
1502 fors %f12, %f11, %f0
1503 st %f0, [%i0 + (55*4) + (0)]
1505 or %l0, %l3, %l0
1506 add %l6, %l1, %l1
1507 fors %f4, %f7, %f24
1509 srl %o4, 2, %l7
1510 add %l0, %l1, %l0
1511 fors %f5, %f3, %f25
1513 or %l5, %l7, %o4
1514 add %l0, %l2, %o2
1515 fors %f12, %f11, %f27
1517 ! Starting round 46
1518 sll %o2, 5, %l0
1519 and %o3, %o4, %l1
1520 ld [%i0 + (46 * 4)], %l2
1521 fxor %f38, %f0, %f36
1523 srl %o2, 27, %l3
1524 or %o3, %o4, %l4
1525 fxors %f14, %f8, %f12
1527 sll %o3, 30, %l5
1528 and %l4, %o5, %l4
1529 fxor %f18, %f20, %f14
1531 add %o0, %g1, %l6
1532 or %l1, %l4, %l1
1533 fand %f50, %f36, %f2
1535 or %l0, %l3, %l0
1536 add %l6, %l1, %l1
1537 fand %f50, %f12, %f10
1539 srl %o3, 2, %l7
1540 add %l0, %l1, %l0
1541 fpadd32 %f36, %f36, %f4
1543 or %l5, %l7, %o3
1544 add %l0, %l2, %o1
1546 ! Starting round 47
1547 sll %o1, 5, %l0
1548 and %o2, %o3, %l1
1549 ld [%i0 + (47 * 4)], %l2
1550 faligndata %f52, %f2, %f2
1552 srl %o1, 27, %l3
1553 or %o2, %o3, %l4
1554 faligndata %f52, %f10, %f10
1556 sll %o2, 30, %l5
1557 and %l4, %o4, %l4
1558 fpadd32s %f12, %f12, %f12
1560 add %o5, %g1, %l6
1561 or %l1, %l4, %l1
1562 fxor %f16, %f18, %f38
1563 fmul8x16 %f2, %f54, %f6
1565 or %l0, %l3, %l0
1566 add %l6, %l1, %l1
1567 fxor %f14, %f28, %f14
1568 fmul8x16 %f3, %f54, %f2
1570 srl %o2, 2, %l7
1571 add %l0, %l1, %l0
1572 fmul8x16 %f10, %f54, %f10
1574 or %l5, %l7, %o2
1575 add %l0, %l2, %o0
1577 ! Starting round 48
1578 sll %o0, 5, %l0
1579 and %o1, %o2, %l1
1580 ld [%i0 + (48 * 4)], %l2
1581 fxor %f38, %f26, %f38
1583 srl %o0, 27, %l3
1584 or %o1, %o2, %l4
1585 fors %f4, %f7, %f8
1586 st %f8, [%i0 + (58*4) +(0)]
1588 sll %o1, 30, %l5
1589 and %l4, %o3, %l4
1590 fors %f5, %f3, %f0
1591 st %f0, [%i0 + (58*4) + (4)]
1593 add %o4, %g1, %l6
1594 or %l1, %l4, %l1
1595 fors %f12, %f11, %f1
1596 st %f1, [%i0 + (58*4) + (8)]
1598 or %l0, %l3, %l0
1599 add %l6, %l1, %l1
1600 fors %f4, %f7, %f22
1602 srl %o1, 2, %l7
1603 add %l0, %l1, %l0
1604 fors %f5, %f3, %f23
1606 or %l5, %l7, %o1
1607 add %l0, %l2, %o5
1608 fors %f12, %f11, %f9
1610 ! Starting round 49
1611 sll %o5, 5, %l0
1612 and %o0, %o1, %l1
1613 ld [%i0 + (49 * 4)], %l2
1614 fxor %f38, %f0, %f36
1616 srl %o5, 27, %l3
1617 or %o0, %o1, %l4
1618 fxors %f15, %f8, %f12
1620 sll %o0, 30, %l5
1621 and %l4, %o2, %l4
1622 fxor %f30, %f16, %f38
1624 add %o3, %g1, %l6
1625 or %l1, %l4, %l1
1626 fand %f50, %f36, %f2
1628 or %l0, %l3, %l0
1629 add %l6, %l1, %l1
1630 fand %f50, %f12, %f10
1632 srl %o0, 2, %l7
1633 add %l0, %l1, %l0
1634 fpadd32 %f36, %f36, %f4
1636 or %l5, %l7, %o0
1637 add %l0, %l2, %o4
1639 ! Starting round 50
1640 sll %o4, 5, %l0
1641 and %o5, %o0, %l1
1642 ld [%i0 + (50 * 4)], %l2
1643 faligndata %f52, %f2, %f2
1645 srl %o4, 27, %l3
1646 or %o5, %o0, %l4
1647 faligndata %f52, %f10, %f10
1649 sll %o5, 30, %l5
1650 and %l4, %o1, %l4
1651 fpadd32s %f12, %f12, %f12
1653 add %o2, %g1, %l6
1654 or %l1, %l4, %l1
1655 fxor %f28, %f30, %f14
1656 fmul8x16 %f2, %f54, %f6
1658 or %l0, %l3, %l0
1659 add %l6, %l1, %l1
1660 fxor %f38, %f24, %f38
1661 fmul8x16 %f3, %f54, %f2
1663 srl %o5, 2, %l7
1664 add %l0, %l1, %l0
1665 fmovs %f9, %f20
1666 fmul8x16 %f10, %f54, %f10
1668 or %l5, %l7, %o5
1669 add %l0, %l2, %o3
1671 ! Starting round 51
1672 sll %o3, 5, %l0
1673 and %o4, %o5, %l1
1674 ld [%i0 + (51 * 4)], %l2
1675 fxor %f14, %f22, %f14
1677 srl %o3, 27, %l3
1678 or %o4, %o5, %l4
1679 fors %f4, %f7, %f1
1680 st %f1, [%i0 + (61*4) +(4)]
1682 sll %o4, 30, %l5
1683 and %l4, %o0, %l4
1684 fors %f5, %f3, %f8
1685 st %f8, [%i0 + (61*4) + (8)]
1687 add %o1, %g1, %l6
1688 or %l1, %l4, %l1
1689 fors %f12, %f11, %f0
1690 st %f0, [%i0 + (61*4) + (0)]
1692 or %l0, %l3, %l0
1693 add %l6, %l1, %l1
1694 fors %f4, %f7, %f18
1696 srl %o4, 2, %l7
1697 add %l0, %l1, %l0
1698 fors %f5, %f3, %f19
1700 or %l5, %l7, %o4
1701 add %l0, %l2, %o2
1702 fors %f12, %f11, %f21
1704 ! Starting round 52
1705 sll %o2, 5, %l0
1706 and %o3, %o4, %l1
1707 ld [%i0 + (52 * 4)], %l2
1708 fxor %f38, %f0, %f36
1710 srl %o2, 27, %l3
1711 or %o3, %o4, %l4
1712 fxors %f14, %f8, %f12
1714 sll %o3, 30, %l5
1715 and %l4, %o5, %l4
1716 fxor %f28, %f30, %f14
1718 add %o0, %g1, %l6
1719 or %l1, %l4, %l1
1720 fand %f50, %f36, %f2
1722 or %l0, %l3, %l0
1723 add %l6, %l1, %l1
1724 fand %f50, %f12, %f10
1726 srl %o3, 2, %l7
1727 add %l0, %l1, %l0
1728 fpadd32 %f36, %f36, %f4
1730 or %l5, %l7, %o3
1731 add %l0, %l2, %o1
1733 ! Starting round 53
1734 sll %o1, 5, %l0
1735 and %o2, %o3, %l1
1736 ld [%i0 + (53 * 4)], %l2
1737 faligndata %f52, %f2, %f2
1739 srl %o1, 27, %l3
1740 or %o2, %o3, %l4
1741 faligndata %f52, %f10, %f10
1743 sll %o2, 30, %l5
1744 and %l4, %o4, %l4
1745 fpadd32s %f12, %f12, %f12
1747 add %o5, %g1, %l6
1748 or %l1, %l4, %l1
1749 fxor %f26, %f28, %f38
1750 fmul8x16 %f2, %f54, %f6
1752 or %l0, %l3, %l0
1753 add %l6, %l1, %l1
1754 fxor %f14, %f22, %f14
1755 fmul8x16 %f3, %f54, %f2
1757 srl %o2, 2, %l7
1758 add %l0, %l1, %l0
1759 fmul8x16 %f10, %f54, %f10
1761 or %l5, %l7, %o2
1762 add %l0, %l2, %o0
1764 ! Starting round 54
1765 sll %o0, 5, %l0
1766 and %o1, %o2, %l1
1767 ld [%i0 + (54 * 4)], %l2
1768 fxor %f38, %f20, %f38
1770 srl %o0, 27, %l3
1771 or %o1, %o2, %l4
1772 fors %f4, %f7, %f8
1773 st %f8, [%i0 + (64*4) +(0)]
1775 sll %o1, 30, %l5
1776 and %l4, %o3, %l4
1777 fors %f5, %f3, %f0
1778 st %f0, [%i0 + (64*4) + (4)]
1780 add %o4, %g1, %l6
1781 or %l1, %l4, %l1
1782 fors %f12, %f11, %f1
1783 st %f1, [%i0 + (64*4) + (8)]
1785 or %l0, %l3, %l0
1786 add %l6, %l1, %l1
1787 fors %f4, %f7, %f16
1789 srl %o1, 2, %l7
1790 add %l0, %l1, %l0
1791 fors %f5, %f3, %f17
1793 or %l5, %l7, %o1
1794 add %l0, %l2, %o5
1795 fors %f12, %f11, %f9
1797 ! Starting round 55
1798 sll %o5, 5, %l0
1799 and %o0, %o1, %l1
1800 ld [%i0 + (55 * 4)], %l2
1801 fxor %f38, %f0, %f36
1803 srl %o5, 27, %l3
1804 or %o0, %o1, %l4
1805 fxors %f15, %f8, %f12
1807 sll %o0, 30, %l5
1808 and %l4, %o2, %l4
1809 fxor %f24, %f26, %f38
1811 add %o3, %g1, %l6
1812 or %l1, %l4, %l1
1813 fand %f50, %f36, %f2
1815 or %l0, %l3, %l0
1816 add %l6, %l1, %l1
1817 fand %f50, %f12, %f10
1819 srl %o0, 2, %l7
1820 add %l0, %l1, %l0
1821 fpadd32 %f36, %f36, %f4
1823 or %l5, %l7, %o0
1824 add %l0, %l2, %o4
1826 ! Starting round 56
1827 sll %o4, 5, %l0
1828 and %o5, %o0, %l1
1829 ld [%i0 + (56 * 4)], %l2
1830 faligndata %f52, %f2, %f2
1832 srl %o4, 27, %l3
1833 or %o5, %o0, %l4
1834 faligndata %f52, %f10, %f10
1836 sll %o5, 30, %l5
1837 and %l4, %o1, %l4
1838 fpadd32s %f12, %f12, %f12
1840 add %o2, %g1, %l6
1841 or %l1, %l4, %l1
1842 fxor %f22, %f24, %f14
1843 fmul8x16 %f2, %f54, %f6
1845 or %l0, %l3, %l0
1846 add %l6, %l1, %l1
1847 fxor %f38, %f18, %f38
1848 fmul8x16 %f3, %f54, %f2
1850 srl %o5, 2, %l7
1851 add %l0, %l1, %l0
1852 fmovs %f9, %f30
1853 fmul8x16 %f10, %f54, %f10
1855 or %l5, %l7, %o5
1856 add %l0, %l2, %o3
1858 ! Starting round 57
1859 sll %o3, 5, %l0
1860 and %o4, %o5, %l1
1861 ld [%i0 + (57 * 4)], %l2
1862 fxor %f14, %f16, %f14
1864 srl %o3, 27, %l3
1865 or %o4, %o5, %l4
1866 fors %f4, %f7, %f1
1867 st %f1, [%i0 + (67*4) +(4)]
1869 sll %o4, 30, %l5
1870 and %l4, %o0, %l4
1871 fors %f5, %f3, %f8
1872 st %f8, [%i0 + (67*4) + (8)]
1874 add %o1, %g1, %l6
1875 or %l1, %l4, %l1
1876 fors %f12, %f11, %f0
1877 st %f0, [%i0 + (67*4) + (0)]
1879 or %l0, %l3, %l0
1880 add %l6, %l1, %l1
1881 fors %f4, %f7, %f28
1883 srl %o4, 2, %l7
1884 add %l0, %l1, %l0
1885 fors %f5, %f3, %f29
1887 or %l5, %l7, %o4
1888 add %l0, %l2, %o2
1889 fors %f12, %f11, %f31
1891 ! Starting round 58
1892 sll %o2, 5, %l0
1893 and %o3, %o4, %l1
1894 ld [%i0 + (58 * 4)], %l2
1895 fxor %f38, %f0, %f36
1897 srl %o2, 27, %l3
1898 or %o3, %o4, %l4
1899 fxors %f14, %f8, %f12
1901 sll %o3, 30, %l5
1902 and %l4, %o5, %l4
1903 fxor %f22, %f24, %f14
1905 add %o0, %g1, %l6
1906 or %l1, %l4, %l1
1907 fand %f50, %f36, %f2
1909 or %l0, %l3, %l0
1910 add %l6, %l1, %l1
1911 fand %f50, %f12, %f10
1913 srl %o3, 2, %l7
1914 add %l0, %l1, %l0
1915 fpadd32 %f36, %f36, %f4
1917 or %l5, %l7, %o3
1918 add %l0, %l2, %o1
1920 ! Starting round 59
1921 sll %o1, 5, %l0
1922 and %o2, %o3, %l1
1923 ld [%i0 + (59 * 4)], %l2
1924 faligndata %f52, %f2, %f2
1926 srl %o1, 27, %l3
1927 or %o2, %o3, %l4
1928 faligndata %f52, %f10, %f10
1930 sll %o2, 30, %l5
1931 and %l4, %o4, %l4
1932 fpadd32s %f12, %f12, %f12
1934 add %o5, %g1, %l6
1935 or %l1, %l4, %l1
1936 fxor %f20, %f22, %f38
1937 fmul8x16 %f2, %f54, %f6
1939 or %l0, %l3, %l0
1940 add %l6, %l1, %l1
1941 fxor %f14, %f16, %f14
1942 fmul8x16 %f3, %f54, %f2
1944 srl %o2, 2, %l7
1945 add %l0, %l1, %l0
1946 fmul8x16 %f10, %f54, %f10
1948 or %l5, %l7, %o2
1949 add %l0, %l2, %o0
1950 ld [%i3 + 12 + 16], %g1
1952 ! Starting round 60
1953 sll %o0, 5, %l0
1954 xor %o1, %o2, %l1
1955 ld [%i0 + (60 * 4)], %l2
1957 fxor %f38, %f30, %f38
1958 srl %o0, 27, %l3
1959 xor %l1, %o3, %l1
1960 fors %f4, %f7, %f8
1961 st %f8, [%i0 + (70*4) + (0)]
1963 sll %o1, 30, %l5
1964 or %l0, %l3, %l0
1965 fors %f5, %f3, %f0
1966 st %f0, [%i0 + (70*4) + (4)]
1968 add %o4, %g1, %l4
1969 add %l0, %l1, %l0
1970 fors %f12, %f11, %f1
1971 st %f1, [%i0 + (70*4) + (8)]
1973 srl %o1, 2, %l7
1974 add %l0, %l4, %l0
1975 fors %f4, %f7, %f26
1977 or %l5, %l7, %o1
1978 add %l0, %l2, %o5
1979 fors %f5, %f3, %f27
1981 fors %f12, %f11, %f9
1983 ! Starting round 61
1984 sll %o5, 5, %l0
1985 xor %o0, %o1, %l1
1986 ld [%i0 + (61 * 4)], %l2
1987 fxor %f38, %f0, %f36
1989 srl %o5, 27, %l3
1990 xor %l1, %o2, %l1
1991 fxors %f15, %f8, %f12
1993 sll %o0, 30, %l5
1994 or %l0, %l3, %l0
1995 fxor %f18, %f20, %f38
1997 add %o3, %g1, %l4
1998 add %l0, %l1, %l0
1999 fand %f50, %f36, %f2
2001 srl %o0, 2, %l7
2002 add %l0, %l4, %l0
2003 fand %f50, %f12, %f10
2005 or %l5, %l7, %o0
2006 add %l0, %l2, %o4
2007 fpadd32 %f36, %f36, %f4
2009 ! Starting round 62
2010 sll %o4, 5, %l0
2011 xor %o5, %o0, %l1
2012 ld [%i0 + (62 * 4)], %l2
2013 faligndata %f52, %f2, %f2
2015 srl %o4, 27, %l3
2016 xor %l1, %o1, %l1
2017 faligndata %f52, %f10, %f10
2019 sll %o5, 30, %l5
2020 or %l0, %l3, %l0
2021 fpadd32s %f12, %f12, %f12
2023 add %o2, %g1, %l4
2024 add %l0, %l1, %l0
2025 fxor %f16, %f18, %f14
2026 fmul8x16 %f2, %f54, %f6
2028 srl %o5, 2, %l7
2029 add %l0, %l4, %l0
2030 fxor %f38, %f28, %f38
2031 fmul8x16 %f3, %f54, %f2
2033 or %l5, %l7, %o5
2034 add %l0, %l2, %o3
2035 fmovs %f9, %f24
2036 fmul8x16 %f10, %f54, %f10
2038 ! Starting round 63
2039 sll %o3, 5, %l0
2040 xor %o4, %o5, %l1
2041 ld [%i0 + (63 * 4)], %l2
2042 fxor %f14, %f26, %f14
2044 srl %o3, 27, %l3
2045 xor %l1, %o0, %l1
2046 fors %f4, %f7, %f1
2047 st %f1, [%i0 + (73*4) + (4)]
2049 sll %o4, 30, %l5
2050 or %l0, %l3, %l0
2051 fors %f5, %f3, %f8
2052 st %f8, [%i0 + (73*4) + (8)]
2054 add %o1, %g1, %l4
2055 add %l0, %l1, %l0
2056 fors %f12, %f11, %f0
2057 st %f0, [%i0 + (73*4) + (0)]
2059 srl %o4, 2, %l7
2060 add %l0, %l4, %l0
2061 fors %f4, %f7, %f22
2063 or %l5, %l7, %o4
2064 add %l0, %l2, %o2
2065 fors %f5, %f3, %f23
2067 fors %f12, %f11, %f25
2069 ! Starting round 64
2070 sll %o2, 5, %l0
2071 xor %o3, %o4, %l1
2072 ld [%i0 + (64 * 4)], %l2
2073 fxor %f38, %f0, %f36
2075 srl %o2, 27, %l3
2076 xor %l1, %o5, %l1
2077 fxors %f14, %f8, %f12
2079 sll %o3, 30, %l5
2080 or %l0, %l3, %l0
2081 fxor %f16, %f18, %f14
2083 add %o0, %g1, %l4
2084 add %l0, %l1, %l0
2085 fand %f50, %f36, %f2
2087 srl %o3, 2, %l7
2088 add %l0, %l4, %l0
2089 fand %f50, %f12, %f10
2091 or %l5, %l7, %o3
2092 add %l0, %l2, %o1
2093 fpadd32 %f36, %f36, %f4
2095 ! Starting round 65
2096 sll %o1, 5, %l0
2097 xor %o2, %o3, %l1
2098 ld [%i0 + (65 * 4)], %l2
2099 faligndata %f52, %f2, %f2
2101 srl %o1, 27, %l3
2102 xor %l1, %o4, %l1
2103 faligndata %f52, %f10, %f10
2105 sll %o2, 30, %l5
2106 or %l0, %l3, %l0
2107 fpadd32s %f12, %f12, %f12
2109 add %o5, %g1, %l4
2110 add %l0, %l1, %l0
2111 fxor %f30, %f16, %f38
2112 fmul8x16 %f2, %f54, %f6
2114 srl %o2, 2, %l7
2115 add %l0, %l4, %l0
2116 fxor %f14, %f26, %f14
2117 fmul8x16 %f3, %f54, %f2
2119 or %l5, %l7, %o2
2120 add %l0, %l2, %o0
2121 fmul8x16 %f10, %f54, %f10
2123 ! Starting round 66
2124 sll %o0, 5, %l0
2125 xor %o1, %o2, %l1
2126 ld [%i0 + (66 * 4)], %l2
2127 fxor %f38, %f24, %f38
2129 srl %o0, 27, %l3
2130 xor %l1, %o3, %l1
2131 fors %f4, %f7, %f8
2132 st %f8, [%i0 + (76*4) + (0)]
2134 sll %o1, 30, %l5
2135 or %l0, %l3, %l0
2136 fors %f5, %f3, %f0
2137 st %f0, [%i0 + (76*4) + (4)]
2139 add %o4, %g1, %l4
2140 add %l0, %l1, %l0
2141 fors %f12, %f11, %f1
2142 st %f1, [%i0 + (76*4) + (8)]
2144 srl %o1, 2, %l7
2145 add %l0, %l4, %l0
2146 fors %f4, %f7, %f20
2148 or %l5, %l7, %o1
2149 add %l0, %l2, %o5
2150 fors %f5, %f3, %f21
2152 fors %f12, %f11, %f9
2154 ! Starting round 67
2155 sll %o5, 5, %l0
2156 xor %o0, %o1, %l1
2157 ld [%i0 + (67 * 4)], %l2
2158 fxor %f38, %f0, %f36
2160 srl %o5, 27, %l3
2161 xor %l1, %o2, %l1
2162 fxors %f15, %f8, %f12
2164 sll %o0, 30, %l5
2165 or %l0, %l3, %l0
2166 fxor %f28, %f30, %f38
2168 add %o3, %g1, %l4
2169 add %l0, %l1, %l0
2170 fand %f50, %f36, %f2
2172 srl %o0, 2, %l7
2173 add %l0, %l4, %l0
2174 fand %f50, %f12, %f10
2176 or %l5, %l7, %o0
2177 add %l0, %l2, %o4
2178 fpadd32 %f36, %f36, %f4
2180 ! Starting round 68
2181 sll %o4, 5, %l0
2182 xor %o5, %o0, %l1
2183 ld [%i0 + (68 * 4)], %l2
2184 faligndata %f52, %f2, %f2
2186 srl %o4, 27, %l3
2187 xor %l1, %o1, %l1
2188 faligndata %f52, %f10, %f10
2190 sll %o5, 30, %l5
2191 or %l0, %l3, %l0
2192 fpadd32s %f12, %f12, %f12
2194 add %o2, %g1, %l4
2195 add %l0, %l1, %l0
2196 fxor %f26, %f28, %f14
2197 fmul8x16 %f2, %f54, %f6
2199 srl %o5, 2, %l7
2200 add %l0, %l4, %l0
2201 fxor %f38, %f22, %f38
2202 fmul8x16 %f3, %f54, %f2
2204 or %l5, %l7, %o5
2205 add %l0, %l2, %o3
2206 fmovs %f9, %f18
2207 fmul8x16 %f10, %f54, %f10
2209 ! Starting round 69
2210 sll %o3, 5, %l0
2211 xor %o4, %o5, %l1
2212 ld [%i0 + (69 * 4)], %l2
2214 fxor %f14, %f20, %f14
2215 srl %o3, 27, %l3
2216 xor %l1, %o0, %l1
2218 sll %o4, 30, %l5
2219 or %l0, %l3, %l0
2221 add %o1, %g1, %l4
2222 add %l0, %l1, %l0
2223 fors %f12, %f11, %f0
2224 st %f0, [%i0 + (79*4) + (0)]
2226 srl %o4, 2, %l7
2227 add %l0, %l4, %l0
2229 or %l5, %l7, %o4
2230 add %l0, %l2, %o2
2232 ! Starting round 70
2233 sll %o2, 5, %l0
2234 xor %o3, %o4, %l1
2235 ld [%i0 + (70 * 4)], %l2
2237 srl %o2, 27, %l3
2238 xor %l1, %o5, %l1
2240 sll %o3, 30, %l5
2241 or %l0, %l3, %l0
2243 srl %o3, 2, %l7
2244 add %l0, %l1, %l0
2246 add %o0, %g1, %l1
2247 add %l0, %l2, %l0
2249 add %l0, %l1, %o1
2250 or %l5, %l7, %o3
2252 ! Starting round 71
2253 sll %o1, 5, %l0
2254 xor %o2, %o3, %l1
2255 ld [%i0 + (71 * 4)], %l2
2257 srl %o1, 27, %l3
2258 xor %l1, %o4, %l1
2260 sll %o2, 30, %l5
2261 or %l0, %l3, %l0
2263 srl %o2, 2, %l7
2264 add %l0, %l1, %l0
2266 add %o5, %g1, %l1
2267 add %l0, %l2, %l0
2269 add %l0, %l1, %o0
2270 or %l5, %l7, %o2
2272 ! Starting round 72
2273 sll %o0, 5, %l0
2274 xor %o1, %o2, %l1
2275 ld [%i0 + (72 * 4)], %l2
2277 srl %o0, 27, %l3
2278 xor %l1, %o3, %l1
2280 sll %o1, 30, %l5
2281 or %l0, %l3, %l0
2283 srl %o1, 2, %l7
2284 add %l0, %l1, %l0
2286 add %o4, %g1, %l1
2287 add %l0, %l2, %l0
2289 add %l0, %l1, %o5
2290 or %l5, %l7, %o1
2292 ! Starting round 73
2293 sll %o5, 5, %l0
2294 xor %o0, %o1, %l1
2295 ld [%i0 + (73 * 4)], %l2
2297 srl %o5, 27, %l3
2298 xor %l1, %o2, %l1
2300 sll %o0, 30, %l5
2301 or %l0, %l3, %l0
2303 srl %o0, 2, %l7
2304 add %l0, %l1, %l0
2306 add %o3, %g1, %l1
2307 add %l0, %l2, %l0
2309 add %l0, %l1, %o4
2310 or %l5, %l7, %o0
2312 ! Starting round 74
2313 sll %o4, 5, %l0
2314 xor %o5, %o0, %l1
2315 ld [%i0 + (74 * 4)], %l2
2317 srl %o4, 27, %l3
2318 xor %l1, %o1, %l1
2320 sll %o5, 30, %l5
2321 or %l0, %l3, %l0
2323 srl %o5, 2, %l7
2324 add %l0, %l1, %l0
2326 add %o2, %g1, %l1
2327 add %l0, %l2, %l0
2329 add %l0, %l1, %o3
2330 or %l5, %l7, %o5
2332 ! Starting round 75
2333 sll %o3, 5, %l0
2334 xor %o4, %o5, %l1
2335 ld [%i0 + (75 * 4)], %l2
2337 srl %o3, 27, %l3
2338 xor %l1, %o0, %l1
2340 sll %o4, 30, %l5
2341 or %l0, %l3, %l0
2343 srl %o4, 2, %l7
2344 add %l0, %l1, %l0
2346 add %o1, %g1, %l1
2347 add %l0, %l2, %l0
2349 add %l0, %l1, %o2
2350 or %l5, %l7, %o4
2352 ! Starting round 76
2353 sll %o2, 5, %l0
2354 xor %o3, %o4, %l1
2355 ld [%i0 + (76 * 4)], %l2
2357 srl %o2, 27, %l3
2358 xor %l1, %o5, %l1
2360 sll %o3, 30, %l5
2361 or %l0, %l3, %l0
2363 srl %o3, 2, %l7
2364 add %l0, %l1, %l0
2366 add %o0, %g1, %l1
2367 add %l0, %l2, %l0
2369 add %l0, %l1, %o1
2370 or %l5, %l7, %o3
2372 ! Starting round 77
2373 sll %o1, 5, %l0
2374 xor %o2, %o3, %l1
2375 ld [%i0 + (77 * 4)], %l2
2377 srl %o1, 27, %l3
2378 xor %l1, %o4, %l1
2380 sll %o2, 30, %l5
2381 or %l0, %l3, %l0
2383 srl %o2, 2, %l7
2384 add %l0, %l1, %l0
2386 add %o5, %g1, %l1
2387 add %l0, %l2, %l0
2389 add %l0, %l1, %o0
2390 or %l5, %l7, %o2
2392 ! Starting round 78
2393 sll %o0, 5, %l0
2394 xor %o1, %o2, %l1
2395 ld [%i0 + (78 * 4)], %l2
2397 srl %o0, 27, %l3
2398 xor %l1, %o3, %l1
2400 sll %o1, 30, %l5
2401 or %l0, %l3, %l0
2403 srl %o1, 2, %l7
2404 add %l0, %l1, %l0
2406 add %o4, %g1, %l1
2407 add %l0, %l2, %l0
2409 add %l0, %l1, %o5
2410 or %l5, %l7, %o1
2412 ! Starting round 79
2413 sll %o5, 5, %l0
2414 xor %o0, %o1, %l1
2415 ld [%i0 + (79 * 4)], %l2
2417 srl %o5, 27, %l3
2418 xor %l1, %o2, %l1
2419 ld [%i2 + 0], %i0
2421 sll %o0, 30, %l5
2422 or %l0, %l3, %l0
2423 ld [%i2 + 4], %i1
2425 srl %o0, 2, %l7
2426 add %l0, %l1, %l0
2427 ld [%i2 + 8], %i3
2429 add %o3, %g1, %l1
2430 add %l0, %l2, %l0
2431 ld [%i2 + 12], %i4
2433 add %l0, %l1, %o4
2434 or %l5, %l7, %o0
2435 ld [%i2 + 16], %i5
2437 ! Compute final hash values for this block and store back to SHA1_CTX
2438 add %i0, %o4, %o4
2439 st %o4, [%i2 + 0]
2441 add %i1, %o5, %o5
2442 st %o5, [%i2 + 4]
2444 add %i3, %o0, %o0
2445 st %o0, [%i2 + 8]
2447 add %i4, %o1, %o1
2448 st %o1, [%i2 + 12]
2450 add %i5, %o2, %o2
2451 st %o2, [%i2 + 16]
2454 restore
2455 SET_SIZE(SHA1TransformVIS)
2457 #endif /* defined(lint) */