xref: /netbsd-src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/sha1-ppc.S (revision a5847cc334d9a7029f6352b847e9e8d71a0f9e0c)
1.machine	"any"
2.text
3
4.globl	sha1_block_data_order
5.type	sha1_block_data_order,@function
6.align	4
7sha1_block_data_order:
8	mflr	0
9	stwu	1,-160(1)
10	stw	0,24(1)
11	stw	15,28(1)
12	stw	16,32(1)
13	stw	17,36(1)
14	stw	18,40(1)
15	stw	19,44(1)
16	stw	20,48(1)
17	stw	21,52(1)
18	stw	22,56(1)
19	stw	23,60(1)
20	stw	24,64(1)
21	stw	25,68(1)
22	stw	26,72(1)
23	stw	27,76(1)
24	stw	28,80(1)
25	stw	29,84(1)
26	stw	30,88(1)
27	stw	31,92(1)
28	lwz	7,0(3)
29	lwz	8,4(3)
30	lwz	9,8(3)
31	lwz	10,12(3)
32	lwz	11,16(3)
33	andi.	0,4,3
34	bne	.Lunaligned
35.Laligned:
36	mtctr	5
37	bl	.Lsha1_block_private
38.Ldone:
39	lwz	0,24(1)
40	lwz	15,28(1)
41	lwz	16,32(1)
42	lwz	17,36(1)
43	lwz	18,40(1)
44	lwz	19,44(1)
45	lwz	20,48(1)
46	lwz	21,52(1)
47	lwz	22,56(1)
48	lwz	23,60(1)
49	lwz	24,64(1)
50	lwz	25,68(1)
51	lwz	26,72(1)
52	lwz	27,76(1)
53	lwz	28,80(1)
54	lwz	29,84(1)
55	lwz	30,88(1)
56	lwz	31,92(1)
57	mtlr	0
58	addi	1,1,160
59	blr
60.align	4
61.Lunaligned:
62	subfic	6,4,4096
63	andi.	6,6,4095
64	srwi.	6,6,6
65	beq	.Lcross_page
66	.long	0x7c053040
67	ble-	.Laligned
68	mtctr	6
69	subfc	5,6,5
70	bl	.Lsha1_block_private
71.Lcross_page:
72	li	6,16
73	mtctr	6
74	addi	20,1,96
75.Lmemcpy:
76	lbz	16,0(4)
77	lbz	17,1(4)
78	lbz	18,2(4)
79	lbz	19,3(4)
80	addi	4,4,4
81	stb	16,0(20)
82	stb	17,1(20)
83	stb	18,2(20)
84	stb	19,3(20)
85	addi	20,20,4
86	bc	16,0,.Lmemcpy
87
88	stw	4,20(1)
89	li	6,1
90	addi	4,1,96
91	mtctr	6
92	bl	.Lsha1_block_private
93	lwz	4,20(1)
94	addic.	5,5,-1
95	bne-	.Lunaligned
96	b	.Ldone
97.align	4
98.Lsha1_block_private:
99	lis	0,0x5a82
100	ori	0,0,0x7999
101	lwz	16,0(4)
102	lwz	17,4(4)
103	add	12,0,11
104	rotlwi	11,7,5
105	add	12,12,16
106	and	15,9,8
107	add	12,12,11
108	andc	6,10,8
109	rotlwi	8,8,30
110	or	15,15,6
111	add	12,12,15
112	lwz	18,8(4)
113	add	11,0,10
114	rotlwi	10,12,5
115	add	11,11,17
116	and	15,8,7
117	add	11,11,10
118	andc	6,9,7
119	rotlwi	7,7,30
120	or	15,15,6
121	add	11,11,15
122	lwz	19,12(4)
123	add	10,0,9
124	rotlwi	9,11,5
125	add	10,10,18
126	and	15,7,12
127	add	10,10,9
128	andc	6,8,12
129	rotlwi	12,12,30
130	or	15,15,6
131	add	10,10,15
132	lwz	20,16(4)
133	add	9,0,8
134	rotlwi	8,10,5
135	add	9,9,19
136	and	15,12,11
137	add	9,9,8
138	andc	6,7,11
139	rotlwi	11,11,30
140	or	15,15,6
141	add	9,9,15
142	lwz	21,20(4)
143	add	8,0,7
144	rotlwi	7,9,5
145	add	8,8,20
146	and	15,11,10
147	add	8,8,7
148	andc	6,12,10
149	rotlwi	10,10,30
150	or	15,15,6
151	add	8,8,15
152	lwz	22,24(4)
153	add	7,0,12
154	rotlwi	12,8,5
155	add	7,7,21
156	and	15,10,9
157	add	7,7,12
158	andc	6,11,9
159	rotlwi	9,9,30
160	or	15,15,6
161	add	7,7,15
162	lwz	23,28(4)
163	add	12,0,11
164	rotlwi	11,7,5
165	add	12,12,22
166	and	15,9,8
167	add	12,12,11
168	andc	6,10,8
169	rotlwi	8,8,30
170	or	15,15,6
171	add	12,12,15
172	lwz	24,32(4)
173	add	11,0,10
174	rotlwi	10,12,5
175	add	11,11,23
176	and	15,8,7
177	add	11,11,10
178	andc	6,9,7
179	rotlwi	7,7,30
180	or	15,15,6
181	add	11,11,15
182	lwz	25,36(4)
183	add	10,0,9
184	rotlwi	9,11,5
185	add	10,10,24
186	and	15,7,12
187	add	10,10,9
188	andc	6,8,12
189	rotlwi	12,12,30
190	or	15,15,6
191	add	10,10,15
192	lwz	26,40(4)
193	add	9,0,8
194	rotlwi	8,10,5
195	add	9,9,25
196	and	15,12,11
197	add	9,9,8
198	andc	6,7,11
199	rotlwi	11,11,30
200	or	15,15,6
201	add	9,9,15
202	lwz	27,44(4)
203	add	8,0,7
204	rotlwi	7,9,5
205	add	8,8,26
206	and	15,11,10
207	add	8,8,7
208	andc	6,12,10
209	rotlwi	10,10,30
210	or	15,15,6
211	add	8,8,15
212	lwz	28,48(4)
213	add	7,0,12
214	rotlwi	12,8,5
215	add	7,7,27
216	and	15,10,9
217	add	7,7,12
218	andc	6,11,9
219	rotlwi	9,9,30
220	or	15,15,6
221	add	7,7,15
222	lwz	29,52(4)
223	add	12,0,11
224	rotlwi	11,7,5
225	add	12,12,28
226	and	15,9,8
227	add	12,12,11
228	andc	6,10,8
229	rotlwi	8,8,30
230	or	15,15,6
231	add	12,12,15
232	lwz	30,56(4)
233	add	11,0,10
234	rotlwi	10,12,5
235	add	11,11,29
236	and	15,8,7
237	add	11,11,10
238	andc	6,9,7
239	rotlwi	7,7,30
240	or	15,15,6
241	add	11,11,15
242	lwz	31,60(4)
243	add	10,0,9
244	rotlwi	9,11,5
245	add	10,10,30
246	and	15,7,12
247	add	10,10,9
248	andc	6,8,12
249	rotlwi	12,12,30
250	or	15,15,6
251	add	10,10,15
252	add	9,0,8
253	rotlwi	8,10,5
254	xor	16,16,18
255	add	9,9,31
256	and	15,12,11
257	xor	16,16,24
258	add	9,9,8
259	andc	6,7,11
260	rotlwi	11,11,30
261	or	15,15,6
262	xor	16,16,29
263	add	9,9,15
264	rotlwi	16,16,1
265	add	8,0,7
266	rotlwi	7,9,5
267	xor	17,17,19
268	add	8,8,16
269	and	15,11,10
270	xor	17,17,25
271	add	8,8,7
272	andc	6,12,10
273	rotlwi	10,10,30
274	or	15,15,6
275	xor	17,17,30
276	add	8,8,15
277	rotlwi	17,17,1
278	add	7,0,12
279	rotlwi	12,8,5
280	xor	18,18,20
281	add	7,7,17
282	and	15,10,9
283	xor	18,18,26
284	add	7,7,12
285	andc	6,11,9
286	rotlwi	9,9,30
287	or	15,15,6
288	xor	18,18,31
289	add	7,7,15
290	rotlwi	18,18,1
291	add	12,0,11
292	rotlwi	11,7,5
293	xor	19,19,21
294	add	12,12,18
295	and	15,9,8
296	xor	19,19,27
297	add	12,12,11
298	andc	6,10,8
299	rotlwi	8,8,30
300	or	15,15,6
301	xor	19,19,16
302	add	12,12,15
303	rotlwi	19,19,1
304	add	11,0,10
305	rotlwi	10,12,5
306	xor	20,20,22
307	add	11,11,19
308	and	15,8,7
309	xor	20,20,28
310	add	11,11,10
311	andc	6,9,7
312	rotlwi	7,7,30
313	or	15,15,6
314	xor	20,20,17
315	add	11,11,15
316	rotlwi	20,20,1
317	lis	0,0x6ed9
318	ori	0,0,0xeba1
319	add	10,0,9
320	rotlwi	9,11,5
321	xor	21,21,23
322	add	10,10,20
323	xor	15,12,7
324	xor	21,21,29
325	add	10,10,9
326	rotlwi	12,12,30
327	xor	15,15,8
328	xor	21,21,18
329	add	10,10,15
330	rotlwi	21,21,1
331	add	9,0,8
332	rotlwi	8,10,5
333	xor	22,22,24
334	add	9,9,21
335	xor	15,11,12
336	xor	22,22,30
337	add	9,9,8
338	rotlwi	11,11,30
339	xor	15,15,7
340	xor	22,22,19
341	add	9,9,15
342	rotlwi	22,22,1
343	add	8,0,7
344	rotlwi	7,9,5
345	xor	23,23,25
346	add	8,8,22
347	xor	15,10,11
348	xor	23,23,31
349	add	8,8,7
350	rotlwi	10,10,30
351	xor	15,15,12
352	xor	23,23,20
353	add	8,8,15
354	rotlwi	23,23,1
355	add	7,0,12
356	rotlwi	12,8,5
357	xor	24,24,26
358	add	7,7,23
359	xor	15,9,10
360	xor	24,24,16
361	add	7,7,12
362	rotlwi	9,9,30
363	xor	15,15,11
364	xor	24,24,21
365	add	7,7,15
366	rotlwi	24,24,1
367	add	12,0,11
368	rotlwi	11,7,5
369	xor	25,25,27
370	add	12,12,24
371	xor	15,8,9
372	xor	25,25,17
373	add	12,12,11
374	rotlwi	8,8,30
375	xor	15,15,10
376	xor	25,25,22
377	add	12,12,15
378	rotlwi	25,25,1
379	add	11,0,10
380	rotlwi	10,12,5
381	xor	26,26,28
382	add	11,11,25
383	xor	15,7,8
384	xor	26,26,18
385	add	11,11,10
386	rotlwi	7,7,30
387	xor	15,15,9
388	xor	26,26,23
389	add	11,11,15
390	rotlwi	26,26,1
391	add	10,0,9
392	rotlwi	9,11,5
393	xor	27,27,29
394	add	10,10,26
395	xor	15,12,7
396	xor	27,27,19
397	add	10,10,9
398	rotlwi	12,12,30
399	xor	15,15,8
400	xor	27,27,24
401	add	10,10,15
402	rotlwi	27,27,1
403	add	9,0,8
404	rotlwi	8,10,5
405	xor	28,28,30
406	add	9,9,27
407	xor	15,11,12
408	xor	28,28,20
409	add	9,9,8
410	rotlwi	11,11,30
411	xor	15,15,7
412	xor	28,28,25
413	add	9,9,15
414	rotlwi	28,28,1
415	add	8,0,7
416	rotlwi	7,9,5
417	xor	29,29,31
418	add	8,8,28
419	xor	15,10,11
420	xor	29,29,21
421	add	8,8,7
422	rotlwi	10,10,30
423	xor	15,15,12
424	xor	29,29,26
425	add	8,8,15
426	rotlwi	29,29,1
427	add	7,0,12
428	rotlwi	12,8,5
429	xor	30,30,16
430	add	7,7,29
431	xor	15,9,10
432	xor	30,30,22
433	add	7,7,12
434	rotlwi	9,9,30
435	xor	15,15,11
436	xor	30,30,27
437	add	7,7,15
438	rotlwi	30,30,1
439	add	12,0,11
440	rotlwi	11,7,5
441	xor	31,31,17
442	add	12,12,30
443	xor	15,8,9
444	xor	31,31,23
445	add	12,12,11
446	rotlwi	8,8,30
447	xor	15,15,10
448	xor	31,31,28
449	add	12,12,15
450	rotlwi	31,31,1
451	add	11,0,10
452	rotlwi	10,12,5
453	xor	16,16,18
454	add	11,11,31
455	xor	15,7,8
456	xor	16,16,24
457	add	11,11,10
458	rotlwi	7,7,30
459	xor	15,15,9
460	xor	16,16,29
461	add	11,11,15
462	rotlwi	16,16,1
463	add	10,0,9
464	rotlwi	9,11,5
465	xor	17,17,19
466	add	10,10,16
467	xor	15,12,7
468	xor	17,17,25
469	add	10,10,9
470	rotlwi	12,12,30
471	xor	15,15,8
472	xor	17,17,30
473	add	10,10,15
474	rotlwi	17,17,1
475	add	9,0,8
476	rotlwi	8,10,5
477	xor	18,18,20
478	add	9,9,17
479	xor	15,11,12
480	xor	18,18,26
481	add	9,9,8
482	rotlwi	11,11,30
483	xor	15,15,7
484	xor	18,18,31
485	add	9,9,15
486	rotlwi	18,18,1
487	add	8,0,7
488	rotlwi	7,9,5
489	xor	19,19,21
490	add	8,8,18
491	xor	15,10,11
492	xor	19,19,27
493	add	8,8,7
494	rotlwi	10,10,30
495	xor	15,15,12
496	xor	19,19,16
497	add	8,8,15
498	rotlwi	19,19,1
499	add	7,0,12
500	rotlwi	12,8,5
501	xor	20,20,22
502	add	7,7,19
503	xor	15,9,10
504	xor	20,20,28
505	add	7,7,12
506	rotlwi	9,9,30
507	xor	15,15,11
508	xor	20,20,17
509	add	7,7,15
510	rotlwi	20,20,1
511	add	12,0,11
512	rotlwi	11,7,5
513	xor	21,21,23
514	add	12,12,20
515	xor	15,8,9
516	xor	21,21,29
517	add	12,12,11
518	rotlwi	8,8,30
519	xor	15,15,10
520	xor	21,21,18
521	add	12,12,15
522	rotlwi	21,21,1
523	add	11,0,10
524	rotlwi	10,12,5
525	xor	22,22,24
526	add	11,11,21
527	xor	15,7,8
528	xor	22,22,30
529	add	11,11,10
530	rotlwi	7,7,30
531	xor	15,15,9
532	xor	22,22,19
533	add	11,11,15
534	rotlwi	22,22,1
535	add	10,0,9
536	rotlwi	9,11,5
537	xor	23,23,25
538	add	10,10,22
539	xor	15,12,7
540	xor	23,23,31
541	add	10,10,9
542	rotlwi	12,12,30
543	xor	15,15,8
544	xor	23,23,20
545	add	10,10,15
546	rotlwi	23,23,1
547	add	9,0,8
548	rotlwi	8,10,5
549	xor	24,24,26
550	add	9,9,23
551	xor	15,11,12
552	xor	24,24,16
553	add	9,9,8
554	rotlwi	11,11,30
555	xor	15,15,7
556	xor	24,24,21
557	add	9,9,15
558	rotlwi	24,24,1
559	lis	0,0x8f1b
560	ori	0,0,0xbcdc
561	add	8,0,7
562	rotlwi	7,9,5
563	xor	25,25,27
564	add	8,8,24
565	and	15,10,11
566	xor	25,25,17
567	add	8,8,7
568	or	6,10,11
569	rotlwi	10,10,30
570	xor	25,25,22
571	and	6,6,12
572	or	15,15,6
573	rotlwi	25,25,1
574	add	8,8,15
575	add	7,0,12
576	rotlwi	12,8,5
577	xor	26,26,28
578	add	7,7,25
579	and	15,9,10
580	xor	26,26,18
581	add	7,7,12
582	or	6,9,10
583	rotlwi	9,9,30
584	xor	26,26,23
585	and	6,6,11
586	or	15,15,6
587	rotlwi	26,26,1
588	add	7,7,15
589	add	12,0,11
590	rotlwi	11,7,5
591	xor	27,27,29
592	add	12,12,26
593	and	15,8,9
594	xor	27,27,19
595	add	12,12,11
596	or	6,8,9
597	rotlwi	8,8,30
598	xor	27,27,24
599	and	6,6,10
600	or	15,15,6
601	rotlwi	27,27,1
602	add	12,12,15
603	add	11,0,10
604	rotlwi	10,12,5
605	xor	28,28,30
606	add	11,11,27
607	and	15,7,8
608	xor	28,28,20
609	add	11,11,10
610	or	6,7,8
611	rotlwi	7,7,30
612	xor	28,28,25
613	and	6,6,9
614	or	15,15,6
615	rotlwi	28,28,1
616	add	11,11,15
617	add	10,0,9
618	rotlwi	9,11,5
619	xor	29,29,31
620	add	10,10,28
621	and	15,12,7
622	xor	29,29,21
623	add	10,10,9
624	or	6,12,7
625	rotlwi	12,12,30
626	xor	29,29,26
627	and	6,6,8
628	or	15,15,6
629	rotlwi	29,29,1
630	add	10,10,15
631	add	9,0,8
632	rotlwi	8,10,5
633	xor	30,30,16
634	add	9,9,29
635	and	15,11,12
636	xor	30,30,22
637	add	9,9,8
638	or	6,11,12
639	rotlwi	11,11,30
640	xor	30,30,27
641	and	6,6,7
642	or	15,15,6
643	rotlwi	30,30,1
644	add	9,9,15
645	add	8,0,7
646	rotlwi	7,9,5
647	xor	31,31,17
648	add	8,8,30
649	and	15,10,11
650	xor	31,31,23
651	add	8,8,7
652	or	6,10,11
653	rotlwi	10,10,30
654	xor	31,31,28
655	and	6,6,12
656	or	15,15,6
657	rotlwi	31,31,1
658	add	8,8,15
659	add	7,0,12
660	rotlwi	12,8,5
661	xor	16,16,18
662	add	7,7,31
663	and	15,9,10
664	xor	16,16,24
665	add	7,7,12
666	or	6,9,10
667	rotlwi	9,9,30
668	xor	16,16,29
669	and	6,6,11
670	or	15,15,6
671	rotlwi	16,16,1
672	add	7,7,15
673	add	12,0,11
674	rotlwi	11,7,5
675	xor	17,17,19
676	add	12,12,16
677	and	15,8,9
678	xor	17,17,25
679	add	12,12,11
680	or	6,8,9
681	rotlwi	8,8,30
682	xor	17,17,30
683	and	6,6,10
684	or	15,15,6
685	rotlwi	17,17,1
686	add	12,12,15
687	add	11,0,10
688	rotlwi	10,12,5
689	xor	18,18,20
690	add	11,11,17
691	and	15,7,8
692	xor	18,18,26
693	add	11,11,10
694	or	6,7,8
695	rotlwi	7,7,30
696	xor	18,18,31
697	and	6,6,9
698	or	15,15,6
699	rotlwi	18,18,1
700	add	11,11,15
701	add	10,0,9
702	rotlwi	9,11,5
703	xor	19,19,21
704	add	10,10,18
705	and	15,12,7
706	xor	19,19,27
707	add	10,10,9
708	or	6,12,7
709	rotlwi	12,12,30
710	xor	19,19,16
711	and	6,6,8
712	or	15,15,6
713	rotlwi	19,19,1
714	add	10,10,15
715	add	9,0,8
716	rotlwi	8,10,5
717	xor	20,20,22
718	add	9,9,19
719	and	15,11,12
720	xor	20,20,28
721	add	9,9,8
722	or	6,11,12
723	rotlwi	11,11,30
724	xor	20,20,17
725	and	6,6,7
726	or	15,15,6
727	rotlwi	20,20,1
728	add	9,9,15
729	add	8,0,7
730	rotlwi	7,9,5
731	xor	21,21,23
732	add	8,8,20
733	and	15,10,11
734	xor	21,21,29
735	add	8,8,7
736	or	6,10,11
737	rotlwi	10,10,30
738	xor	21,21,18
739	and	6,6,12
740	or	15,15,6
741	rotlwi	21,21,1
742	add	8,8,15
743	add	7,0,12
744	rotlwi	12,8,5
745	xor	22,22,24
746	add	7,7,21
747	and	15,9,10
748	xor	22,22,30
749	add	7,7,12
750	or	6,9,10
751	rotlwi	9,9,30
752	xor	22,22,19
753	and	6,6,11
754	or	15,15,6
755	rotlwi	22,22,1
756	add	7,7,15
757	add	12,0,11
758	rotlwi	11,7,5
759	xor	23,23,25
760	add	12,12,22
761	and	15,8,9
762	xor	23,23,31
763	add	12,12,11
764	or	6,8,9
765	rotlwi	8,8,30
766	xor	23,23,20
767	and	6,6,10
768	or	15,15,6
769	rotlwi	23,23,1
770	add	12,12,15
771	add	11,0,10
772	rotlwi	10,12,5
773	xor	24,24,26
774	add	11,11,23
775	and	15,7,8
776	xor	24,24,16
777	add	11,11,10
778	or	6,7,8
779	rotlwi	7,7,30
780	xor	24,24,21
781	and	6,6,9
782	or	15,15,6
783	rotlwi	24,24,1
784	add	11,11,15
785	add	10,0,9
786	rotlwi	9,11,5
787	xor	25,25,27
788	add	10,10,24
789	and	15,12,7
790	xor	25,25,17
791	add	10,10,9
792	or	6,12,7
793	rotlwi	12,12,30
794	xor	25,25,22
795	and	6,6,8
796	or	15,15,6
797	rotlwi	25,25,1
798	add	10,10,15
799	add	9,0,8
800	rotlwi	8,10,5
801	xor	26,26,28
802	add	9,9,25
803	and	15,11,12
804	xor	26,26,18
805	add	9,9,8
806	or	6,11,12
807	rotlwi	11,11,30
808	xor	26,26,23
809	and	6,6,7
810	or	15,15,6
811	rotlwi	26,26,1
812	add	9,9,15
813	add	8,0,7
814	rotlwi	7,9,5
815	xor	27,27,29
816	add	8,8,26
817	and	15,10,11
818	xor	27,27,19
819	add	8,8,7
820	or	6,10,11
821	rotlwi	10,10,30
822	xor	27,27,24
823	and	6,6,12
824	or	15,15,6
825	rotlwi	27,27,1
826	add	8,8,15
827	add	7,0,12
828	rotlwi	12,8,5
829	xor	28,28,30
830	add	7,7,27
831	and	15,9,10
832	xor	28,28,20
833	add	7,7,12
834	or	6,9,10
835	rotlwi	9,9,30
836	xor	28,28,25
837	and	6,6,11
838	or	15,15,6
839	rotlwi	28,28,1
840	add	7,7,15
841	lis	0,0xca62
842	ori	0,0,0xc1d6
843	add	12,0,11
844	rotlwi	11,7,5
845	xor	29,29,31
846	add	12,12,28
847	xor	15,8,9
848	xor	29,29,21
849	add	12,12,11
850	rotlwi	8,8,30
851	xor	15,15,10
852	xor	29,29,26
853	add	12,12,15
854	rotlwi	29,29,1
855	add	11,0,10
856	rotlwi	10,12,5
857	xor	30,30,16
858	add	11,11,29
859	xor	15,7,8
860	xor	30,30,22
861	add	11,11,10
862	rotlwi	7,7,30
863	xor	15,15,9
864	xor	30,30,27
865	add	11,11,15
866	rotlwi	30,30,1
867	add	10,0,9
868	rotlwi	9,11,5
869	xor	31,31,17
870	add	10,10,30
871	xor	15,12,7
872	xor	31,31,23
873	add	10,10,9
874	rotlwi	12,12,30
875	xor	15,15,8
876	xor	31,31,28
877	add	10,10,15
878	rotlwi	31,31,1
879	add	9,0,8
880	rotlwi	8,10,5
881	xor	16,16,18
882	add	9,9,31
883	xor	15,11,12
884	xor	16,16,24
885	add	9,9,8
886	rotlwi	11,11,30
887	xor	15,15,7
888	xor	16,16,29
889	add	9,9,15
890	rotlwi	16,16,1
891	add	8,0,7
892	rotlwi	7,9,5
893	xor	17,17,19
894	add	8,8,16
895	xor	15,10,11
896	xor	17,17,25
897	add	8,8,7
898	rotlwi	10,10,30
899	xor	15,15,12
900	xor	17,17,30
901	add	8,8,15
902	rotlwi	17,17,1
903	add	7,0,12
904	rotlwi	12,8,5
905	xor	18,18,20
906	add	7,7,17
907	xor	15,9,10
908	xor	18,18,26
909	add	7,7,12
910	rotlwi	9,9,30
911	xor	15,15,11
912	xor	18,18,31
913	add	7,7,15
914	rotlwi	18,18,1
915	add	12,0,11
916	rotlwi	11,7,5
917	xor	19,19,21
918	add	12,12,18
919	xor	15,8,9
920	xor	19,19,27
921	add	12,12,11
922	rotlwi	8,8,30
923	xor	15,15,10
924	xor	19,19,16
925	add	12,12,15
926	rotlwi	19,19,1
927	add	11,0,10
928	rotlwi	10,12,5
929	xor	20,20,22
930	add	11,11,19
931	xor	15,7,8
932	xor	20,20,28
933	add	11,11,10
934	rotlwi	7,7,30
935	xor	15,15,9
936	xor	20,20,17
937	add	11,11,15
938	rotlwi	20,20,1
939	add	10,0,9
940	rotlwi	9,11,5
941	xor	21,21,23
942	add	10,10,20
943	xor	15,12,7
944	xor	21,21,29
945	add	10,10,9
946	rotlwi	12,12,30
947	xor	15,15,8
948	xor	21,21,18
949	add	10,10,15
950	rotlwi	21,21,1
951	add	9,0,8
952	rotlwi	8,10,5
953	xor	22,22,24
954	add	9,9,21
955	xor	15,11,12
956	xor	22,22,30
957	add	9,9,8
958	rotlwi	11,11,30
959	xor	15,15,7
960	xor	22,22,19
961	add	9,9,15
962	rotlwi	22,22,1
963	add	8,0,7
964	rotlwi	7,9,5
965	xor	23,23,25
966	add	8,8,22
967	xor	15,10,11
968	xor	23,23,31
969	add	8,8,7
970	rotlwi	10,10,30
971	xor	15,15,12
972	xor	23,23,20
973	add	8,8,15
974	rotlwi	23,23,1
975	add	7,0,12
976	rotlwi	12,8,5
977	xor	24,24,26
978	add	7,7,23
979	xor	15,9,10
980	xor	24,24,16
981	add	7,7,12
982	rotlwi	9,9,30
983	xor	15,15,11
984	xor	24,24,21
985	add	7,7,15
986	rotlwi	24,24,1
987	add	12,0,11
988	rotlwi	11,7,5
989	xor	25,25,27
990	add	12,12,24
991	xor	15,8,9
992	xor	25,25,17
993	add	12,12,11
994	rotlwi	8,8,30
995	xor	15,15,10
996	xor	25,25,22
997	add	12,12,15
998	rotlwi	25,25,1
999	add	11,0,10
1000	rotlwi	10,12,5
1001	xor	26,26,28
1002	add	11,11,25
1003	xor	15,7,8
1004	xor	26,26,18
1005	add	11,11,10
1006	rotlwi	7,7,30
1007	xor	15,15,9
1008	xor	26,26,23
1009	add	11,11,15
1010	rotlwi	26,26,1
1011	add	10,0,9
1012	rotlwi	9,11,5
1013	xor	27,27,29
1014	add	10,10,26
1015	xor	15,12,7
1016	xor	27,27,19
1017	add	10,10,9
1018	rotlwi	12,12,30
1019	xor	15,15,8
1020	xor	27,27,24
1021	add	10,10,15
1022	rotlwi	27,27,1
1023	add	9,0,8
1024	rotlwi	8,10,5
1025	xor	28,28,30
1026	add	9,9,27
1027	xor	15,11,12
1028	xor	28,28,20
1029	add	9,9,8
1030	rotlwi	11,11,30
1031	xor	15,15,7
1032	xor	28,28,25
1033	add	9,9,15
1034	rotlwi	28,28,1
1035	add	8,0,7
1036	rotlwi	7,9,5
1037	xor	29,29,31
1038	add	8,8,28
1039	xor	15,10,11
1040	xor	29,29,21
1041	add	8,8,7
1042	rotlwi	10,10,30
1043	xor	15,15,12
1044	xor	29,29,26
1045	add	8,8,15
1046	rotlwi	29,29,1
1047	add	7,0,12
1048	rotlwi	12,8,5
1049	xor	30,30,16
1050	add	7,7,29
1051	xor	15,9,10
1052	xor	30,30,22
1053	add	7,7,12
1054	rotlwi	9,9,30
1055	xor	15,15,11
1056	xor	30,30,27
1057	add	7,7,15
1058	rotlwi	30,30,1
1059	add	12,0,11
1060	rotlwi	11,7,5
1061	xor	31,31,17
1062	add	12,12,30
1063	xor	15,8,9
1064	xor	31,31,23
1065	add	12,12,11
1066	rotlwi	8,8,30
1067	xor	15,15,10
1068	xor	31,31,28
1069	add	12,12,15
1070	rotlwi	31,31,1
1071	add	11,0,10
1072	rotlwi	10,12,5
1073	lwz	16,0(3)
1074	add	11,11,31
1075	xor	15,7,8
1076	lwz	17,4(3)
1077	add	11,11,10
1078	rotlwi	7,7,30
1079	lwz	18,8(3)
1080	xor	15,15,9
1081	lwz	19,12(3)
1082	add	11,11,15
1083	lwz	20,16(3)
1084	add	16,16,11
1085	add	17,17,12
1086	add	18,18,7
1087	add	19,19,8
1088	add	20,20,9
1089	stw	16,0(3)
1090	mr	7,16
1091	stw	17,4(3)
1092	mr	8,17
1093	stw	18,8(3)
1094	mr	9,18
1095	stw	19,12(3)
1096	mr	10,19
1097	stw	20,16(3)
1098	mr	11,20
1099	addi	4,4,64
1100	bdnz+	.Lsha1_block_private
1101	blr
1102.byte	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,80,80,67,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,102,121,46,99,104,97,108,109,101,114,115,46,115,101,62,0
1103.align	2
1104