• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.machine	"any"
2.csect	.text[PR],7
3
4.globl	.bn_mul_mont_int
5.align	5
6.bn_mul_mont_int:
7	mr	9,3
8	li	3,0
9	slwi	8,8,3
10	li	12,-4096
11	addi	3,8,352
12	subf	3,3,1
13	and	3,3,12
14	subf	3,1,3
15	mr	12,1
16	srwi	8,8,3
17	stdux	1,1,3
18
19	std	20,-96(12)
20	std	21,-88(12)
21	std	22,-80(12)
22	std	23,-72(12)
23	std	24,-64(12)
24	std	25,-56(12)
25	std	26,-48(12)
26	std	27,-40(12)
27	std	28,-32(12)
28	std	29,-24(12)
29	std	30,-16(12)
30	std	31,-8(12)
31
32	ld	7,0(7)
33	addi	8,8,-2
34
35	ld	23,0(5)
36	ld	10,0(4)
37	addi	22,1,64
38	mulld	25,10,23
39	mulhdu	26,10,23
40
41	ld	10,8(4)
42	ld	11,0(6)
43
44	mulld	24,25,7
45
46	mulld	29,10,23
47	mulhdu	30,10,23
48
49	mulld	27,11,24
50	mulhdu	28,11,24
51	ld	11,8(6)
52	addc	27,27,25
53	addze	28,28
54
55	mulld	31,11,24
56	mulhdu	0,11,24
57
58	mtctr	8
59	li	21,16
60.align	4
61L1st:
62	ldx	10,4,21
63	addc	25,29,26
64	ldx	11,6,21
65	addze	26,30
66	mulld	29,10,23
67	addc	27,31,28
68	mulhdu	30,10,23
69	addze	28,0
70	mulld	31,11,24
71	addc	27,27,25
72	mulhdu	0,11,24
73	addze	28,28
74	std	27,0(22)
75
76	addi	21,21,8
77	addi	22,22,8
78	bc	16,0,L1st
79
80	addc	25,29,26
81	addze	26,30
82
83	addc	27,31,28
84	addze	28,0
85	addc	27,27,25
86	addze	28,28
87	std	27,0(22)
88
89	li	3,0
90	addc	28,28,26
91	addze	3,3
92	std	28,8(22)
93
94	li	20,8
95.align	4
96Louter:
97	ldx	23,5,20
98	ld	10,0(4)
99	addi	22,1,64
100	ld	12,64(1)
101	mulld	25,10,23
102	mulhdu	26,10,23
103	ld	10,8(4)
104	ld	11,0(6)
105	addc	25,25,12
106	mulld	29,10,23
107	addze	26,26
108	mulld	24,25,7
109	mulhdu	30,10,23
110	mulld	27,11,24
111	mulhdu	28,11,24
112	ld	11,8(6)
113	addc	27,27,25
114	mulld	31,11,24
115	addze	28,28
116	mulhdu	0,11,24
117
118	mtctr	8
119	li	21,16
120.align	4
121Linner:
122	ldx	10,4,21
123	addc	25,29,26
124	ld	12,8(22)
125	addze	26,30
126	ldx	11,6,21
127	addc	27,31,28
128	mulld	29,10,23
129	addze	28,0
130	mulhdu	30,10,23
131	addc	25,25,12
132	mulld	31,11,24
133	addze	26,26
134	mulhdu	0,11,24
135	addc	27,27,25
136	addi	21,21,8
137	addze	28,28
138	std	27,0(22)
139	addi	22,22,8
140	bc	16,0,Linner
141
142	ld	12,8(22)
143	addc	25,29,26
144	addze	26,30
145	addc	25,25,12
146	addze	26,26
147
148	addc	27,31,28
149	addze	28,0
150	addc	27,27,25
151	addze	28,28
152	std	27,0(22)
153
154	addic	3,3,-1
155	li	3,0
156	adde	28,28,26
157	addze	3,3
158	std	28,8(22)
159
160	slwi	12,8,3
161	cmpld	20,12
162	addi	20,20,8
163	ble	Louter
164
165	addi	8,8,2
166	subfc	21,21,21
167	addi	22,1,64
168	mtctr	8
169
170.align	4
171Lsub:	ldx	12,22,21
172	ldx	11,6,21
173	subfe	10,11,12
174	stdx	10,9,21
175	addi	21,21,8
176	bc	16,0,Lsub
177
178	li	21,0
179	mtctr	8
180	subfe	3,21,3
181
182.align	4
183Lcopy:
184	ldx	12,22,21
185	ldx	10,9,21
186	and	12,12,3
187	andc	10,10,3
188	stdx	21,22,21
189	or	10,10,12
190	stdx	10,9,21
191	addi	21,21,8
192	bc	16,0,Lcopy
193
194	ld	12,0(1)
195	li	3,1
196	ld	20,-96(12)
197	ld	21,-88(12)
198	ld	22,-80(12)
199	ld	23,-72(12)
200	ld	24,-64(12)
201	ld	25,-56(12)
202	ld	26,-48(12)
203	ld	27,-40(12)
204	ld	28,-32(12)
205	ld	29,-24(12)
206	ld	30,-16(12)
207	ld	31,-8(12)
208	mr	1,12
209	blr
210.long	0
211.byte	0,12,4,0,0x80,12,6,0
212.long	0
213
214.globl	.bn_mul4x_mont_int
215.align	5
216.bn_mul4x_mont_int:
217	andi.	0,8,7
218	bne	Lmul4x_do
219	cmpld	4,5
220	bne	Lmul4x_do
221	b	Lsqr8x_do
222Lmul4x_do:
223	slwi	8,8,3
224	mr	9,1
225	li	10,-32*8
226	sub	10,10,8
227	stdux	1,1,10
228
229	std	14,-8*18(9)
230	std	15,-8*17(9)
231	std	16,-8*16(9)
232	std	17,-8*15(9)
233	std	18,-8*14(9)
234	std	19,-8*13(9)
235	std	20,-8*12(9)
236	std	21,-8*11(9)
237	std	22,-8*10(9)
238	std	23,-8*9(9)
239	std	24,-8*8(9)
240	std	25,-8*7(9)
241	std	26,-8*6(9)
242	std	27,-8*5(9)
243	std	28,-8*4(9)
244	std	29,-8*3(9)
245	std	30,-8*2(9)
246	std	31,-8*1(9)
247
248	subi	4,4,8
249	subi	6,6,8
250	subi	3,3,8
251	ld	7,0(7)
252
253	add	14,5,8
254	add	30,4,8
255	subi	14,14,8*4
256
257	ld	27,8*0(5)
258	li	22,0
259	ld	9,8*1(4)
260	li	23,0
261	ld	10,8*2(4)
262	li	24,0
263	ld	11,8*3(4)
264	li	25,0
265	ldu	12,8*4(4)
266	ld	18,8*1(6)
267	ld	19,8*2(6)
268	ld	20,8*3(6)
269	ldu	21,8*4(6)
270
271	std	3,8*6(1)
272	std	14,8*7(1)
273	li	3,0
274	addic	29,1,8*7
275	li	31,0
276	li	0,0
277	b	Loop_mul4x_1st_reduction
278
279.align	5
280Loop_mul4x_1st_reduction:
281	mulld	14,9,27
282	addze	3,3
283	mulld	15,10,27
284	addi	31,31,8
285	mulld	16,11,27
286	andi.	31,31,8*4-1
287	mulld	17,12,27
288	addc	22,22,14
289	mulhdu	14,9,27
290	adde	23,23,15
291	mulhdu	15,10,27
292	adde	24,24,16
293	mulld	28,22,7
294	adde	25,25,17
295	mulhdu	16,11,27
296	addze	26,0
297	mulhdu	17,12,27
298	ldx	27,5,31
299	addc	23,23,14
300
301	stdu	28,8(29)
302	adde	24,24,15
303	mulld	15,19,28
304	adde	25,25,16
305	mulld	16,20,28
306	adde	26,26,17
307	mulld	17,21,28
308
309
310
311
312
313
314
315
316
317
318	addic	22,22,-1
319	mulhdu	14,18,28
320	adde	22,23,15
321	mulhdu	15,19,28
322	adde	23,24,16
323	mulhdu	16,20,28
324	adde	24,25,17
325	mulhdu	17,21,28
326	adde	25,26,3
327	addze	3,0
328	addc	22,22,14
329	adde	23,23,15
330	adde	24,24,16
331	adde	25,25,17
332
333	bne	Loop_mul4x_1st_reduction
334
335	cmpld	30,4
336	beq	Lmul4x4_post_condition
337
338	ld	9,8*1(4)
339	ld	10,8*2(4)
340	ld	11,8*3(4)
341	ldu	12,8*4(4)
342	ld	28,8*8(1)
343	ld	18,8*1(6)
344	ld	19,8*2(6)
345	ld	20,8*3(6)
346	ldu	21,8*4(6)
347	b	Loop_mul4x_1st_tail
348
349.align	5
350Loop_mul4x_1st_tail:
351	mulld	14,9,27
352	addze	3,3
353	mulld	15,10,27
354	addi	31,31,8
355	mulld	16,11,27
356	andi.	31,31,8*4-1
357	mulld	17,12,27
358	addc	22,22,14
359	mulhdu	14,9,27
360	adde	23,23,15
361	mulhdu	15,10,27
362	adde	24,24,16
363	mulhdu	16,11,27
364	adde	25,25,17
365	mulhdu	17,12,27
366	addze	26,0
367	ldx	27,5,31
368	addc	23,23,14
369	mulld	14,18,28
370	adde	24,24,15
371	mulld	15,19,28
372	adde	25,25,16
373	mulld	16,20,28
374	adde	26,26,17
375	mulld	17,21,28
376	addc	22,22,14
377	mulhdu	14,18,28
378	adde	23,23,15
379	mulhdu	15,19,28
380	adde	24,24,16
381	mulhdu	16,20,28
382	adde	25,25,17
383	adde	26,26,3
384	mulhdu	17,21,28
385	addze	3,0
386	addi	28,1,8*8
387	ldx	28,28,31
388	stdu	22,8(29)
389	addc	22,23,14
390	adde	23,24,15
391	adde	24,25,16
392	adde	25,26,17
393
394	bne	Loop_mul4x_1st_tail
395
396	sub	15,30,8
397	cmpld	30,4
398	beq	Lmul4x_proceed
399
400	ld	9,8*1(4)
401	ld	10,8*2(4)
402	ld	11,8*3(4)
403	ldu	12,8*4(4)
404	ld	18,8*1(6)
405	ld	19,8*2(6)
406	ld	20,8*3(6)
407	ldu	21,8*4(6)
408	b	Loop_mul4x_1st_tail
409
410.align	5
411Lmul4x_proceed:
412	ldu	27,8*4(5)
413	addze	3,3
414	ld	9,8*1(15)
415	ld	10,8*2(15)
416	ld	11,8*3(15)
417	ld	12,8*4(15)
418	addi	4,15,8*4
419	sub	6,6,8
420
421	std	22,8*1(29)
422	std	23,8*2(29)
423	std	24,8*3(29)
424	std	25,8*4(29)
425	std	3,8*5(29)
426	ld	22,8*12(1)
427	ld	23,8*13(1)
428	ld	24,8*14(1)
429	ld	25,8*15(1)
430
431	ld	18,8*1(6)
432	ld	19,8*2(6)
433	ld	20,8*3(6)
434	ldu	21,8*4(6)
435	addic	29,1,8*7
436	li	3,0
437	b	Loop_mul4x_reduction
438
439.align	5
440Loop_mul4x_reduction:
441	mulld	14,9,27
442	addze	3,3
443	mulld	15,10,27
444	addi	31,31,8
445	mulld	16,11,27
446	andi.	31,31,8*4-1
447	mulld	17,12,27
448	addc	22,22,14
449	mulhdu	14,9,27
450	adde	23,23,15
451	mulhdu	15,10,27
452	adde	24,24,16
453	mulld	28,22,7
454	adde	25,25,17
455	mulhdu	16,11,27
456	addze	26,0
457	mulhdu	17,12,27
458	ldx	27,5,31
459	addc	23,23,14
460
461	stdu	28,8(29)
462	adde	24,24,15
463	mulld	15,19,28
464	adde	25,25,16
465	mulld	16,20,28
466	adde	26,26,17
467	mulld	17,21,28
468
469	addic	22,22,-1
470	mulhdu	14,18,28
471	adde	22,23,15
472	mulhdu	15,19,28
473	adde	23,24,16
474	mulhdu	16,20,28
475	adde	24,25,17
476	mulhdu	17,21,28
477	adde	25,26,3
478	addze	3,0
479	addc	22,22,14
480	adde	23,23,15
481	adde	24,24,16
482	adde	25,25,17
483
484	bne	Loop_mul4x_reduction
485
486	ld	14,8*5(29)
487	addze	3,3
488	ld	15,8*6(29)
489	ld	16,8*7(29)
490	ld	17,8*8(29)
491	ld	9,8*1(4)
492	ld	10,8*2(4)
493	ld	11,8*3(4)
494	ldu	12,8*4(4)
495	addc	22,22,14
496	adde	23,23,15
497	adde	24,24,16
498	adde	25,25,17
499
500
501	ld	28,8*8(1)
502	ld	18,8*1(6)
503	ld	19,8*2(6)
504	ld	20,8*3(6)
505	ldu	21,8*4(6)
506	b	Loop_mul4x_tail
507
508.align	5
509Loop_mul4x_tail:
510	mulld	14,9,27
511	addze	3,3
512	mulld	15,10,27
513	addi	31,31,8
514	mulld	16,11,27
515	andi.	31,31,8*4-1
516	mulld	17,12,27
517	addc	22,22,14
518	mulhdu	14,9,27
519	adde	23,23,15
520	mulhdu	15,10,27
521	adde	24,24,16
522	mulhdu	16,11,27
523	adde	25,25,17
524	mulhdu	17,12,27
525	addze	26,0
526	ldx	27,5,31
527	addc	23,23,14
528	mulld	14,18,28
529	adde	24,24,15
530	mulld	15,19,28
531	adde	25,25,16
532	mulld	16,20,28
533	adde	26,26,17
534	mulld	17,21,28
535	addc	22,22,14
536	mulhdu	14,18,28
537	adde	23,23,15
538	mulhdu	15,19,28
539	adde	24,24,16
540	mulhdu	16,20,28
541	adde	25,25,17
542	mulhdu	17,21,28
543	adde	26,26,3
544	addi	28,1,8*8
545	ldx	28,28,31
546	addze	3,0
547	stdu	22,8(29)
548	addc	22,23,14
549	adde	23,24,15
550	adde	24,25,16
551	adde	25,26,17
552
553	bne	Loop_mul4x_tail
554
555	ld	14,8*5(29)
556	sub	15,6,8
557	addze	3,3
558	cmpld	30,4
559	beq	Loop_mul4x_break
560
561	ld	15,8*6(29)
562	ld	16,8*7(29)
563	ld	17,8*8(29)
564	ld	9,8*1(4)
565	ld	10,8*2(4)
566	ld	11,8*3(4)
567	ldu	12,8*4(4)
568	addc	22,22,14
569	adde	23,23,15
570	adde	24,24,16
571	adde	25,25,17
572
573
574	ld	18,8*1(6)
575	ld	19,8*2(6)
576	ld	20,8*3(6)
577	ldu	21,8*4(6)
578	b	Loop_mul4x_tail
579
580.align	5
581Loop_mul4x_break:
582	ld	16,8*6(1)
583	ld	17,8*7(1)
584	addc	9,22,14
585	ld	22,8*12(1)
586	addze	10,23
587	ld	23,8*13(1)
588	addze	11,24
589	ld	24,8*14(1)
590	addze	12,25
591	ld	25,8*15(1)
592	addze	3,3
593	std	9,8*1(29)
594	sub	4,30,8
595	std	10,8*2(29)
596	std	11,8*3(29)
597	std	12,8*4(29)
598	std	3,8*5(29)
599
600	ld	18,8*1(15)
601	ld	19,8*2(15)
602	ld	20,8*3(15)
603	ld	21,8*4(15)
604	addi	6,15,8*4
605	cmpld	5,17
606	beq	Lmul4x_post
607
608	ldu	27,8*4(5)
609	ld	9,8*1(4)
610	ld	10,8*2(4)
611	ld	11,8*3(4)
612	ldu	12,8*4(4)
613	li	3,0
614	addic	29,1,8*7
615	b	Loop_mul4x_reduction
616
617.align	5
618Lmul4x_post:
619
620
621
622
623	srwi	31,8,5
624	mr	5,16
625	subi	31,31,1
626	mr	30,16
627	subfc	14,18,22
628	addi	29,1,8*15
629	subfe	15,19,23
630
631	mtctr	31
632Lmul4x_sub:
633	ld	18,8*1(6)
634	ld	22,8*1(29)
635	subfe	16,20,24
636	ld	19,8*2(6)
637	ld	23,8*2(29)
638	subfe	17,21,25
639	ld	20,8*3(6)
640	ld	24,8*3(29)
641	ldu	21,8*4(6)
642	ldu	25,8*4(29)
643	std	14,8*1(5)
644	std	15,8*2(5)
645	subfe	14,18,22
646	std	16,8*3(5)
647	stdu	17,8*4(5)
648	subfe	15,19,23
649	bc	16,0,Lmul4x_sub
650
651	ld	9,8*1(30)
652	std	14,8*1(5)
653	ld	14,8*12(1)
654	subfe	16,20,24
655	ld	10,8*2(30)
656	std	15,8*2(5)
657	ld	15,8*13(1)
658	subfe	17,21,25
659	subfe	3,0,3
660	addi	29,1,8*12
661	ld	11,8*3(30)
662	std	16,8*3(5)
663	ld	16,8*14(1)
664	ld	12,8*4(30)
665	std	17,8*4(5)
666	ld	17,8*15(1)
667
668	mtctr	31
669Lmul4x_cond_copy:
670	and	14,14,3
671	andc	9,9,3
672	std	0,8*0(29)
673	and	15,15,3
674	andc	10,10,3
675	std	0,8*1(29)
676	and	16,16,3
677	andc	11,11,3
678	std	0,8*2(29)
679	and	17,17,3
680	andc	12,12,3
681	std	0,8*3(29)
682	or	22,14,9
683	ld	9,8*5(30)
684	ld	14,8*4(29)
685	or	23,15,10
686	ld	10,8*6(30)
687	ld	15,8*5(29)
688	or	24,16,11
689	ld	11,8*7(30)
690	ld	16,8*6(29)
691	or	25,17,12
692	ld	12,8*8(30)
693	ld	17,8*7(29)
694	addi	29,29,8*4
695	std	22,8*1(30)
696	std	23,8*2(30)
697	std	24,8*3(30)
698	stdu	25,8*4(30)
699	bc	16,0,Lmul4x_cond_copy
700
701	ld	5,0(1)
702	and	14,14,3
703	andc	9,9,3
704	std	0,8*0(29)
705	and	15,15,3
706	andc	10,10,3
707	std	0,8*1(29)
708	and	16,16,3
709	andc	11,11,3
710	std	0,8*2(29)
711	and	17,17,3
712	andc	12,12,3
713	std	0,8*3(29)
714	or	22,14,9
715	or	23,15,10
716	std	0,8*4(29)
717	or	24,16,11
718	or	25,17,12
719	std	22,8*1(30)
720	std	23,8*2(30)
721	std	24,8*3(30)
722	std	25,8*4(30)
723
724	b	Lmul4x_done
725
726.align	4
727Lmul4x4_post_condition:
728	ld	4,8*6(1)
729	ld	5,0(1)
730	addze	3,3
731
732	subfc	9,18,22
733	subfe	10,19,23
734	subfe	11,20,24
735	subfe	12,21,25
736	subfe	3,0,3
737
738	and	18,18,3
739	and	19,19,3
740	addc	9,9,18
741	and	20,20,3
742	adde	10,10,19
743	and	21,21,3
744	adde	11,11,20
745	adde	12,12,21
746
747	std	9,8*1(4)
748	std	10,8*2(4)
749	std	11,8*3(4)
750	std	12,8*4(4)
751
752Lmul4x_done:
753	std	0,8*8(1)
754	std	0,8*9(1)
755	std	0,8*10(1)
756	std	0,8*11(1)
757	li	3,1
758	ld	14,-8*18(5)
759	ld	15,-8*17(5)
760	ld	16,-8*16(5)
761	ld	17,-8*15(5)
762	ld	18,-8*14(5)
763	ld	19,-8*13(5)
764	ld	20,-8*12(5)
765	ld	21,-8*11(5)
766	ld	22,-8*10(5)
767	ld	23,-8*9(5)
768	ld	24,-8*8(5)
769	ld	25,-8*7(5)
770	ld	26,-8*6(5)
771	ld	27,-8*5(5)
772	ld	28,-8*4(5)
773	ld	29,-8*3(5)
774	ld	30,-8*2(5)
775	ld	31,-8*1(5)
776	mr	1,5
777	blr
778.long	0
779.byte	0,12,4,0x20,0x80,18,6,0
780.long	0
781
782.align	5
783__bn_sqr8x_mont:
784Lsqr8x_do:
785	mr	9,1
786	slwi	10,8,4
787	li	11,-32*8
788	sub	10,11,10
789	slwi	8,8,3
790	stdux	1,1,10
791
792	std	14,-8*18(9)
793	std	15,-8*17(9)
794	std	16,-8*16(9)
795	std	17,-8*15(9)
796	std	18,-8*14(9)
797	std	19,-8*13(9)
798	std	20,-8*12(9)
799	std	21,-8*11(9)
800	std	22,-8*10(9)
801	std	23,-8*9(9)
802	std	24,-8*8(9)
803	std	25,-8*7(9)
804	std	26,-8*6(9)
805	std	27,-8*5(9)
806	std	28,-8*4(9)
807	std	29,-8*3(9)
808	std	30,-8*2(9)
809	std	31,-8*1(9)
810
811	subi	4,4,8
812	subi	18,6,8
813	subi	3,3,8
814	ld	7,0(7)
815	li	0,0
816
817	add	6,4,8
818	ld	9,8*1(4)
819
820	ld	10,8*2(4)
821	li	23,0
822	ld	11,8*3(4)
823	li	24,0
824	ld	12,8*4(4)
825	li	25,0
826	ld	14,8*5(4)
827	li	26,0
828	ld	15,8*6(4)
829	li	27,0
830	ld	16,8*7(4)
831	li	28,0
832	ldu	17,8*8(4)
833	li	29,0
834
835	addi	5,1,8*11
836	subic.	30,8,8*8
837	b	Lsqr8x_zero_start
838
839.align	5
840Lsqr8x_zero:
841	subic.	30,30,8*8
842	std	0,8*1(5)
843	std	0,8*2(5)
844	std	0,8*3(5)
845	std	0,8*4(5)
846	std	0,8*5(5)
847	std	0,8*6(5)
848	std	0,8*7(5)
849	std	0,8*8(5)
850Lsqr8x_zero_start:
851	std	0,8*9(5)
852	std	0,8*10(5)
853	std	0,8*11(5)
854	std	0,8*12(5)
855	std	0,8*13(5)
856	std	0,8*14(5)
857	std	0,8*15(5)
858	stdu	0,8*16(5)
859	bne	Lsqr8x_zero
860
861	std	3,8*6(1)
862	std	18,8*7(1)
863	std	7,8*8(1)
864	std	5,8*9(1)
865	std	0,8*10(1)
866	addi	5,1,8*11
867
868
869.align	5
870Lsqr8x_outer_loop:
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900	mulld	18,10,9
901	mulld	19,11,9
902	mulld	20,12,9
903	mulld	21,14,9
904	addc	23,23,18
905	mulld	18,15,9
906	adde	24,24,19
907	mulld	19,16,9
908	adde	25,25,20
909	mulld	20,17,9
910	adde	26,26,21
911	mulhdu	21,10,9
912	adde	27,27,18
913	mulhdu	18,11,9
914	adde	28,28,19
915	mulhdu	19,12,9
916	adde	29,29,20
917	mulhdu	20,14,9
918	std	22,8*1(5)
919	addze	22,0
920	std	23,8*2(5)
921	addc	24,24,21
922	mulhdu	21,15,9
923	adde	25,25,18
924	mulhdu	18,16,9
925	adde	26,26,19
926	mulhdu	19,17,9
927	adde	27,27,20
928	mulld	20,11,10
929	adde	28,28,21
930	mulld	21,12,10
931	adde	29,29,18
932	mulld	18,14,10
933	adde	22,22,19
934
935	mulld	19,15,10
936	addc	25,25,20
937	mulld	20,16,10
938	adde	26,26,21
939	mulld	21,17,10
940	adde	27,27,18
941	mulhdu	18,11,10
942	adde	28,28,19
943	mulhdu	19,12,10
944	adde	29,29,20
945	mulhdu	20,14,10
946	adde	22,22,21
947	mulhdu	21,15,10
948	std	24,8*3(5)
949	addze	23,0
950	std	25,8*4(5)
951	addc	26,26,18
952	mulhdu	18,16,10
953	adde	27,27,19
954	mulhdu	19,17,10
955	adde	28,28,20
956	mulld	20,12,11
957	adde	29,29,21
958	mulld	21,14,11
959	adde	22,22,18
960	mulld	18,15,11
961	adde	23,23,19
962
963	mulld	19,16,11
964	addc	27,27,20
965	mulld	20,17,11
966	adde	28,28,21
967	mulhdu	21,12,11
968	adde	29,29,18
969	mulhdu	18,14,11
970	adde	22,22,19
971	mulhdu	19,15,11
972	adde	23,23,20
973	mulhdu	20,16,11
974	std	26,8*5(5)
975	addze	24,0
976	std	27,8*6(5)
977	addc	28,28,21
978	mulhdu	21,17,11
979	adde	29,29,18
980	mulld	18,14,12
981	adde	22,22,19
982	mulld	19,15,12
983	adde	23,23,20
984	mulld	20,16,12
985	adde	24,24,21
986
987	mulld	21,17,12
988	addc	29,29,18
989	mulhdu	18,14,12
990	adde	22,22,19
991	mulhdu	19,15,12
992	adde	23,23,20
993	mulhdu	20,16,12
994	adde	24,24,21
995	mulhdu	21,17,12
996	std	28,8*7(5)
997	addze	25,0
998	stdu	29,8*8(5)
999	addc	22,22,18
1000	mulld	18,15,14
1001	adde	23,23,19
1002	mulld	19,16,14
1003	adde	24,24,20
1004	mulld	20,17,14
1005	adde	25,25,21
1006
1007	mulhdu	21,15,14
1008	addc	23,23,18
1009	mulhdu	18,16,14
1010	adde	24,24,19
1011	mulhdu	19,17,14
1012	adde	25,25,20
1013	mulld	20,16,15
1014	addze	26,0
1015	addc	24,24,21
1016	mulld	21,17,15
1017	adde	25,25,18
1018	mulhdu	18,16,15
1019	adde	26,26,19
1020
1021	mulhdu	19,17,15
1022	addc	25,25,20
1023	mulld	20,17,16
1024	adde	26,26,21
1025	mulhdu	21,17,16
1026	addze	27,0
1027	addc	26,26,18
1028	cmpld	6,4
1029	adde	27,27,19
1030
1031	addc	27,27,20
1032	sub	18,6,8
1033	addze	28,0
1034	add	28,28,21
1035
1036	beq	Lsqr8x_outer_break
1037
1038	mr	7,9
1039	ld	9,8*1(5)
1040	ld	10,8*2(5)
1041	ld	11,8*3(5)
1042	ld	12,8*4(5)
1043	ld	14,8*5(5)
1044	ld	15,8*6(5)
1045	ld	16,8*7(5)
1046	ld	17,8*8(5)
1047	addc	22,22,9
1048	ld	9,8*1(4)
1049	adde	23,23,10
1050	ld	10,8*2(4)
1051	adde	24,24,11
1052	ld	11,8*3(4)
1053	adde	25,25,12
1054	ld	12,8*4(4)
1055	adde	26,26,14
1056	ld	14,8*5(4)
1057	adde	27,27,15
1058	ld	15,8*6(4)
1059	adde	28,28,16
1060	ld	16,8*7(4)
1061	subi	3,4,8*7
1062	addze	29,17
1063	ldu	17,8*8(4)
1064
1065	li	30,0
1066	b	Lsqr8x_mul
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090.align	5
1091Lsqr8x_mul:
1092	mulld	18,9,7
1093	addze	31,0
1094	mulld	19,10,7
1095	addi	30,30,8
1096	mulld	20,11,7
1097	andi.	30,30,8*8-1
1098	mulld	21,12,7
1099	addc	22,22,18
1100	mulld	18,14,7
1101	adde	23,23,19
1102	mulld	19,15,7
1103	adde	24,24,20
1104	mulld	20,16,7
1105	adde	25,25,21
1106	mulld	21,17,7
1107	adde	26,26,18
1108	mulhdu	18,9,7
1109	adde	27,27,19
1110	mulhdu	19,10,7
1111	adde	28,28,20
1112	mulhdu	20,11,7
1113	adde	29,29,21
1114	mulhdu	21,12,7
1115	addze	31,31
1116	stdu	22,8(5)
1117	addc	22,23,18
1118	mulhdu	18,14,7
1119	adde	23,24,19
1120	mulhdu	19,15,7
1121	adde	24,25,20
1122	mulhdu	20,16,7
1123	adde	25,26,21
1124	mulhdu	21,17,7
1125	ldx	7,3,30
1126	adde	26,27,18
1127	adde	27,28,19
1128	adde	28,29,20
1129	adde	29,31,21
1130
1131	bne	Lsqr8x_mul
1132
1133
1134	cmpld	4,6
1135	beq	Lsqr8x_break
1136
1137	ld	9,8*1(5)
1138	ld	10,8*2(5)
1139	ld	11,8*3(5)
1140	ld	12,8*4(5)
1141	ld	14,8*5(5)
1142	ld	15,8*6(5)
1143	ld	16,8*7(5)
1144	ld	17,8*8(5)
1145	addc	22,22,9
1146	ld	9,8*1(4)
1147	adde	23,23,10
1148	ld	10,8*2(4)
1149	adde	24,24,11
1150	ld	11,8*3(4)
1151	adde	25,25,12
1152	ld	12,8*4(4)
1153	adde	26,26,14
1154	ld	14,8*5(4)
1155	adde	27,27,15
1156	ld	15,8*6(4)
1157	adde	28,28,16
1158	ld	16,8*7(4)
1159	adde	29,29,17
1160	ldu	17,8*8(4)
1161
1162	b	Lsqr8x_mul
1163
1164.align	5
1165Lsqr8x_break:
1166	ld	9,8*8(3)
1167	addi	4,3,8*15
1168	ld	10,8*9(3)
1169	sub.	18,6,4
1170	ld	11,8*10(3)
1171	sub	19,5,18
1172	ld	12,8*11(3)
1173	ld	14,8*12(3)
1174	ld	15,8*13(3)
1175	ld	16,8*14(3)
1176	ld	17,8*15(3)
1177	beq	Lsqr8x_outer_loop
1178
1179	std	22,8*1(5)
1180	ld	22,8*1(19)
1181	std	23,8*2(5)
1182	ld	23,8*2(19)
1183	std	24,8*3(5)
1184	ld	24,8*3(19)
1185	std	25,8*4(5)
1186	ld	25,8*4(19)
1187	std	26,8*5(5)
1188	ld	26,8*5(19)
1189	std	27,8*6(5)
1190	ld	27,8*6(19)
1191	std	28,8*7(5)
1192	ld	28,8*7(19)
1193	std	29,8*8(5)
1194	ld	29,8*8(19)
1195	mr	5,19
1196	b	Lsqr8x_outer_loop
1197
1198.align	5
1199Lsqr8x_outer_break:
1200
1201
1202	ld	10,8*1(18)
1203	ld	12,8*2(18)
1204	ld	15,8*3(18)
1205	ld	17,8*4(18)
1206	addi	4,18,8*4
1207
1208	ld	19,8*13(1)
1209	ld	20,8*14(1)
1210	ld	21,8*15(1)
1211	ld	18,8*16(1)
1212
1213	std	22,8*1(5)
1214	srwi	30,8,5
1215	std	23,8*2(5)
1216	subi	30,30,1
1217	std	24,8*3(5)
1218	std	25,8*4(5)
1219	std	26,8*5(5)
1220	std	27,8*6(5)
1221	std	28,8*7(5)
1222
1223	addi	5,1,8*11
1224	mulld	22,10,10
1225	mulhdu	10,10,10
1226	add	23,19,19
1227	srdi	19,19,64-1
1228	mulld	11,12,12
1229	mulhdu	12,12,12
1230	addc	23,23,10
1231	add	24,20,20
1232	srdi	20,20,64-1
1233	add	25,21,21
1234	srdi	21,21,64-1
1235	or	24,24,19
1236
1237	mtctr	30
1238Lsqr4x_shift_n_add:
1239	mulld	14,15,15
1240	mulhdu	15,15,15
1241	ld	19,8*6(5)
1242	ld	10,8*1(4)
1243	adde	24,24,11
1244	add	26,18,18
1245	srdi	18,18,64-1
1246	or	25,25,20
1247	ld	20,8*7(5)
1248	adde	25,25,12
1249	ld	12,8*2(4)
1250	add	27,19,19
1251	srdi	19,19,64-1
1252	or	26,26,21
1253	ld	21,8*8(5)
1254	mulld	16,17,17
1255	mulhdu	17,17,17
1256	adde	26,26,14
1257	add	28,20,20
1258	srdi	20,20,64-1
1259	or	27,27,18
1260	ld	18,8*9(5)
1261	adde	27,27,15
1262	ld	15,8*3(4)
1263	add	29,21,21
1264	srdi	21,21,64-1
1265	or	28,28,19
1266	ld	19,8*10(5)
1267	mulld	9,10,10
1268	mulhdu	10,10,10
1269	adde	28,28,16
1270	std	22,8*1(5)
1271	add	22,18,18
1272	srdi	18,18,64-1
1273	or	29,29,20
1274	ld	20,8*11(5)
1275	adde	29,29,17
1276	ldu	17,8*4(4)
1277	std	23,8*2(5)
1278	add	23,19,19
1279	srdi	19,19,64-1
1280	or	22,22,21
1281	ld	21,8*12(5)
1282	mulld	11,12,12
1283	mulhdu	12,12,12
1284	adde	22,22,9
1285	std	24,8*3(5)
1286	add	24,20,20
1287	srdi	20,20,64-1
1288	or	23,23,18
1289	ld	18,8*13(5)
1290	adde	23,23,10
1291	std	25,8*4(5)
1292	std	26,8*5(5)
1293	std	27,8*6(5)
1294	std	28,8*7(5)
1295	stdu	29,8*8(5)
1296	add	25,21,21
1297	srdi	21,21,64-1
1298	or	24,24,19
1299	bc	16,0,Lsqr4x_shift_n_add
1300	ld	4,8*7(1)
1301	ld	7,8*8(1)
1302
1303	mulld	14,15,15
1304	mulhdu	15,15,15
1305	std	22,8*1(5)
1306	ld	22,8*12(1)
1307	ld	19,8*6(5)
1308	adde	24,24,11
1309	add	26,18,18
1310	srdi	18,18,64-1
1311	or	25,25,20
1312	ld	20,8*7(5)
1313	adde	25,25,12
1314	add	27,19,19
1315	srdi	19,19,64-1
1316	or	26,26,21
1317	mulld	16,17,17
1318	mulhdu	17,17,17
1319	adde	26,26,14
1320	add	28,20,20
1321	srdi	20,20,64-1
1322	or	27,27,18
1323	std	23,8*2(5)
1324	ld	23,8*13(1)
1325	adde	27,27,15
1326	or	28,28,19
1327	ld	9,8*1(4)
1328	ld	10,8*2(4)
1329	adde	28,28,16
1330	ld	11,8*3(4)
1331	ld	12,8*4(4)
1332	adde	29,17,20
1333	ld	14,8*5(4)
1334	ld	15,8*6(4)
1335
1336
1337
1338	mulld	31,7,22
1339	li	30,8
1340	ld	16,8*7(4)
1341	add	6,4,8
1342	ldu	17,8*8(4)
1343	std	24,8*3(5)
1344	ld	24,8*14(1)
1345	std	25,8*4(5)
1346	ld	25,8*15(1)
1347	std	26,8*5(5)
1348	ld	26,8*16(1)
1349	std	27,8*6(5)
1350	ld	27,8*17(1)
1351	std	28,8*7(5)
1352	ld	28,8*18(1)
1353	std	29,8*8(5)
1354	ld	29,8*19(1)
1355	addi	5,1,8*11
1356	mtctr	30
1357	b	Lsqr8x_reduction
1358
1359.align	5
1360Lsqr8x_reduction:
1361
1362	mulld	19,10,31
1363	mulld	20,11,31
1364	stdu	31,8(5)
1365	mulld	21,12,31
1366
1367	addic	22,22,-1
1368	mulld	18,14,31
1369	adde	22,23,19
1370	mulld	19,15,31
1371	adde	23,24,20
1372	mulld	20,16,31
1373	adde	24,25,21
1374	mulld	21,17,31
1375	adde	25,26,18
1376	mulhdu	18,9,31
1377	adde	26,27,19
1378	mulhdu	19,10,31
1379	adde	27,28,20
1380	mulhdu	20,11,31
1381	adde	28,29,21
1382	mulhdu	21,12,31
1383	addze	29,0
1384	addc	22,22,18
1385	mulhdu	18,14,31
1386	adde	23,23,19
1387	mulhdu	19,15,31
1388	adde	24,24,20
1389	mulhdu	20,16,31
1390	adde	25,25,21
1391	mulhdu	21,17,31
1392	mulld	31,7,22
1393	adde	26,26,18
1394	adde	27,27,19
1395	adde	28,28,20
1396	adde	29,29,21
1397	bc	16,0,Lsqr8x_reduction
1398
1399	ld	18,8*1(5)
1400	ld	19,8*2(5)
1401	ld	20,8*3(5)
1402	ld	21,8*4(5)
1403	subi	3,5,8*7
1404	cmpld	6,4
1405	addc	22,22,18
1406	ld	18,8*5(5)
1407	adde	23,23,19
1408	ld	19,8*6(5)
1409	adde	24,24,20
1410	ld	20,8*7(5)
1411	adde	25,25,21
1412	ld	21,8*8(5)
1413	adde	26,26,18
1414	adde	27,27,19
1415	adde	28,28,20
1416	adde	29,29,21
1417
1418	beq	Lsqr8x8_post_condition
1419
1420	ld	7,8*0(3)
1421	ld	9,8*1(4)
1422	ld	10,8*2(4)
1423	ld	11,8*3(4)
1424	ld	12,8*4(4)
1425	ld	14,8*5(4)
1426	ld	15,8*6(4)
1427	ld	16,8*7(4)
1428	ldu	17,8*8(4)
1429	li	30,0
1430
1431.align	5
1432Lsqr8x_tail:
1433	mulld	18,9,7
1434	addze	31,0
1435	mulld	19,10,7
1436	addi	30,30,8
1437	mulld	20,11,7
1438	andi.	30,30,8*8-1
1439	mulld	21,12,7
1440	addc	22,22,18
1441	mulld	18,14,7
1442	adde	23,23,19
1443	mulld	19,15,7
1444	adde	24,24,20
1445	mulld	20,16,7
1446	adde	25,25,21
1447	mulld	21,17,7
1448	adde	26,26,18
1449	mulhdu	18,9,7
1450	adde	27,27,19
1451	mulhdu	19,10,7
1452	adde	28,28,20
1453	mulhdu	20,11,7
1454	adde	29,29,21
1455	mulhdu	21,12,7
1456	addze	31,31
1457	stdu	22,8(5)
1458	addc	22,23,18
1459	mulhdu	18,14,7
1460	adde	23,24,19
1461	mulhdu	19,15,7
1462	adde	24,25,20
1463	mulhdu	20,16,7
1464	adde	25,26,21
1465	mulhdu	21,17,7
1466	ldx	7,3,30
1467	adde	26,27,18
1468	adde	27,28,19
1469	adde	28,29,20
1470	adde	29,31,21
1471
1472	bne	Lsqr8x_tail
1473
1474
1475	ld	9,8*1(5)
1476	ld	31,8*10(1)
1477	cmpld	6,4
1478	ld	10,8*2(5)
1479	sub	20,6,8
1480	ld	11,8*3(5)
1481	ld	12,8*4(5)
1482	ld	14,8*5(5)
1483	ld	15,8*6(5)
1484	ld	16,8*7(5)
1485	ld	17,8*8(5)
1486	beq	Lsqr8x_tail_break
1487
1488	addc	22,22,9
1489	ld	9,8*1(4)
1490	adde	23,23,10
1491	ld	10,8*2(4)
1492	adde	24,24,11
1493	ld	11,8*3(4)
1494	adde	25,25,12
1495	ld	12,8*4(4)
1496	adde	26,26,14
1497	ld	14,8*5(4)
1498	adde	27,27,15
1499	ld	15,8*6(4)
1500	adde	28,28,16
1501	ld	16,8*7(4)
1502	adde	29,29,17
1503	ldu	17,8*8(4)
1504
1505	b	Lsqr8x_tail
1506
1507.align	5
1508Lsqr8x_tail_break:
1509	ld	7,8*8(1)
1510	ld	21,8*9(1)
1511	addi	30,5,8*8
1512
1513	addic	31,31,-1
1514	adde	18,22,9
1515	ld	22,8*8(3)
1516	ld	9,8*1(20)
1517	adde	19,23,10
1518	ld	23,8*9(3)
1519	ld	10,8*2(20)
1520	adde	24,24,11
1521	ld	11,8*3(20)
1522	adde	25,25,12
1523	ld	12,8*4(20)
1524	adde	26,26,14
1525	ld	14,8*5(20)
1526	adde	27,27,15
1527	ld	15,8*6(20)
1528	adde	28,28,16
1529	ld	16,8*7(20)
1530	adde	29,29,17
1531	ld	17,8*8(20)
1532	addi	4,20,8*8
1533	addze	20,0
1534	mulld	31,7,22
1535	std	18,8*1(5)
1536	cmpld	30,21
1537	std	19,8*2(5)
1538	li	30,8
1539	std	24,8*3(5)
1540	ld	24,8*10(3)
1541	std	25,8*4(5)
1542	ld	25,8*11(3)
1543	std	26,8*5(5)
1544	ld	26,8*12(3)
1545	std	27,8*6(5)
1546	ld	27,8*13(3)
1547	std	28,8*7(5)
1548	ld	28,8*14(3)
1549	std	29,8*8(5)
1550	ld	29,8*15(3)
1551	std	20,8*10(1)
1552	addi	5,3,8*7
1553	mtctr	30
1554	bne	Lsqr8x_reduction
1555
1556
1557
1558
1559
1560
1561	ld	3,8*6(1)
1562	srwi	30,8,6
1563	mr	7,5
1564	addi	5,5,8*8
1565	subi	30,30,1
1566	subfc	18,9,22
1567	subfe	19,10,23
1568	mr	31,20
1569	mr	6,3
1570
1571	mtctr	30
1572	b	Lsqr8x_sub
1573
1574.align	5
1575Lsqr8x_sub:
1576	ld	9,8*1(4)
1577	ld	22,8*1(5)
1578	ld	10,8*2(4)
1579	ld	23,8*2(5)
1580	subfe	20,11,24
1581	ld	11,8*3(4)
1582	ld	24,8*3(5)
1583	subfe	21,12,25
1584	ld	12,8*4(4)
1585	ld	25,8*4(5)
1586	std	18,8*1(3)
1587	subfe	18,14,26
1588	ld	14,8*5(4)
1589	ld	26,8*5(5)
1590	std	19,8*2(3)
1591	subfe	19,15,27
1592	ld	15,8*6(4)
1593	ld	27,8*6(5)
1594	std	20,8*3(3)
1595	subfe	20,16,28
1596	ld	16,8*7(4)
1597	ld	28,8*7(5)
1598	std	21,8*4(3)
1599	subfe	21,17,29
1600	ldu	17,8*8(4)
1601	ldu	29,8*8(5)
1602	std	18,8*5(3)
1603	subfe	18,9,22
1604	std	19,8*6(3)
1605	subfe	19,10,23
1606	std	20,8*7(3)
1607	stdu	21,8*8(3)
1608	bc	16,0,Lsqr8x_sub
1609
1610	srwi	30,8,5
1611	ld	9,8*1(6)
1612	ld	22,8*1(7)
1613	subi	30,30,1
1614	ld	10,8*2(6)
1615	ld	23,8*2(7)
1616	subfe	20,11,24
1617	ld	11,8*3(6)
1618	ld	24,8*3(7)
1619	subfe	21,12,25
1620	ld	12,8*4(6)
1621	ldu	25,8*4(7)
1622	std	18,8*1(3)
1623	subfe	18,14,26
1624	std	19,8*2(3)
1625	subfe	19,15,27
1626	std	20,8*3(3)
1627	subfe	20,16,28
1628	std	21,8*4(3)
1629	subfe	21,17,29
1630	std	18,8*5(3)
1631	subfe	31,0,31
1632	std	19,8*6(3)
1633	std	20,8*7(3)
1634	std	21,8*8(3)
1635
1636	addi	5,1,8*11
1637	mtctr	30
1638
1639Lsqr4x_cond_copy:
1640	andc	9,9,31
1641	std	0,-8*3(7)
1642	and	22,22,31
1643	std	0,-8*2(7)
1644	andc	10,10,31
1645	std	0,-8*1(7)
1646	and	23,23,31
1647	std	0,-8*0(7)
1648	andc	11,11,31
1649	std	0,8*1(5)
1650	and	24,24,31
1651	std	0,8*2(5)
1652	andc	12,12,31
1653	std	0,8*3(5)
1654	and	25,25,31
1655	stdu	0,8*4(5)
1656	or	18,9,22
1657	ld	9,8*5(6)
1658	ld	22,8*1(7)
1659	or	19,10,23
1660	ld	10,8*6(6)
1661	ld	23,8*2(7)
1662	or	20,11,24
1663	ld	11,8*7(6)
1664	ld	24,8*3(7)
1665	or	21,12,25
1666	ld	12,8*8(6)
1667	ldu	25,8*4(7)
1668	std	18,8*1(6)
1669	std	19,8*2(6)
1670	std	20,8*3(6)
1671	stdu	21,8*4(6)
1672	bc	16,0,Lsqr4x_cond_copy
1673
1674	ld	4,0(1)
1675	andc	9,9,31
1676	and	22,22,31
1677	andc	10,10,31
1678	and	23,23,31
1679	andc	11,11,31
1680	and	24,24,31
1681	andc	12,12,31
1682	and	25,25,31
1683	or	18,9,22
1684	or	19,10,23
1685	or	20,11,24
1686	or	21,12,25
1687	std	18,8*1(6)
1688	std	19,8*2(6)
1689	std	20,8*3(6)
1690	std	21,8*4(6)
1691
1692	b	Lsqr8x_done
1693
1694.align	5
1695Lsqr8x8_post_condition:
1696	ld	3,8*6(1)
1697	ld	4,0(1)
1698	addze	31,0
1699
1700
1701	subfc	22,9,22
1702	subfe	23,10,23
1703	std	0,8*12(1)
1704	std	0,8*13(1)
1705	subfe	24,11,24
1706	std	0,8*14(1)
1707	std	0,8*15(1)
1708	subfe	25,12,25
1709	std	0,8*16(1)
1710	std	0,8*17(1)
1711	subfe	26,14,26
1712	std	0,8*18(1)
1713	std	0,8*19(1)
1714	subfe	27,15,27
1715	std	0,8*20(1)
1716	std	0,8*21(1)
1717	subfe	28,16,28
1718	std	0,8*22(1)
1719	std	0,8*23(1)
1720	subfe	29,17,29
1721	std	0,8*24(1)
1722	std	0,8*25(1)
1723	subfe	31,0,31
1724	std	0,8*26(1)
1725	std	0,8*27(1)
1726
1727	and	9,9,31
1728	and	10,10,31
1729	addc	22,22,9
1730	and	11,11,31
1731	adde	23,23,10
1732	and	12,12,31
1733	adde	24,24,11
1734	and	14,14,31
1735	adde	25,25,12
1736	and	15,15,31
1737	adde	26,26,14
1738	and	16,16,31
1739	adde	27,27,15
1740	and	17,17,31
1741	adde	28,28,16
1742	adde	29,29,17
1743	std	22,8*1(3)
1744	std	23,8*2(3)
1745	std	24,8*3(3)
1746	std	25,8*4(3)
1747	std	26,8*5(3)
1748	std	27,8*6(3)
1749	std	28,8*7(3)
1750	std	29,8*8(3)
1751
1752Lsqr8x_done:
1753	std	0,8*8(1)
1754	std	0,8*10(1)
1755
1756	ld	14,-8*18(4)
1757	li	3,1
1758	ld	15,-8*17(4)
1759	ld	16,-8*16(4)
1760	ld	17,-8*15(4)
1761	ld	18,-8*14(4)
1762	ld	19,-8*13(4)
1763	ld	20,-8*12(4)
1764	ld	21,-8*11(4)
1765	ld	22,-8*10(4)
1766	ld	23,-8*9(4)
1767	ld	24,-8*8(4)
1768	ld	25,-8*7(4)
1769	ld	26,-8*6(4)
1770	ld	27,-8*5(4)
1771	ld	28,-8*4(4)
1772	ld	29,-8*3(4)
1773	ld	30,-8*2(4)
1774	ld	31,-8*1(4)
1775	mr	1,4
1776	blr
1777.long	0
1778.byte	0,12,4,0x20,0x80,18,6,0
1779.long	0
1780
1781.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,80,80,67,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
1782.align	2
1783