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