etc/services - sync with NetBSD-8
[minix.git] / crypto / external / bsd / openssl / lib / libcrypto / arch / powerpc / ppc.S
blobd739669f574512f1558ba3834b70d57afb02df69
83 .globl  bn_sqr_comba4
84 .type   bn_sqr_comba4,@function
85 .globl  bn_sqr_comba8
86 .type   bn_sqr_comba8,@function
87 .globl  bn_mul_comba4
88 .type   bn_mul_comba4,@function
89 .globl  bn_mul_comba8
90 .type   bn_mul_comba8,@function
91 .globl  bn_sub_words
92 .type   bn_sub_words,@function
93 .globl  bn_add_words
94 .type   bn_add_words,@function
95 .globl  bn_div_words
96 .type   bn_div_words,@function
97 .globl  bn_sqr_words
98 .type   bn_sqr_words,@function
99 .globl  bn_mul_words
100 .type   bn_mul_words,@function
101 .globl  bn_mul_add_words
102 .type   bn_mul_add_words,@function
106 .machine        "any"
115 .align  4
116 bn_sqr_comba4:
132         xor     0,0,0
136         lwz     5,0(4)
137         mullw   9,5,5
138         mulhwu  10,5,5
143         stw     9,0(3)
145         lwz     6,4(4)
146         mullw   7,5,6
147         mulhwu  8,5,6
149         addc    7,7,7
150         adde    8,8,8
151         addze   9,0
154         addc    10,7,10
155         addze   11,8
156         addze   9,9
158         stw     10,4(3)
160         mullw   7,6,6
161         mulhwu  8,6,6
162         addc    11,7,11
163         adde    9,8,9
164         addze   10,0
166         lwz     6,8(4)
167         mullw   7,5,6
168         mulhwu  8,5,6
170         addc    7,7,7
171         adde    8,8,8
172         addze   10,10
174         addc    11,7,11
175         adde    9,8,9
176         addze   10,10
177         stw     11,8(3)
179         lwz     6,12(4)
180         mullw   7,5,6
181         mulhwu  8,5,6
182         addc    7,7,7
183         adde    8,8,8
184         addze   11,0
186         addc    9,7,9
187         adde    10,8,10
188         addze   11,11
190         lwz     5,4(4)
191         lwz     6,8(4)
192         mullw   7,5,6
193         mulhwu  8,5,6
195         addc    7,7,7
196         adde    8,8,8
197         addze   11,11
198         addc    9,7,9
199         adde    10,8,10
200         addze   11,11
201         stw     9,12(3)
203         mullw   7,6,6
204         mulhwu  8,6,6
205         addc    10,7,10
206         adde    11,8,11
207         addze   9,0
209         lwz     6,12(4)
210         mullw   7,5,6
211         mulhwu  8,5,6
212         addc    7,7,7
213         adde    8,8,8
214         addze   9,9
216         addc    10,7,10
217         adde    11,8,11
218         addze   9,9
219         stw     10,16(3)
221         lwz     5,8(4)
222         mullw   7,5,6
223         mulhwu  8,5,6
224         addc    7,7,7
225         adde    8,8,8
226         addze   10,0
228         addc    11,7,11
229         adde    9,8,9
230         addze   10,10
231         stw     11,20(3)
233         mullw   7,6,6
234         mulhwu  8,6,6
235         addc    9,7,9
236         adde    10,8,10
238         stw     9,24(3)
239         stw     10,28(3)
240         blr     
241 .long   0
242 .byte   0,12,0x14,0,0,0,2,0
243 .long   0
252 .align  4
253 bn_sqr_comba8:
273         xor     0,0,0
277         lwz     5,0(4)
278         mullw   9,5,5
279         mulhwu  10,5,5
280         stw     9,0(3)
282         lwz     6,4(4)
283         mullw   7,5,6
284         mulhwu  8,5,6
286         addc    10,7,10
287         adde    11,8,0
288         addze   9,0
290         addc    10,7,10
291         adde    11,8,11
292         addze   9,9
294         stw     10,4(3)
297         mullw   7,6,6
298         mulhwu  8,6,6
299         addc    11,7,11
300         adde    9,8,9
301         addze   10,0
303         lwz     6,8(4)
304         mullw   7,5,6
305         mulhwu  8,5,6
307         addc    11,7,11
308         adde    9,8,9
309         addze   10,10
311         addc    11,7,11
312         adde    9,8,9
313         addze   10,10
315         stw     11,8(3)
317         lwz     6,12(4)
318         mullw   7,5,6
319         mulhwu  8,5,6
321         addc    9,7,9
322         adde    10,8,10
323         addze   11,0
325         addc    9,7,9
326         adde    10,8,10
327         addze   11,11
329         lwz     5,4(4)
330         lwz     6,8(4)
331         mullw   7,5,6
332         mulhwu  8,5,6
334         addc    9,7,9
335         adde    10,8,10
336         addze   11,11
338         addc    9,7,9
339         adde    10,8,10
340         addze   11,11
342         stw     9,12(3)
344         mullw   7,6,6
345         mulhwu  8,6,6
347         addc    10,7,10
348         adde    11,8,11
349         addze   9,0
351         lwz     6,12(4)
352         mullw   7,5,6
353         mulhwu  8,5,6
355         addc    10,7,10
356         adde    11,8,11
357         addze   9,9
359         addc    10,7,10
360         adde    11,8,11
361         addze   9,9
363         lwz     5,0(4)
364         lwz     6,16(4)
365         mullw   7,5,6
366         mulhwu  8,5,6
368         addc    10,7,10
369         adde    11,8,11
370         addze   9,9
372         addc    10,7,10
373         adde    11,8,11
374         addze   9,9
375         stw     10,16(3)
377         lwz     6,20(4)
378         mullw   7,5,6
379         mulhwu  8,5,6
381         addc    11,7,11
382         adde    9,8,9
383         addze   10,0
385         addc    11,7,11
386         adde    9,8,9
387         addze   10,10
389         lwz     5,4(4)
390         lwz     6,16(4)
391         mullw   7,5,6
392         mulhwu  8,5,6
394         addc    11,7,11
395         adde    9,8,9
396         addze   10,10
398         addc    11,7,11
399         adde    9,8,9
400         addze   10,10
402         lwz     5,8(4)
403         lwz     6,12(4)
404         mullw   7,5,6
405         mulhwu  8,5,6
407         addc    11,7,11
408         adde    9,8,9
409         addze   10,10
411         addc    11,7,11
412         adde    9,8,9
413         addze   10,10
414         stw     11,20(3)
416         mullw   7,6,6
417         mulhwu  8,6,6
418         addc    9,7,9
419         adde    10,8,10
420         addze   11,0
422         lwz     6,16(4)
423         mullw   7,5,6
424         mulhwu  8,5,6
426         addc    9,7,9
427         adde    10,8,10
428         addze   11,11
430         addc    9,7,9
431         adde    10,8,10
432         addze   11,11
434         lwz     5,4(4)
435         lwz     6,20(4)
436         mullw   7,5,6
437         mulhwu  8,5,6
439         addc    9,7,9
440         adde    10,8,10
441         addze   11,11
443         addc    9,7,9
444         adde    10,8,10
445         addze   11,11
447         lwz     5,0(4)
448         lwz     6,24(4)
449         mullw   7,5,6
450         mulhwu  8,5,6
451         addc    9,7,9
452         adde    10,8,10
453         addze   11,11
454         addc    9,7,9
455         adde    10,8,10
456         addze   11,11
457         stw     9,24(3)
459         lwz     6,28(4)
460         mullw   7,5,6
461         mulhwu  8,5,6
463         addc    10,7,10
464         adde    11,8,11
465         addze   9,0
466         addc    10,7,10
467         adde    11,8,11
468         addze   9,9
470         lwz     5,4(4)
471         lwz     6,24(4)
472         mullw   7,5,6
473         mulhwu  8,5,6
475         addc    10,7,10
476         adde    11,8,11
477         addze   9,9
478         addc    10,7,10
479         adde    11,8,11
480         addze   9,9
482         lwz     5,8(4)
483         lwz     6,20(4)
484         mullw   7,5,6
485         mulhwu  8,5,6
486         addc    10,7,10
487         adde    11,8,11
488         addze   9,9
489         addc    10,7,10
490         adde    11,8,11
491         addze   9,9
493         lwz     5,12(4)
494         lwz     6,16(4)
495         mullw   7,5,6
496         mulhwu  8,5,6
498         addc    10,7,10
499         adde    11,8,11
500         addze   9,9
501         addc    10,7,10
502         adde    11,8,11
503         addze   9,9
504         stw     10,28(3)
506         mullw   7,6,6
507         mulhwu  8,6,6
508         addc    11,7,11
509         adde    9,8,9
510         addze   10,0
512         lwz     6,20(4)
513         mullw   7,5,6
514         mulhwu  8,5,6
515         addc    11,7,11
516         adde    9,8,9
517         addze   10,10
518         addc    11,7,11
519         adde    9,8,9
520         addze   10,10
522         lwz     5,8(4)
523         lwz     6,24(4)
524         mullw   7,5,6
525         mulhwu  8,5,6
526         addc    11,7,11
527         adde    9,8,9
528         addze   10,10
530         addc    11,7,11
531         adde    9,8,9
532         addze   10,10
534         lwz     5,4(4)
535         lwz     6,28(4)
536         mullw   7,5,6
537         mulhwu  8,5,6
538         addc    11,7,11
539         adde    9,8,9
540         addze   10,10
541         addc    11,7,11
542         adde    9,8,9
543         addze   10,10
544         stw     11,32(3)
546         lwz     5,8(4)
547         mullw   7,5,6
548         mulhwu  8,5,6
550         addc    9,7,9
551         adde    10,8,10
552         addze   11,0
553         addc    9,7,9
554         adde    10,8,10
555         addze   11,11
557         lwz     5,12(4)
558         lwz     6,24(4)
559         mullw   7,5,6
560         mulhwu  8,5,6
561         addc    9,7,9
562         adde    10,8,10
563         addze   11,11
564         addc    9,7,9
565         adde    10,8,10
566         addze   11,11
568         lwz     5,16(4)
569         lwz     6,20(4)
570         mullw   7,5,6
571         mulhwu  8,5,6
572         addc    9,7,9
573         adde    10,8,10
574         addze   11,11
575         addc    9,7,9
576         adde    10,8,10
577         addze   11,11
578         stw     9,36(3)
580         mullw   7,6,6
581         mulhwu  8,6,6
582         addc    10,7,10
583         adde    11,8,11
584         addze   9,0
586         lwz     6,24(4)
587         mullw   7,5,6
588         mulhwu  8,5,6
589         addc    10,7,10
590         adde    11,8,11
591         addze   9,9
592         addc    10,7,10
593         adde    11,8,11
594         addze   9,9
596         lwz     5,12(4)
597         lwz     6,28(4)
598         mullw   7,5,6
599         mulhwu  8,5,6
600         addc    10,7,10
601         adde    11,8,11
602         addze   9,9
603         addc    10,7,10
604         adde    11,8,11
605         addze   9,9
606         stw     10,40(3)
608         lwz     5,16(4)
609         mullw   7,5,6
610         mulhwu  8,5,6
611         addc    11,7,11
612         adde    9,8,9
613         addze   10,0
614         addc    11,7,11
615         adde    9,8,9
616         addze   10,10
618         lwz     5,20(4)
619         lwz     6,24(4)
620         mullw   7,5,6
621         mulhwu  8,5,6
622         addc    11,7,11
623         adde    9,8,9
624         addze   10,10
625         addc    11,7,11
626         adde    9,8,9
627         addze   10,10
628         stw     11,44(3)
630         mullw   7,6,6
631         mulhwu  8,6,6
632         addc    9,7,9
633         adde    10,8,10
634         addze   11,0
636         lwz     6,28(4)
637         mullw   7,5,6
638         mulhwu  8,5,6
639         addc    9,7,9
640         adde    10,8,10
641         addze   11,11
642         addc    9,7,9
643         adde    10,8,10
644         addze   11,11
645         stw     9,48(3)
648         lwz     5,24(4)
649         mullw   7,5,6
650         mulhwu  8,5,6
651         addc    10,7,10
652         adde    11,8,11
653         addze   9,0
654         addc    10,7,10
655         adde    11,8,11
656         addze   9,9
657         stw     10,52(3)
659         mullw   7,6,6
660         mulhwu  8,6,6
661         addc    11,7,11
662         adde    9,8,9
663         stw     11,56(3)
664         stw     9, 60(3)
667         blr     
668 .long   0
669 .byte   0,12,0x14,0,0,0,2,0
670 .long   0
679 .align  4
680 bn_mul_comba4:
692         xor     0,0,0
694         lwz     6,0(4)
695         lwz     7,0(5)
696         mullw   10,6,7
697         mulhwu  11,6,7
698         stw     10,0(3)
700         lwz     7,4(5)
701         mullw   8,6,7
702         mulhwu  9,6,7
703         addc    11,8,11
704         adde    12,9,0
705         addze   10,0
707         lwz     6, 4(4)
708         lwz     7, 0(5)
709         mullw   8,6,7
710         mulhwu  9,6,7
711         addc    11,8,11
712         adde    12,9,12
713         addze   10,10
714         stw     11,4(3)
716         lwz     6,8(4)
717         mullw   8,6,7
718         mulhwu  9,6,7
719         addc    12,8,12
720         adde    10,9,10
721         addze   11,0
723         lwz     6,4(4)
724         lwz     7,4(5)
725         mullw   8,6,7
726         mulhwu  9,6,7
727         addc    12,8,12
728         adde    10,9,10
729         addze   11,11
731         lwz     6,0(4)
732         lwz     7,8(5)
733         mullw   8,6,7
734         mulhwu  9,6,7
735         addc    12,8,12
736         adde    10,9,10
737         addze   11,11
738         stw     12,8(3)
740         lwz     7,12(5)
741         mullw   8,6,7
742         mulhwu  9,6,7
743         addc    10,8,10
744         adde    11,9,11
745         addze   12,0
747         lwz     6,4(4)
748         lwz     7,8(5)
749         mullw   8,6,7
750         mulhwu  9,6,7
751         addc    10,8,10
752         adde    11,9,11
753         addze   12,12
755         lwz     6,8(4)
756         lwz     7,4(5)
757         mullw   8,6,7
758         mulhwu  9,6,7
759         addc    10,8,10
760         adde    11,9,11
761         addze   12,12
763         lwz     6,12(4)
764         lwz     7,0(5)
765         mullw   8,6,7
766         mulhwu  9,6,7
767         addc    10,8,10
768         adde    11,9,11
769         addze   12,12
770         stw     10,12(3)
772         lwz     7,4(5)
773         mullw   8,6,7
774         mulhwu  9,6,7
775         addc    11,8,11
776         adde    12,9,12
777         addze   10,0
779         lwz     6,8(4)
780         lwz     7,8(5)
781         mullw   8,6,7
782         mulhwu  9,6,7
783         addc    11,8,11
784         adde    12,9,12
785         addze   10,10
787         lwz     6,4(4)
788         lwz     7,12(5)
789         mullw   8,6,7
790         mulhwu  9,6,7
791         addc    11,8,11
792         adde    12,9,12
793         addze   10,10
794         stw     11,16(3)
796         lwz     6,8(4)
797         mullw   8,6,7
798         mulhwu  9,6,7
799         addc    12,8,12
800         adde    10,9,10
801         addze   11,0
803         lwz     6,12(4)
804         lwz     7,8(5)
805         mullw   8,6,7
806         mulhwu  9,6,7
807         addc    12,8,12
808         adde    10,9,10
809         addze   11,11
810         stw     12,20(3)
812         lwz     7,12(5)
813         mullw   8,6,7
814         mulhwu  9,6,7
815         addc    10,8,10
816         adde    11,9,11
818         stw     10,24(3)
819         stw     11,28(3)
820         blr     
821 .long   0
822 .byte   0,12,0x14,0,0,0,3,0
823 .long   0
832 .align  4
833 bn_mul_comba8:
845         xor     0,0,0
848         lwz     6,0(4)
849         lwz     7,0(5)
850         mullw   10,6,7
851         mulhwu  11,6,7
852         stw     10,0(3)
854         lwz     7,4(5)
855         mullw   8,6,7
856         mulhwu  9,6,7
857         addc    11,11,8
858         addze   12,9
859         addze   10,0
861         lwz     6,4(4)
862         lwz     7,0(5)
863         mullw   8,6,7
864         mulhwu  9,6,7
865         addc    11,11,8
866         adde    12,12,9
867         addze   10,10
868         stw     11,4(3)
870         lwz     6,8(4)
871         mullw   8,6,7
872         mulhwu  9,6,7
873         addc    12,12,8
874         adde    10,10,9
875         addze   11,0
877         lwz     6,4(4)
878         lwz     7,4(5)
879         mullw   8,6,7
880         mulhwu  9,6,7
881         addc    12,12,8
882         adde    10,10,9
883         addze   11,11
885         lwz     6,0(4)
886         lwz     7,8(5)
887         mullw   8,6,7
888         mulhwu  9,6,7
889         addc    12,12,8
890         adde    10,10,9
891         addze   11,11
892         stw     12,8(3)
894         lwz     7,12(5)
895         mullw   8,6,7
896         mulhwu  9,6,7
897         addc    10,10,8
898         adde    11,11,9
899         addze   12,0
901         lwz     6,4(4)
902         lwz     7,8(5)
903         mullw   8,6,7
904         mulhwu  9,6,7
905         addc    10,10,8
906         adde    11,11,9
907         addze   12,12
910         lwz     6,8(4)
911         lwz     7,4(5)
912         mullw   8,6,7
913         mulhwu  9,6,7
914         addc    10,10,8
915         adde    11,11,9
916         addze   12,12
918         lwz     6,12(4)
919         lwz     7,0(5)
920         mullw   8,6,7
921         mulhwu  9,6,7
922         addc    10,10,8
923         adde    11,11,9
924         addze   12,12
925         stw     10,12(3)
927         lwz     6,16(4)
928         mullw   8,6,7
929         mulhwu  9,6,7
930         addc    11,11,8
931         adde    12,12,9
932         addze   10,0
934         lwz     6,12(4)
935         lwz     7,4(5)
936         mullw   8,6,7
937         mulhwu  9,6,7
938         addc    11,11,8
939         adde    12,12,9
940         addze   10,10
942         lwz     6,8(4)
943         lwz     7,8(5)
944         mullw   8,6,7
945         mulhwu  9,6,7
946         addc    11,11,8
947         adde    12,12,9
948         addze   10,10
950         lwz     6,4(4)
951         lwz     7,12(5)
952         mullw   8,6,7
953         mulhwu  9,6,7
954         addc    11,11,8
955         adde    12,12,9
956         addze   10,10
958         lwz     6,0(4)
959         lwz     7,16(5)
960         mullw   8,6,7
961         mulhwu  9,6,7
962         addc    11,11,8
963         adde    12,12,9
964         addze   10,10
965         stw     11,16(3)
967         lwz     7,20(5)
968         mullw   8,6,7
969         mulhwu  9,6,7
970         addc    12,12,8
971         adde    10,10,9
972         addze   11,0
974         lwz     6,4(4)
975         lwz     7,16(5)
976         mullw   8,6,7
977         mulhwu  9,6,7
978         addc    12,12,8
979         adde    10,10,9
980         addze   11,11
982         lwz     6,8(4)
983         lwz     7,12(5)
984         mullw   8,6,7
985         mulhwu  9,6,7
986         addc    12,12,8
987         adde    10,10,9
988         addze   11,11
990         lwz     6,12(4)
991         lwz     7,8(5)
992         mullw   8,6,7
993         mulhwu  9,6,7
994         addc    12,12,8
995         adde    10,10,9
996         addze   11,11
998         lwz     6,16(4)
999         lwz     7,4(5)
1000         mullw   8,6,7
1001         mulhwu  9,6,7
1002         addc    12,12,8
1003         adde    10,10,9
1004         addze   11,11
1006         lwz     6,20(4)
1007         lwz     7,0(5)
1008         mullw   8,6,7
1009         mulhwu  9,6,7
1010         addc    12,12,8
1011         adde    10,10,9
1012         addze   11,11
1013         stw     12,20(3)
1015         lwz     6,24(4)
1016         mullw   8,6,7
1017         mulhwu  9,6,7
1018         addc    10,10,8
1019         adde    11,11,9
1020         addze   12,0
1022         lwz     6,20(4)
1023         lwz     7,4(5)
1024         mullw   8,6,7
1025         mulhwu  9,6,7
1026         addc    10,10,8
1027         adde    11,11,9
1028         addze   12,12
1030         lwz     6,16(4)
1031         lwz     7,8(5)
1032         mullw   8,6,7
1033         mulhwu  9,6,7
1034         addc    10,10,8
1035         adde    11,11,9
1036         addze   12,12
1038         lwz     6,12(4)
1039         lwz     7,12(5)
1040         mullw   8,6,7
1041         mulhwu  9,6,7
1042         addc    10,10,8
1043         adde    11,11,9
1044         addze   12,12
1046         lwz     6,8(4)
1047         lwz     7,16(5)
1048         mullw   8,6,7
1049         mulhwu  9,6,7
1050         addc    10,10,8
1051         adde    11,11,9
1052         addze   12,12
1054         lwz     6,4(4)
1055         lwz     7,20(5)
1056         mullw   8,6,7
1057         mulhwu  9,6,7
1058         addc    10,10,8
1059         adde    11,11,9
1060         addze   12,12
1062         lwz     6,0(4)
1063         lwz     7,24(5)
1064         mullw   8,6,7
1065         mulhwu  9,6,7
1066         addc    10,10,8
1067         adde    11,11,9
1068         addze   12,12
1069         stw     10,24(3)
1071         lwz     7,28(5)
1072         mullw   8,6,7
1073         mulhwu  9,6,7
1074         addc    11,11,8
1075         adde    12,12,9
1076         addze   10,0
1078         lwz     6,4(4)
1079         lwz     7,24(5)
1080         mullw   8,6,7
1081         mulhwu  9,6,7
1082         addc    11,11,8
1083         adde    12,12,9
1084         addze   10,10
1086         lwz     6,8(4)
1087         lwz     7,20(5)
1088         mullw   8,6,7
1089         mulhwu  9,6,7
1090         addc    11,11,8
1091         adde    12,12,9
1092         addze   10,10
1094         lwz     6,12(4)
1095         lwz     7,16(5)
1096         mullw   8,6,7
1097         mulhwu  9,6,7
1098         addc    11,11,8
1099         adde    12,12,9
1100         addze   10,10
1102         lwz     6,16(4)
1103         lwz     7,12(5)
1104         mullw   8,6,7
1105         mulhwu  9,6,7
1106         addc    11,11,8
1107         adde    12,12,9
1108         addze   10,10
1110         lwz     6,20(4)
1111         lwz     7,8(5)
1112         mullw   8,6,7
1113         mulhwu  9,6,7
1114         addc    11,11,8
1115         adde    12,12,9
1116         addze   10,10
1118         lwz     6,24(4)
1119         lwz     7,4(5)
1120         mullw   8,6,7
1121         mulhwu  9,6,7
1122         addc    11,11,8
1123         adde    12,12,9
1124         addze   10,10
1126         lwz     6,28(4)
1127         lwz     7,0(5)
1128         mullw   8,6,7
1129         mulhwu  9,6,7
1130         addc    11,11,8
1131         adde    12,12,9
1132         addze   10,10
1133         stw     11,28(3)
1135         lwz     7,4(5)
1136         mullw   8,6,7
1137         mulhwu  9,6,7
1138         addc    12,12,8
1139         adde    10,10,9
1140         addze   11,0
1142         lwz     6,24(4)
1143         lwz     7,8(5)
1144         mullw   8,6,7
1145         mulhwu  9,6,7
1146         addc    12,12,8
1147         adde    10,10,9
1148         addze   11,11
1150         lwz     6,20(4)
1151         lwz     7,12(5)
1152         mullw   8,6,7
1153         mulhwu  9,6,7
1154         addc    12,12,8
1155         adde    10,10,9
1156         addze   11,11
1158         lwz     6,16(4)
1159         lwz     7,16(5)
1160         mullw   8,6,7
1161         mulhwu  9,6,7
1162         addc    12,12,8
1163         adde    10,10,9
1164         addze   11,11
1166         lwz     6,12(4)
1167         lwz     7,20(5)
1168         mullw   8,6,7
1169         mulhwu  9,6,7
1170         addc    12,12,8
1171         adde    10,10,9
1172         addze   11,11
1174         lwz     6,8(4)
1175         lwz     7,24(5)
1176         mullw   8,6,7
1177         mulhwu  9,6,7
1178         addc    12,12,8
1179         adde    10,10,9
1180         addze   11,11
1182         lwz     6,4(4)
1183         lwz     7,28(5)
1184         mullw   8,6,7
1185         mulhwu  9,6,7
1186         addc    12,12,8
1187         adde    10,10,9
1188         addze   11,11
1189         stw     12,32(3)
1191         lwz     6,8(4)
1192         mullw   8,6,7
1193         mulhwu  9,6,7
1194         addc    10,10,8
1195         adde    11,11,9
1196         addze   12,0
1198         lwz     6,12(4)
1199         lwz     7,24(5)
1200         mullw   8,6,7
1201         mulhwu  9,6,7
1202         addc    10,10,8
1203         adde    11,11,9
1204         addze   12,12
1206         lwz     6,16(4)
1207         lwz     7,20(5)
1208         mullw   8,6,7
1209         mulhwu  9,6,7
1210         addc    10,10,8
1211         adde    11,11,9
1212         addze   12,12
1214         lwz     6,20(4)
1215         lwz     7,16(5)
1216         mullw   8,6,7
1217         mulhwu  9,6,7
1218         addc    10,10,8
1219         adde    11,11,9
1220         addze   12,12
1222         lwz     6,24(4)
1223         lwz     7,12(5)
1224         mullw   8,6,7
1225         mulhwu  9,6,7
1226         addc    10,10,8
1227         adde    11,11,9
1228         addze   12,12
1230         lwz     6,28(4)
1231         lwz     7,8(5)
1232         mullw   8,6,7
1233         mulhwu  9,6,7
1234         addc    10,10,8
1235         adde    11,11,9
1236         addze   12,12
1237         stw     10,36(3)
1239         lwz     7,12(5)
1240         mullw   8,6,7
1241         mulhwu  9,6,7
1242         addc    11,11,8
1243         adde    12,12,9
1244         addze   10,0
1246         lwz     6,24(4)
1247         lwz     7,16(5)
1248         mullw   8,6,7
1249         mulhwu  9,6,7
1250         addc    11,11,8
1251         adde    12,12,9
1252         addze   10,10
1254         lwz     6,20(4)
1255         lwz     7,20(5)
1256         mullw   8,6,7
1257         mulhwu  9,6,7
1258         addc    11,11,8
1259         adde    12,12,9
1260         addze   10,10
1262         lwz     6,16(4)
1263         lwz     7,24(5)
1264         mullw   8,6,7
1265         mulhwu  9,6,7
1266         addc    11,11,8
1267         adde    12,12,9
1268         addze   10,10
1270         lwz     6,12(4)
1271         lwz     7,28(5)
1272         mullw   8,6,7
1273         mulhwu  9,6,7
1274         addc    11,11,8
1275         adde    12,12,9
1276         addze   10,10
1277         stw     11,40(3)
1279         lwz     6,16(4)
1280         mullw   8,6,7
1281         mulhwu  9,6,7
1282         addc    12,12,8
1283         adde    10,10,9
1284         addze   11,0
1286         lwz     6,20(4)
1287         lwz     7,24(5)
1288         mullw   8,6,7
1289         mulhwu  9,6,7
1290         addc    12,12,8
1291         adde    10,10,9
1292         addze   11,11
1294         lwz     6,24(4)
1295         lwz     7,20(5)
1296         mullw   8,6,7
1297         mulhwu  9,6,7
1298         addc    12,12,8
1299         adde    10,10,9
1300         addze   11,11
1302         lwz     6,28(4)
1303         lwz     7,16(5)
1304         mullw   8,6,7
1305         mulhwu  9,6,7
1306         addc    12,12,8
1307         adde    10,10,9
1308         addze   11,11
1309         stw     12,44(3)
1311         lwz     7,20(5)
1312         mullw   8,6,7
1313         mulhwu  9,6,7
1314         addc    10,10,8
1315         adde    11,11,9
1316         addze   12,0
1318         lwz     6,24(4)
1319         lwz     7,24(5)
1320         mullw   8,6,7
1321         mulhwu  9,6,7
1322         addc    10,10,8
1323         adde    11,11,9
1324         addze   12,12
1326         lwz     6,20(4)
1327         lwz     7,28(5)
1328         mullw   8,6,7
1329         mulhwu  9,6,7
1330         addc    10,10,8
1331         adde    11,11,9
1332         addze   12,12
1333         stw     10,48(3)
1335         lwz     6,24(4)
1336         mullw   8,6,7
1337         mulhwu  9,6,7
1338         addc    11,11,8
1339         adde    12,12,9
1340         addze   10,0
1342         lwz     6,28(4)
1343         lwz     7,24(5)
1344         mullw   8,6,7
1345         mulhwu  9,6,7
1346         addc    11,11,8
1347         adde    12,12,9
1348         addze   10,10
1349         stw     11,52(3)
1351         lwz     7,28(5)
1352         mullw   8,6,7
1353         mulhwu  9,6,7
1354         addc    12,12,8
1355         adde    10,10,9
1356         stw     12,56(3)
1357         stw     10,60(3)
1358         blr     
1359 .long   0
1360 .byte   0,12,0x14,0,0,0,3,0
1361 .long   0
1370 .align  4
1371 bn_sub_words:
1385         xor     0,0,0
1389         subfc.  7,0,6
1392         beq     .Lppcasm_sub_adios
1393         addi    4,4,-4
1394         addi    3,3,-4
1395         addi    5,5,-4
1396         mtctr   6
1397 .Lppcasm_sub_mainloop:
1398         lwzu    7,4(4)
1399         lwzu    8,4(5)
1400         subfe   6,8,7
1403         stwu    6,4(3)
1404         bdnz+   .Lppcasm_sub_mainloop
1405 .Lppcasm_sub_adios:
1406         subfze  3,0
1407         andi.   3,3,1
1408         blr     
1409 .long   0
1410 .byte   0,12,0x14,0,0,0,4,0
1411 .long   0
1420 .align  4
1421 bn_add_words:
1435         xor     0,0,0
1439         addic.  6,6,0
1440         beq     .Lppcasm_add_adios
1441         addi    4,4,-4
1442         addi    3,3,-4
1443         addi    5,5,-4
1444         mtctr   6
1445 .Lppcasm_add_mainloop:
1446         lwzu    7,4(4)
1447         lwzu    8,4(5)
1448         adde    8,7,8
1449         stwu    8,4(3)
1450         bdnz+   .Lppcasm_add_mainloop
1451 .Lppcasm_add_adios:
1452         addze   3,0
1453         blr     
1454 .long   0
1455 .byte   0,12,0x14,0,0,0,4,0
1456 .long   0
1465 .align  4
1466 bn_div_words:
1478         cmplwi  0,5,0
1479         bne     .Lppcasm_div1
1480         li      3,-1
1481         blr     
1482 .Lppcasm_div1:
1483         xor     0,0,0
1484         li      8,32
1485         cntlzw. 7,5
1486         beq     .Lppcasm_div2
1487         subf    8,7,8
1488         srw.    9,3,8
1489         tw      16,9,0
1490 .Lppcasm_div2:
1491         .long   0x7c032840
1492         blt     .Lppcasm_div3
1493         subf    3,5,3
1494 .Lppcasm_div3:
1495         cmpi    0,0,7,0
1496         beq     .Lppcasm_div4
1497         slw     3,3,7
1498         srw     8,4,8
1499         slw     5,5,7
1500         or      3,3,8
1501         slw     4,4,7
1502 .Lppcasm_div4:
1503         srwi    9,5,16
1506         li      6,2
1507         mtctr   6
1508 .Lppcasm_divouterloop:
1509         srwi    8,3,16
1510         srwi    11,4,16
1512         .long   0x7c084840
1513         bne     .Lppcasm_div5
1515         li      8,-1
1516         clrlwi  8,8,16
1517         b       .Lppcasm_div6
1518 .Lppcasm_div5:
1519         divwu   8,3,9
1520 .Lppcasm_div6:
1521         mullw   12,9,8
1522         clrlwi  10,5,16
1523         mullw   6,8,10
1525 .Lppcasm_divinnerloop:
1526         subf    10,12,3
1527         srwi    7,10,16
1528         addic.  7,7,0
1532         slwi    7,10,16
1533         or      7,7,11
1534         .long   0x7c863840
1535         bne     .Lppcasm_divinnerexit
1536         ble     1,.Lppcasm_divinnerexit
1537         addi    8,8,-1
1538         subf    12,9,12
1539         clrlwi  10,5,16
1540         subf    6,10,6
1541         b       .Lppcasm_divinnerloop
1542 .Lppcasm_divinnerexit:
1543         srwi    10,6,16
1544         slwi    11,6,16
1545         .long   0x7c845840
1546         add     12,12,10
1547         bge     1,.Lppcasm_div7
1548         addi    12,12,1
1549 .Lppcasm_div7:
1550         subf    11,11,4
1551         .long   0x7c836040
1552         bge     1,.Lppcasm_div8
1553         addi    8,8,-1
1554         add     3,5,3
1555 .Lppcasm_div8:
1556         subf    12,12,3
1557         slwi    4,11,16
1561         insrwi  11,12,16,16
1562         rotlwi  3,11,16
1563         bdz     .Lppcasm_div9
1564         slwi    0,8,16
1565         b       .Lppcasm_divouterloop
1566 .Lppcasm_div9:
1567         or      3,8,0
1568         blr     
1569 .long   0
1570 .byte   0,12,0x14,0,0,0,3,0
1571 .long   0
1579 .align  4
1580 bn_sqr_words:
1595         addic.  5,5,0
1596         beq     .Lppcasm_sqr_adios
1597         addi    4,4,-4
1598         addi    3,3,-4
1599         mtctr   5
1600 .Lppcasm_sqr_mainloop:
1602         lwzu    6,4(4)
1603         mullw   7,6,6
1604         mulhwu  8,6,6
1605         stwu    7,4(3)
1606         stwu    8,4(3)
1607         bdnz+   .Lppcasm_sqr_mainloop
1608 .Lppcasm_sqr_adios:
1609         blr     
1610 .long   0
1611 .byte   0,12,0x14,0,0,0,3,0
1612 .long   0
1621 .align  4
1622 bn_mul_words:
1630         xor     0,0,0
1631         xor     12,12,12
1632         rlwinm. 7,5,30,2,31
1633         beq     .Lppcasm_mw_REM
1634         mtctr   7
1635 .Lppcasm_mw_LOOP:
1637         lwz     8,0(4)
1638         mullw   9,6,8
1639         mulhwu  10,6,8
1640         addc    9,9,12
1645         stw     9,0(3)
1647         lwz     8,4(4)
1648         mullw   11,6,8
1649         mulhwu  12,6,8
1650         adde    11,11,10
1652         stw     11,4(3)
1654         lwz     8,8(4)
1655         mullw   9,6,8
1656         mulhwu  10,6,8
1657         adde    9,9,12
1659         stw     9,8(3)
1661         lwz     8,12(4)
1662         mullw   11,6,8
1663         mulhwu  12,6,8
1664         adde    11,11,10
1665         addze   12,12
1667         stw     11,12(3)
1669         addi    3,3,16
1670         addi    4,4,16
1671         bdnz+   .Lppcasm_mw_LOOP
1673 .Lppcasm_mw_REM:
1674         andi.   5,5,0x3
1675         beq     .Lppcasm_mw_OVER
1677         lwz     8,0(4)
1678         mullw   9,6,8
1679         mulhwu  10,6,8
1680         addc    9,9,12
1681         addze   10,10
1682         stw     9,0(3)
1683         addi    12,10,0
1685         addi    5,5,-1
1686         cmpli   0,0,5,0
1687         beq     .Lppcasm_mw_OVER
1691         lwz     8,4(4)
1692         mullw   9,6,8
1693         mulhwu  10,6,8
1694         addc    9,9,12
1695         addze   10,10
1696         stw     9,4(3)
1697         addi    12,10,0
1699         addi    5,5,-1
1700         cmpli   0,0,5,0
1701         beq     .Lppcasm_mw_OVER
1704         lwz     8,8(4)
1705         mullw   9,6,8
1706         mulhwu  10,6,8
1707         addc    9,9,12
1708         addze   10,10
1709         stw     9,8(3)
1710         addi    12,10,0
1712 .Lppcasm_mw_OVER:
1713         addi    3,12,0
1714         blr     
1715 .long   0
1716 .byte   0,12,0x14,0,0,0,4,0
1717 .long   0
1726 .align  4
1727 bn_mul_add_words:
1738         xor     0,0,0
1739         xor     12,12,12
1740         rlwinm. 7,5,30,2,31
1741         beq     .Lppcasm_maw_leftover
1742         mtctr   7
1743 .Lppcasm_maw_mainloop:
1745         lwz     8,0(4)
1746         lwz     11,0(3)
1747         mullw   9,6,8
1748         mulhwu  10,6,8
1749         addc    9,9,12
1750         addze   10,10
1751         addc    9,9,11
1758         stw     9,0(3)
1761         lwz     8,4(4)
1762         lwz     9,4(3)
1763         mullw   11,6,8
1764         mulhwu  12,6,8
1765         adde    11,11,10
1766         addze   12,12
1767         addc    11,11,9
1769         stw     11,4(3)
1772         lwz     8,8(4)
1773         mullw   9,6,8
1774         lwz     11,8(3)
1775         mulhwu  10,6,8
1776         adde    9,9,12
1777         addze   10,10
1778         addc    9,9,11
1780         stw     9,8(3)
1783         lwz     8,12(4)
1784         mullw   11,6,8
1785         lwz     9,12(3)
1786         mulhwu  12,6,8
1787         adde    11,11,10
1788         addze   12,12
1789         addc    11,11,9
1790         addze   12,12
1791         stw     11,12(3)
1792         addi    3,3,16
1793         addi    4,4,16
1794         bdnz+   .Lppcasm_maw_mainloop
1796 .Lppcasm_maw_leftover:
1797         andi.   5,5,0x3
1798         beq     .Lppcasm_maw_adios
1799         addi    3,3,-4
1800         addi    4,4,-4
1802         mtctr   5
1803         lwzu    8,4(4)
1804         mullw   9,6,8
1805         mulhwu  10,6,8
1806         lwzu    11,4(3)
1807         addc    9,9,11
1808         addze   10,10
1809         addc    9,9,12
1810         addze   12,10
1811         stw     9,0(3)
1813         bdz     .Lppcasm_maw_adios
1815         lwzu    8,4(4)
1816         mullw   9,6,8
1817         mulhwu  10,6,8
1818         lwzu    11,4(3)
1819         addc    9,9,11
1820         addze   10,10
1821         addc    9,9,12
1822         addze   12,10
1823         stw     9,0(3)
1825         bdz     .Lppcasm_maw_adios
1827         lwzu    8,4(4)
1828         mullw   9,6,8
1829         mulhwu  10,6,8
1830         lwzu    11,4(3)
1831         addc    9,9,11
1832         addze   10,10
1833         addc    9,9,12
1834         addze   12,10
1835         stw     9,0(3)
1837 .Lppcasm_maw_adios:
1838         addi    3,12,0
1839         blr     
1840 .long   0
1841 .byte   0,12,0x14,0,0,0,4,0
1842 .long   0
1843 .align  4