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