1 .machine	"any"
2 .csect	.text[PR],7
3 
4 .globl	.sha256_block_ppc
5 .align	6
6 .sha256_block_ppc:
7 	stdu	1,-320(1)
8 	mflr	0
9 	sldi	5,5,6
10 
11 	std	3,144(1)
12 
13 	std	14,176(1)
14 	std	15,184(1)
15 	std	16,192(1)
16 	std	17,200(1)
17 	std	18,208(1)
18 	std	19,216(1)
19 	std	20,224(1)
20 	std	21,232(1)
21 	std	22,240(1)
22 	std	23,248(1)
23 	std	24,256(1)
24 	std	25,264(1)
25 	std	26,272(1)
26 	std	27,280(1)
27 	std	28,288(1)
28 	std	29,296(1)
29 	std	30,304(1)
30 	std	31,312(1)
31 	std	0,336(1)
32 	lwz	8,0(3)
33 	mr	31,4
34 	lwz	9,4(3)
35 	lwz	10,8(3)
36 	lwz	11,12(3)
37 	lwz	12,16(3)
38 	lwz	6,20(3)
39 	lwz	14,24(3)
40 	lwz	15,28(3)
41 	bl	LPICmeup
42 LPICedup:
43 	andi.	0,31,3
44 	bne	Lunaligned
45 Laligned:
46 	add	5,31,5
47 	std	5,128(1)
48 	std	31,136(1)
49 	bl	Lsha2_block_private
50 	b	Ldone
51 
52 
53 
54 
55 
56 
57 
58 .align	4
59 Lunaligned:
60 	subfic	0,31,4096
61 	andi.	0,0,4032
62 	beq	Lcross_page
63 	cmpld	5,0
64 	ble	Laligned
65 	subfc	5,0,5
66 	add	0,31,0
67 	std	5,120(1)
68 	std	0,128(1)
69 	std	31,136(1)
70 	bl	Lsha2_block_private
71 
72 	ld	5,120(1)
73 Lcross_page:
74 	li	0,16
75 	mtctr	0
76 	addi	20,1,48
77 Lmemcpy:
78 	lbz	16,0(31)
79 	lbz	17,1(31)
80 	lbz	18,2(31)
81 	lbz	19,3(31)
82 	addi	31,31,4
83 	stb	16,0(20)
84 	stb	17,1(20)
85 	stb	18,2(20)
86 	stb	19,3(20)
87 	addi	20,20,4
88 	bc	16,0,Lmemcpy
89 	std	31,112(1)
90 	addi	0,1,112
91 	addi	31,1,48
92 	std	5,120(1)
93 	std	0,128(1)
94 	std	31,136(1)
95 	bl	Lsha2_block_private
96 	ld	31,112(1)
97 	ld	5,120(1)
98 	addic.	5,5,-64
99 	bne	Lunaligned
100 
101 Ldone:
102 	ld	0,336(1)
103 	ld	14,176(1)
104 	ld	15,184(1)
105 	ld	16,192(1)
106 	ld	17,200(1)
107 	ld	18,208(1)
108 	ld	19,216(1)
109 	ld	20,224(1)
110 	ld	21,232(1)
111 	ld	22,240(1)
112 	ld	23,248(1)
113 	ld	24,256(1)
114 	ld	25,264(1)
115 	ld	26,272(1)
116 	ld	27,280(1)
117 	ld	28,288(1)
118 	ld	29,296(1)
119 	ld	30,304(1)
120 	ld	31,312(1)
121 	mtlr	0
122 	addi	1,1,320
123 	blr
124 .long	0
125 .byte	0,12,4,1,0x80,18,3,0
126 .long	0
127 .align	4
128 Lsha2_block_private:
129 	lwz	0,0(7)
130 	lwz	16,0(31)
131 	rotrwi	3,12,6
132 	rotrwi	4,12,11
133 	and	5,6,12
134 	xor	3,3,4
135 	add	15,15,0
136 	andc	0,14,12
137 	rotrwi	4,4,14
138 	or	5,5,0
139 	add	15,15,16
140 	xor	3,3,4
141 	add	15,15,5
142 	add	15,15,3
143 
144 	rotrwi	3,8,2
145 	rotrwi	4,8,13
146 	and	5,8,9
147 	and	0,8,10
148 	xor	3,3,4
149 	rotrwi	4,4,9
150 	xor	5,5,0
151 	and	0,9,10
152 	xor	3,3,4
153 	add	11,11,15
154 	xor	5,5,0
155 	lwz	0,4(7)
156 	add	15,15,3
157 	add	15,15,5
158 
159 	lwz	17,4(31)
160 	rotrwi	3,11,6
161 	rotrwi	4,11,11
162 	and	5,12,11
163 	xor	3,3,4
164 	add	14,14,0
165 	andc	0,6,11
166 	rotrwi	4,4,14
167 	or	5,5,0
168 	add	14,14,17
169 	xor	3,3,4
170 	add	14,14,5
171 	add	14,14,3
172 
173 	rotrwi	3,15,2
174 	rotrwi	4,15,13
175 	and	5,15,8
176 	and	0,15,9
177 	xor	3,3,4
178 	rotrwi	4,4,9
179 	xor	5,5,0
180 	and	0,8,9
181 	xor	3,3,4
182 	add	10,10,14
183 	xor	5,5,0
184 	lwz	0,8(7)
185 	add	14,14,3
186 	add	14,14,5
187 
188 	lwz	18,8(31)
189 	rotrwi	3,10,6
190 	rotrwi	4,10,11
191 	and	5,11,10
192 	xor	3,3,4
193 	add	6,6,0
194 	andc	0,12,10
195 	rotrwi	4,4,14
196 	or	5,5,0
197 	add	6,6,18
198 	xor	3,3,4
199 	add	6,6,5
200 	add	6,6,3
201 
202 	rotrwi	3,14,2
203 	rotrwi	4,14,13
204 	and	5,14,15
205 	and	0,14,8
206 	xor	3,3,4
207 	rotrwi	4,4,9
208 	xor	5,5,0
209 	and	0,15,8
210 	xor	3,3,4
211 	add	9,9,6
212 	xor	5,5,0
213 	lwz	0,12(7)
214 	add	6,6,3
215 	add	6,6,5
216 
217 	lwz	19,12(31)
218 	rotrwi	3,9,6
219 	rotrwi	4,9,11
220 	and	5,10,9
221 	xor	3,3,4
222 	add	12,12,0
223 	andc	0,11,9
224 	rotrwi	4,4,14
225 	or	5,5,0
226 	add	12,12,19
227 	xor	3,3,4
228 	add	12,12,5
229 	add	12,12,3
230 
231 	rotrwi	3,6,2
232 	rotrwi	4,6,13
233 	and	5,6,14
234 	and	0,6,15
235 	xor	3,3,4
236 	rotrwi	4,4,9
237 	xor	5,5,0
238 	and	0,14,15
239 	xor	3,3,4
240 	add	8,8,12
241 	xor	5,5,0
242 	lwz	0,16(7)
243 	add	12,12,3
244 	add	12,12,5
245 
246 	lwz	20,16(31)
247 	rotrwi	3,8,6
248 	rotrwi	4,8,11
249 	and	5,9,8
250 	xor	3,3,4
251 	add	11,11,0
252 	andc	0,10,8
253 	rotrwi	4,4,14
254 	or	5,5,0
255 	add	11,11,20
256 	xor	3,3,4
257 	add	11,11,5
258 	add	11,11,3
259 
260 	rotrwi	3,12,2
261 	rotrwi	4,12,13
262 	and	5,12,6
263 	and	0,12,14
264 	xor	3,3,4
265 	rotrwi	4,4,9
266 	xor	5,5,0
267 	and	0,6,14
268 	xor	3,3,4
269 	add	15,15,11
270 	xor	5,5,0
271 	lwz	0,20(7)
272 	add	11,11,3
273 	add	11,11,5
274 
275 	lwz	21,20(31)
276 	rotrwi	3,15,6
277 	rotrwi	4,15,11
278 	and	5,8,15
279 	xor	3,3,4
280 	add	10,10,0
281 	andc	0,9,15
282 	rotrwi	4,4,14
283 	or	5,5,0
284 	add	10,10,21
285 	xor	3,3,4
286 	add	10,10,5
287 	add	10,10,3
288 
289 	rotrwi	3,11,2
290 	rotrwi	4,11,13
291 	and	5,11,12
292 	and	0,11,6
293 	xor	3,3,4
294 	rotrwi	4,4,9
295 	xor	5,5,0
296 	and	0,12,6
297 	xor	3,3,4
298 	add	14,14,10
299 	xor	5,5,0
300 	lwz	0,24(7)
301 	add	10,10,3
302 	add	10,10,5
303 
304 	lwz	22,24(31)
305 	rotrwi	3,14,6
306 	rotrwi	4,14,11
307 	and	5,15,14
308 	xor	3,3,4
309 	add	9,9,0
310 	andc	0,8,14
311 	rotrwi	4,4,14
312 	or	5,5,0
313 	add	9,9,22
314 	xor	3,3,4
315 	add	9,9,5
316 	add	9,9,3
317 
318 	rotrwi	3,10,2
319 	rotrwi	4,10,13
320 	and	5,10,11
321 	and	0,10,12
322 	xor	3,3,4
323 	rotrwi	4,4,9
324 	xor	5,5,0
325 	and	0,11,12
326 	xor	3,3,4
327 	add	6,6,9
328 	xor	5,5,0
329 	lwz	0,28(7)
330 	add	9,9,3
331 	add	9,9,5
332 
333 	lwz	23,28(31)
334 	rotrwi	3,6,6
335 	rotrwi	4,6,11
336 	and	5,14,6
337 	xor	3,3,4
338 	add	8,8,0
339 	andc	0,15,6
340 	rotrwi	4,4,14
341 	or	5,5,0
342 	add	8,8,23
343 	xor	3,3,4
344 	add	8,8,5
345 	add	8,8,3
346 
347 	rotrwi	3,9,2
348 	rotrwi	4,9,13
349 	and	5,9,10
350 	and	0,9,11
351 	xor	3,3,4
352 	rotrwi	4,4,9
353 	xor	5,5,0
354 	and	0,10,11
355 	xor	3,3,4
356 	add	12,12,8
357 	xor	5,5,0
358 	lwz	0,32(7)
359 	add	8,8,3
360 	add	8,8,5
361 
362 	lwz	24,32(31)
363 	rotrwi	3,12,6
364 	rotrwi	4,12,11
365 	and	5,6,12
366 	xor	3,3,4
367 	add	15,15,0
368 	andc	0,14,12
369 	rotrwi	4,4,14
370 	or	5,5,0
371 	add	15,15,24
372 	xor	3,3,4
373 	add	15,15,5
374 	add	15,15,3
375 
376 	rotrwi	3,8,2
377 	rotrwi	4,8,13
378 	and	5,8,9
379 	and	0,8,10
380 	xor	3,3,4
381 	rotrwi	4,4,9
382 	xor	5,5,0
383 	and	0,9,10
384 	xor	3,3,4
385 	add	11,11,15
386 	xor	5,5,0
387 	lwz	0,36(7)
388 	add	15,15,3
389 	add	15,15,5
390 
391 	lwz	25,36(31)
392 	rotrwi	3,11,6
393 	rotrwi	4,11,11
394 	and	5,12,11
395 	xor	3,3,4
396 	add	14,14,0
397 	andc	0,6,11
398 	rotrwi	4,4,14
399 	or	5,5,0
400 	add	14,14,25
401 	xor	3,3,4
402 	add	14,14,5
403 	add	14,14,3
404 
405 	rotrwi	3,15,2
406 	rotrwi	4,15,13
407 	and	5,15,8
408 	and	0,15,9
409 	xor	3,3,4
410 	rotrwi	4,4,9
411 	xor	5,5,0
412 	and	0,8,9
413 	xor	3,3,4
414 	add	10,10,14
415 	xor	5,5,0
416 	lwz	0,40(7)
417 	add	14,14,3
418 	add	14,14,5
419 
420 	lwz	26,40(31)
421 	rotrwi	3,10,6
422 	rotrwi	4,10,11
423 	and	5,11,10
424 	xor	3,3,4
425 	add	6,6,0
426 	andc	0,12,10
427 	rotrwi	4,4,14
428 	or	5,5,0
429 	add	6,6,26
430 	xor	3,3,4
431 	add	6,6,5
432 	add	6,6,3
433 
434 	rotrwi	3,14,2
435 	rotrwi	4,14,13
436 	and	5,14,15
437 	and	0,14,8
438 	xor	3,3,4
439 	rotrwi	4,4,9
440 	xor	5,5,0
441 	and	0,15,8
442 	xor	3,3,4
443 	add	9,9,6
444 	xor	5,5,0
445 	lwz	0,44(7)
446 	add	6,6,3
447 	add	6,6,5
448 
449 	lwz	27,44(31)
450 	rotrwi	3,9,6
451 	rotrwi	4,9,11
452 	and	5,10,9
453 	xor	3,3,4
454 	add	12,12,0
455 	andc	0,11,9
456 	rotrwi	4,4,14
457 	or	5,5,0
458 	add	12,12,27
459 	xor	3,3,4
460 	add	12,12,5
461 	add	12,12,3
462 
463 	rotrwi	3,6,2
464 	rotrwi	4,6,13
465 	and	5,6,14
466 	and	0,6,15
467 	xor	3,3,4
468 	rotrwi	4,4,9
469 	xor	5,5,0
470 	and	0,14,15
471 	xor	3,3,4
472 	add	8,8,12
473 	xor	5,5,0
474 	lwz	0,48(7)
475 	add	12,12,3
476 	add	12,12,5
477 
478 	lwz	28,48(31)
479 	rotrwi	3,8,6
480 	rotrwi	4,8,11
481 	and	5,9,8
482 	xor	3,3,4
483 	add	11,11,0
484 	andc	0,10,8
485 	rotrwi	4,4,14
486 	or	5,5,0
487 	add	11,11,28
488 	xor	3,3,4
489 	add	11,11,5
490 	add	11,11,3
491 
492 	rotrwi	3,12,2
493 	rotrwi	4,12,13
494 	and	5,12,6
495 	and	0,12,14
496 	xor	3,3,4
497 	rotrwi	4,4,9
498 	xor	5,5,0
499 	and	0,6,14
500 	xor	3,3,4
501 	add	15,15,11
502 	xor	5,5,0
503 	lwz	0,52(7)
504 	add	11,11,3
505 	add	11,11,5
506 
507 	lwz	29,52(31)
508 	rotrwi	3,15,6
509 	rotrwi	4,15,11
510 	and	5,8,15
511 	xor	3,3,4
512 	add	10,10,0
513 	andc	0,9,15
514 	rotrwi	4,4,14
515 	or	5,5,0
516 	add	10,10,29
517 	xor	3,3,4
518 	add	10,10,5
519 	add	10,10,3
520 
521 	rotrwi	3,11,2
522 	rotrwi	4,11,13
523 	and	5,11,12
524 	and	0,11,6
525 	xor	3,3,4
526 	rotrwi	4,4,9
527 	xor	5,5,0
528 	and	0,12,6
529 	xor	3,3,4
530 	add	14,14,10
531 	xor	5,5,0
532 	lwz	0,56(7)
533 	add	10,10,3
534 	add	10,10,5
535 
536 	lwz	30,56(31)
537 	rotrwi	3,14,6
538 	rotrwi	4,14,11
539 	and	5,15,14
540 	xor	3,3,4
541 	add	9,9,0
542 	andc	0,8,14
543 	rotrwi	4,4,14
544 	or	5,5,0
545 	add	9,9,30
546 	xor	3,3,4
547 	add	9,9,5
548 	add	9,9,3
549 
550 	rotrwi	3,10,2
551 	rotrwi	4,10,13
552 	and	5,10,11
553 	and	0,10,12
554 	xor	3,3,4
555 	rotrwi	4,4,9
556 	xor	5,5,0
557 	and	0,11,12
558 	xor	3,3,4
559 	add	6,6,9
560 	xor	5,5,0
561 	lwz	0,60(7)
562 	add	9,9,3
563 	add	9,9,5
564 
565 	lwz	31,60(31)
566 	rotrwi	3,6,6
567 	rotrwi	4,6,11
568 	and	5,14,6
569 	xor	3,3,4
570 	add	8,8,0
571 	andc	0,15,6
572 	rotrwi	4,4,14
573 	or	5,5,0
574 	add	8,8,31
575 	xor	3,3,4
576 	add	8,8,5
577 	add	8,8,3
578 
579 	rotrwi	3,9,2
580 	rotrwi	4,9,13
581 	and	5,9,10
582 	and	0,9,11
583 	xor	3,3,4
584 	rotrwi	4,4,9
585 	xor	5,5,0
586 	and	0,10,11
587 	xor	3,3,4
588 	add	12,12,8
589 	xor	5,5,0
590 	add	8,8,3
591 	add	8,8,5
592 
593 	li	5,3
594 	mtctr	5
595 .align	4
596 Lrounds:
597 	addi	7,7,64
598 	rotrwi	3,17,7
599 	rotrwi	4,17,18
600 	rotrwi	5,30,17
601 	rotrwi	0,30,19
602 	xor	3,3,4
603 	srwi	4,17,3
604 	xor	5,5,0
605 	srwi	0,30,10
606 	add	16,16,25
607 	xor	3,3,4
608 	xor	5,5,0
609 	lwz	0,0(7)
610 	add	16,16,3
611 	add	16,16,5
612 	rotrwi	3,12,6
613 	rotrwi	4,12,11
614 	and	5,6,12
615 	xor	3,3,4
616 	add	15,15,0
617 	andc	0,14,12
618 	rotrwi	4,4,14
619 	or	5,5,0
620 	add	15,15,16
621 	xor	3,3,4
622 	add	15,15,5
623 	add	15,15,3
624 
625 	rotrwi	3,8,2
626 	rotrwi	4,8,13
627 	and	5,8,9
628 	and	0,8,10
629 	xor	3,3,4
630 	rotrwi	4,4,9
631 	xor	5,5,0
632 	and	0,9,10
633 	xor	3,3,4
634 	add	11,11,15
635 	xor	5,5,0
636 	add	15,15,3
637 	add	15,15,5
638 
639 	rotrwi	3,18,7
640 	rotrwi	4,18,18
641 	rotrwi	5,31,17
642 	rotrwi	0,31,19
643 	xor	3,3,4
644 	srwi	4,18,3
645 	xor	5,5,0
646 	srwi	0,31,10
647 	add	17,17,26
648 	xor	3,3,4
649 	xor	5,5,0
650 	lwz	0,4(7)
651 	add	17,17,3
652 	add	17,17,5
653 	rotrwi	3,11,6
654 	rotrwi	4,11,11
655 	and	5,12,11
656 	xor	3,3,4
657 	add	14,14,0
658 	andc	0,6,11
659 	rotrwi	4,4,14
660 	or	5,5,0
661 	add	14,14,17
662 	xor	3,3,4
663 	add	14,14,5
664 	add	14,14,3
665 
666 	rotrwi	3,15,2
667 	rotrwi	4,15,13
668 	and	5,15,8
669 	and	0,15,9
670 	xor	3,3,4
671 	rotrwi	4,4,9
672 	xor	5,5,0
673 	and	0,8,9
674 	xor	3,3,4
675 	add	10,10,14
676 	xor	5,5,0
677 	add	14,14,3
678 	add	14,14,5
679 
680 	rotrwi	3,19,7
681 	rotrwi	4,19,18
682 	rotrwi	5,16,17
683 	rotrwi	0,16,19
684 	xor	3,3,4
685 	srwi	4,19,3
686 	xor	5,5,0
687 	srwi	0,16,10
688 	add	18,18,27
689 	xor	3,3,4
690 	xor	5,5,0
691 	lwz	0,8(7)
692 	add	18,18,3
693 	add	18,18,5
694 	rotrwi	3,10,6
695 	rotrwi	4,10,11
696 	and	5,11,10
697 	xor	3,3,4
698 	add	6,6,0
699 	andc	0,12,10
700 	rotrwi	4,4,14
701 	or	5,5,0
702 	add	6,6,18
703 	xor	3,3,4
704 	add	6,6,5
705 	add	6,6,3
706 
707 	rotrwi	3,14,2
708 	rotrwi	4,14,13
709 	and	5,14,15
710 	and	0,14,8
711 	xor	3,3,4
712 	rotrwi	4,4,9
713 	xor	5,5,0
714 	and	0,15,8
715 	xor	3,3,4
716 	add	9,9,6
717 	xor	5,5,0
718 	add	6,6,3
719 	add	6,6,5
720 
721 	rotrwi	3,20,7
722 	rotrwi	4,20,18
723 	rotrwi	5,17,17
724 	rotrwi	0,17,19
725 	xor	3,3,4
726 	srwi	4,20,3
727 	xor	5,5,0
728 	srwi	0,17,10
729 	add	19,19,28
730 	xor	3,3,4
731 	xor	5,5,0
732 	lwz	0,12(7)
733 	add	19,19,3
734 	add	19,19,5
735 	rotrwi	3,9,6
736 	rotrwi	4,9,11
737 	and	5,10,9
738 	xor	3,3,4
739 	add	12,12,0
740 	andc	0,11,9
741 	rotrwi	4,4,14
742 	or	5,5,0
743 	add	12,12,19
744 	xor	3,3,4
745 	add	12,12,5
746 	add	12,12,3
747 
748 	rotrwi	3,6,2
749 	rotrwi	4,6,13
750 	and	5,6,14
751 	and	0,6,15
752 	xor	3,3,4
753 	rotrwi	4,4,9
754 	xor	5,5,0
755 	and	0,14,15
756 	xor	3,3,4
757 	add	8,8,12
758 	xor	5,5,0
759 	add	12,12,3
760 	add	12,12,5
761 
762 	rotrwi	3,21,7
763 	rotrwi	4,21,18
764 	rotrwi	5,18,17
765 	rotrwi	0,18,19
766 	xor	3,3,4
767 	srwi	4,21,3
768 	xor	5,5,0
769 	srwi	0,18,10
770 	add	20,20,29
771 	xor	3,3,4
772 	xor	5,5,0
773 	lwz	0,16(7)
774 	add	20,20,3
775 	add	20,20,5
776 	rotrwi	3,8,6
777 	rotrwi	4,8,11
778 	and	5,9,8
779 	xor	3,3,4
780 	add	11,11,0
781 	andc	0,10,8
782 	rotrwi	4,4,14
783 	or	5,5,0
784 	add	11,11,20
785 	xor	3,3,4
786 	add	11,11,5
787 	add	11,11,3
788 
789 	rotrwi	3,12,2
790 	rotrwi	4,12,13
791 	and	5,12,6
792 	and	0,12,14
793 	xor	3,3,4
794 	rotrwi	4,4,9
795 	xor	5,5,0
796 	and	0,6,14
797 	xor	3,3,4
798 	add	15,15,11
799 	xor	5,5,0
800 	add	11,11,3
801 	add	11,11,5
802 
803 	rotrwi	3,22,7
804 	rotrwi	4,22,18
805 	rotrwi	5,19,17
806 	rotrwi	0,19,19
807 	xor	3,3,4
808 	srwi	4,22,3
809 	xor	5,5,0
810 	srwi	0,19,10
811 	add	21,21,30
812 	xor	3,3,4
813 	xor	5,5,0
814 	lwz	0,20(7)
815 	add	21,21,3
816 	add	21,21,5
817 	rotrwi	3,15,6
818 	rotrwi	4,15,11
819 	and	5,8,15
820 	xor	3,3,4
821 	add	10,10,0
822 	andc	0,9,15
823 	rotrwi	4,4,14
824 	or	5,5,0
825 	add	10,10,21
826 	xor	3,3,4
827 	add	10,10,5
828 	add	10,10,3
829 
830 	rotrwi	3,11,2
831 	rotrwi	4,11,13
832 	and	5,11,12
833 	and	0,11,6
834 	xor	3,3,4
835 	rotrwi	4,4,9
836 	xor	5,5,0
837 	and	0,12,6
838 	xor	3,3,4
839 	add	14,14,10
840 	xor	5,5,0
841 	add	10,10,3
842 	add	10,10,5
843 
844 	rotrwi	3,23,7
845 	rotrwi	4,23,18
846 	rotrwi	5,20,17
847 	rotrwi	0,20,19
848 	xor	3,3,4
849 	srwi	4,23,3
850 	xor	5,5,0
851 	srwi	0,20,10
852 	add	22,22,31
853 	xor	3,3,4
854 	xor	5,5,0
855 	lwz	0,24(7)
856 	add	22,22,3
857 	add	22,22,5
858 	rotrwi	3,14,6
859 	rotrwi	4,14,11
860 	and	5,15,14
861 	xor	3,3,4
862 	add	9,9,0
863 	andc	0,8,14
864 	rotrwi	4,4,14
865 	or	5,5,0
866 	add	9,9,22
867 	xor	3,3,4
868 	add	9,9,5
869 	add	9,9,3
870 
871 	rotrwi	3,10,2
872 	rotrwi	4,10,13
873 	and	5,10,11
874 	and	0,10,12
875 	xor	3,3,4
876 	rotrwi	4,4,9
877 	xor	5,5,0
878 	and	0,11,12
879 	xor	3,3,4
880 	add	6,6,9
881 	xor	5,5,0
882 	add	9,9,3
883 	add	9,9,5
884 
885 	rotrwi	3,24,7
886 	rotrwi	4,24,18
887 	rotrwi	5,21,17
888 	rotrwi	0,21,19
889 	xor	3,3,4
890 	srwi	4,24,3
891 	xor	5,5,0
892 	srwi	0,21,10
893 	add	23,23,16
894 	xor	3,3,4
895 	xor	5,5,0
896 	lwz	0,28(7)
897 	add	23,23,3
898 	add	23,23,5
899 	rotrwi	3,6,6
900 	rotrwi	4,6,11
901 	and	5,14,6
902 	xor	3,3,4
903 	add	8,8,0
904 	andc	0,15,6
905 	rotrwi	4,4,14
906 	or	5,5,0
907 	add	8,8,23
908 	xor	3,3,4
909 	add	8,8,5
910 	add	8,8,3
911 
912 	rotrwi	3,9,2
913 	rotrwi	4,9,13
914 	and	5,9,10
915 	and	0,9,11
916 	xor	3,3,4
917 	rotrwi	4,4,9
918 	xor	5,5,0
919 	and	0,10,11
920 	xor	3,3,4
921 	add	12,12,8
922 	xor	5,5,0
923 	add	8,8,3
924 	add	8,8,5
925 
926 	rotrwi	3,25,7
927 	rotrwi	4,25,18
928 	rotrwi	5,22,17
929 	rotrwi	0,22,19
930 	xor	3,3,4
931 	srwi	4,25,3
932 	xor	5,5,0
933 	srwi	0,22,10
934 	add	24,24,17
935 	xor	3,3,4
936 	xor	5,5,0
937 	lwz	0,32(7)
938 	add	24,24,3
939 	add	24,24,5
940 	rotrwi	3,12,6
941 	rotrwi	4,12,11
942 	and	5,6,12
943 	xor	3,3,4
944 	add	15,15,0
945 	andc	0,14,12
946 	rotrwi	4,4,14
947 	or	5,5,0
948 	add	15,15,24
949 	xor	3,3,4
950 	add	15,15,5
951 	add	15,15,3
952 
953 	rotrwi	3,8,2
954 	rotrwi	4,8,13
955 	and	5,8,9
956 	and	0,8,10
957 	xor	3,3,4
958 	rotrwi	4,4,9
959 	xor	5,5,0
960 	and	0,9,10
961 	xor	3,3,4
962 	add	11,11,15
963 	xor	5,5,0
964 	add	15,15,3
965 	add	15,15,5
966 
967 	rotrwi	3,26,7
968 	rotrwi	4,26,18
969 	rotrwi	5,23,17
970 	rotrwi	0,23,19
971 	xor	3,3,4
972 	srwi	4,26,3
973 	xor	5,5,0
974 	srwi	0,23,10
975 	add	25,25,18
976 	xor	3,3,4
977 	xor	5,5,0
978 	lwz	0,36(7)
979 	add	25,25,3
980 	add	25,25,5
981 	rotrwi	3,11,6
982 	rotrwi	4,11,11
983 	and	5,12,11
984 	xor	3,3,4
985 	add	14,14,0
986 	andc	0,6,11
987 	rotrwi	4,4,14
988 	or	5,5,0
989 	add	14,14,25
990 	xor	3,3,4
991 	add	14,14,5
992 	add	14,14,3
993 
994 	rotrwi	3,15,2
995 	rotrwi	4,15,13
996 	and	5,15,8
997 	and	0,15,9
998 	xor	3,3,4
999 	rotrwi	4,4,9
1000 	xor	5,5,0
1001 	and	0,8,9
1002 	xor	3,3,4
1003 	add	10,10,14
1004 	xor	5,5,0
1005 	add	14,14,3
1006 	add	14,14,5
1007 
1008 	rotrwi	3,27,7
1009 	rotrwi	4,27,18
1010 	rotrwi	5,24,17
1011 	rotrwi	0,24,19
1012 	xor	3,3,4
1013 	srwi	4,27,3
1014 	xor	5,5,0
1015 	srwi	0,24,10
1016 	add	26,26,19
1017 	xor	3,3,4
1018 	xor	5,5,0
1019 	lwz	0,40(7)
1020 	add	26,26,3
1021 	add	26,26,5
1022 	rotrwi	3,10,6
1023 	rotrwi	4,10,11
1024 	and	5,11,10
1025 	xor	3,3,4
1026 	add	6,6,0
1027 	andc	0,12,10
1028 	rotrwi	4,4,14
1029 	or	5,5,0
1030 	add	6,6,26
1031 	xor	3,3,4
1032 	add	6,6,5
1033 	add	6,6,3
1034 
1035 	rotrwi	3,14,2
1036 	rotrwi	4,14,13
1037 	and	5,14,15
1038 	and	0,14,8
1039 	xor	3,3,4
1040 	rotrwi	4,4,9
1041 	xor	5,5,0
1042 	and	0,15,8
1043 	xor	3,3,4
1044 	add	9,9,6
1045 	xor	5,5,0
1046 	add	6,6,3
1047 	add	6,6,5
1048 
1049 	rotrwi	3,28,7
1050 	rotrwi	4,28,18
1051 	rotrwi	5,25,17
1052 	rotrwi	0,25,19
1053 	xor	3,3,4
1054 	srwi	4,28,3
1055 	xor	5,5,0
1056 	srwi	0,25,10
1057 	add	27,27,20
1058 	xor	3,3,4
1059 	xor	5,5,0
1060 	lwz	0,44(7)
1061 	add	27,27,3
1062 	add	27,27,5
1063 	rotrwi	3,9,6
1064 	rotrwi	4,9,11
1065 	and	5,10,9
1066 	xor	3,3,4
1067 	add	12,12,0
1068 	andc	0,11,9
1069 	rotrwi	4,4,14
1070 	or	5,5,0
1071 	add	12,12,27
1072 	xor	3,3,4
1073 	add	12,12,5
1074 	add	12,12,3
1075 
1076 	rotrwi	3,6,2
1077 	rotrwi	4,6,13
1078 	and	5,6,14
1079 	and	0,6,15
1080 	xor	3,3,4
1081 	rotrwi	4,4,9
1082 	xor	5,5,0
1083 	and	0,14,15
1084 	xor	3,3,4
1085 	add	8,8,12
1086 	xor	5,5,0
1087 	add	12,12,3
1088 	add	12,12,5
1089 
1090 	rotrwi	3,29,7
1091 	rotrwi	4,29,18
1092 	rotrwi	5,26,17
1093 	rotrwi	0,26,19
1094 	xor	3,3,4
1095 	srwi	4,29,3
1096 	xor	5,5,0
1097 	srwi	0,26,10
1098 	add	28,28,21
1099 	xor	3,3,4
1100 	xor	5,5,0
1101 	lwz	0,48(7)
1102 	add	28,28,3
1103 	add	28,28,5
1104 	rotrwi	3,8,6
1105 	rotrwi	4,8,11
1106 	and	5,9,8
1107 	xor	3,3,4
1108 	add	11,11,0
1109 	andc	0,10,8
1110 	rotrwi	4,4,14
1111 	or	5,5,0
1112 	add	11,11,28
1113 	xor	3,3,4
1114 	add	11,11,5
1115 	add	11,11,3
1116 
1117 	rotrwi	3,12,2
1118 	rotrwi	4,12,13
1119 	and	5,12,6
1120 	and	0,12,14
1121 	xor	3,3,4
1122 	rotrwi	4,4,9
1123 	xor	5,5,0
1124 	and	0,6,14
1125 	xor	3,3,4
1126 	add	15,15,11
1127 	xor	5,5,0
1128 	add	11,11,3
1129 	add	11,11,5
1130 
1131 	rotrwi	3,30,7
1132 	rotrwi	4,30,18
1133 	rotrwi	5,27,17
1134 	rotrwi	0,27,19
1135 	xor	3,3,4
1136 	srwi	4,30,3
1137 	xor	5,5,0
1138 	srwi	0,27,10
1139 	add	29,29,22
1140 	xor	3,3,4
1141 	xor	5,5,0
1142 	lwz	0,52(7)
1143 	add	29,29,3
1144 	add	29,29,5
1145 	rotrwi	3,15,6
1146 	rotrwi	4,15,11
1147 	and	5,8,15
1148 	xor	3,3,4
1149 	add	10,10,0
1150 	andc	0,9,15
1151 	rotrwi	4,4,14
1152 	or	5,5,0
1153 	add	10,10,29
1154 	xor	3,3,4
1155 	add	10,10,5
1156 	add	10,10,3
1157 
1158 	rotrwi	3,11,2
1159 	rotrwi	4,11,13
1160 	and	5,11,12
1161 	and	0,11,6
1162 	xor	3,3,4
1163 	rotrwi	4,4,9
1164 	xor	5,5,0
1165 	and	0,12,6
1166 	xor	3,3,4
1167 	add	14,14,10
1168 	xor	5,5,0
1169 	add	10,10,3
1170 	add	10,10,5
1171 
1172 	rotrwi	3,31,7
1173 	rotrwi	4,31,18
1174 	rotrwi	5,28,17
1175 	rotrwi	0,28,19
1176 	xor	3,3,4
1177 	srwi	4,31,3
1178 	xor	5,5,0
1179 	srwi	0,28,10
1180 	add	30,30,23
1181 	xor	3,3,4
1182 	xor	5,5,0
1183 	lwz	0,56(7)
1184 	add	30,30,3
1185 	add	30,30,5
1186 	rotrwi	3,14,6
1187 	rotrwi	4,14,11
1188 	and	5,15,14
1189 	xor	3,3,4
1190 	add	9,9,0
1191 	andc	0,8,14
1192 	rotrwi	4,4,14
1193 	or	5,5,0
1194 	add	9,9,30
1195 	xor	3,3,4
1196 	add	9,9,5
1197 	add	9,9,3
1198 
1199 	rotrwi	3,10,2
1200 	rotrwi	4,10,13
1201 	and	5,10,11
1202 	and	0,10,12
1203 	xor	3,3,4
1204 	rotrwi	4,4,9
1205 	xor	5,5,0
1206 	and	0,11,12
1207 	xor	3,3,4
1208 	add	6,6,9
1209 	xor	5,5,0
1210 	add	9,9,3
1211 	add	9,9,5
1212 
1213 	rotrwi	3,16,7
1214 	rotrwi	4,16,18
1215 	rotrwi	5,29,17
1216 	rotrwi	0,29,19
1217 	xor	3,3,4
1218 	srwi	4,16,3
1219 	xor	5,5,0
1220 	srwi	0,29,10
1221 	add	31,31,24
1222 	xor	3,3,4
1223 	xor	5,5,0
1224 	lwz	0,60(7)
1225 	add	31,31,3
1226 	add	31,31,5
1227 	rotrwi	3,6,6
1228 	rotrwi	4,6,11
1229 	and	5,14,6
1230 	xor	3,3,4
1231 	add	8,8,0
1232 	andc	0,15,6
1233 	rotrwi	4,4,14
1234 	or	5,5,0
1235 	add	8,8,31
1236 	xor	3,3,4
1237 	add	8,8,5
1238 	add	8,8,3
1239 
1240 	rotrwi	3,9,2
1241 	rotrwi	4,9,13
1242 	and	5,9,10
1243 	and	0,9,11
1244 	xor	3,3,4
1245 	rotrwi	4,4,9
1246 	xor	5,5,0
1247 	and	0,10,11
1248 	xor	3,3,4
1249 	add	12,12,8
1250 	xor	5,5,0
1251 	add	8,8,3
1252 	add	8,8,5
1253 
1254 	bc	16,0,Lrounds
1255 
1256 	ld	3,144(1)
1257 	ld	31,136(1)
1258 	ld	5,128(1)
1259 	subi	7,7,192
1260 
1261 	lwz	16,0(3)
1262 	lwz	17,4(3)
1263 	lwz	18,8(3)
1264 	lwz	19,12(3)
1265 	lwz	20,16(3)
1266 	lwz	21,20(3)
1267 	lwz	22,24(3)
1268 	addi	31,31,64
1269 	lwz	23,28(3)
1270 	add	8,8,16
1271 	add	9,9,17
1272 	std	31,136(1)
1273 	add	10,10,18
1274 	stw	8,0(3)
1275 	add	11,11,19
1276 	stw	9,4(3)
1277 	add	12,12,20
1278 	stw	10,8(3)
1279 	add	6,6,21
1280 	stw	11,12(3)
1281 	add	14,14,22
1282 	stw	12,16(3)
1283 	add	15,15,23
1284 	stw	6,20(3)
1285 	stw	14,24(3)
1286 	cmpld	31,5
1287 	stw	15,28(3)
1288 	bne	Lsha2_block_private
1289 	blr
1290 .long	0
1291 .byte	0,12,0x14,0,0,0,0,0
1292 
1293 .align	6
1294 LPICmeup:
1295 	mflr	0
1296 	bcl	20,31,$+4
1297 	mflr	7
1298 	addi	7,7,56
1299 	mtlr	0
1300 	blr
1301 .long	0
1302 .byte	0,12,0x14,0,0,0,0,0
1303 .space	28
1304 .long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1305 .long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1306 .long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1307 .long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1308 .long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1309 .long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1310 .long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1311 .long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1312 .long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1313 .long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1314 .long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1315 .long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1316 .long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1317 .long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1318 .long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1319 .long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1320