xref: /freebsd/sys/crypto/openssl/i386/co-586.S (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1/* $FreeBSD$ */
2/* Do not modify. This file is auto-generated from co-586.pl. */
3#ifdef PIC
4.text
5.globl	bn_mul_comba8
6.type	bn_mul_comba8,@function
7.align	16
8bn_mul_comba8:
9.L_bn_mul_comba8_begin:
10	pushl	%esi
11	movl	12(%esp),%esi
12	pushl	%edi
13	movl	20(%esp),%edi
14	pushl	%ebp
15	pushl	%ebx
16	xorl	%ebx,%ebx
17	movl	(%esi),%eax
18	xorl	%ecx,%ecx
19	movl	(%edi),%edx
20
21	xorl	%ebp,%ebp
22
23	mull	%edx
24	addl	%eax,%ebx
25	movl	20(%esp),%eax
26	adcl	%edx,%ecx
27	movl	(%edi),%edx
28	adcl	$0,%ebp
29	movl	%ebx,(%eax)
30	movl	4(%esi),%eax
31
32
33	xorl	%ebx,%ebx
34
35	mull	%edx
36	addl	%eax,%ecx
37	movl	(%esi),%eax
38	adcl	%edx,%ebp
39	movl	4(%edi),%edx
40	adcl	$0,%ebx
41
42	mull	%edx
43	addl	%eax,%ecx
44	movl	20(%esp),%eax
45	adcl	%edx,%ebp
46	movl	(%edi),%edx
47	adcl	$0,%ebx
48	movl	%ecx,4(%eax)
49	movl	8(%esi),%eax
50
51
52	xorl	%ecx,%ecx
53
54	mull	%edx
55	addl	%eax,%ebp
56	movl	4(%esi),%eax
57	adcl	%edx,%ebx
58	movl	4(%edi),%edx
59	adcl	$0,%ecx
60
61	mull	%edx
62	addl	%eax,%ebp
63	movl	(%esi),%eax
64	adcl	%edx,%ebx
65	movl	8(%edi),%edx
66	adcl	$0,%ecx
67
68	mull	%edx
69	addl	%eax,%ebp
70	movl	20(%esp),%eax
71	adcl	%edx,%ebx
72	movl	(%edi),%edx
73	adcl	$0,%ecx
74	movl	%ebp,8(%eax)
75	movl	12(%esi),%eax
76
77
78	xorl	%ebp,%ebp
79
80	mull	%edx
81	addl	%eax,%ebx
82	movl	8(%esi),%eax
83	adcl	%edx,%ecx
84	movl	4(%edi),%edx
85	adcl	$0,%ebp
86
87	mull	%edx
88	addl	%eax,%ebx
89	movl	4(%esi),%eax
90	adcl	%edx,%ecx
91	movl	8(%edi),%edx
92	adcl	$0,%ebp
93
94	mull	%edx
95	addl	%eax,%ebx
96	movl	(%esi),%eax
97	adcl	%edx,%ecx
98	movl	12(%edi),%edx
99	adcl	$0,%ebp
100
101	mull	%edx
102	addl	%eax,%ebx
103	movl	20(%esp),%eax
104	adcl	%edx,%ecx
105	movl	(%edi),%edx
106	adcl	$0,%ebp
107	movl	%ebx,12(%eax)
108	movl	16(%esi),%eax
109
110
111	xorl	%ebx,%ebx
112
113	mull	%edx
114	addl	%eax,%ecx
115	movl	12(%esi),%eax
116	adcl	%edx,%ebp
117	movl	4(%edi),%edx
118	adcl	$0,%ebx
119
120	mull	%edx
121	addl	%eax,%ecx
122	movl	8(%esi),%eax
123	adcl	%edx,%ebp
124	movl	8(%edi),%edx
125	adcl	$0,%ebx
126
127	mull	%edx
128	addl	%eax,%ecx
129	movl	4(%esi),%eax
130	adcl	%edx,%ebp
131	movl	12(%edi),%edx
132	adcl	$0,%ebx
133
134	mull	%edx
135	addl	%eax,%ecx
136	movl	(%esi),%eax
137	adcl	%edx,%ebp
138	movl	16(%edi),%edx
139	adcl	$0,%ebx
140
141	mull	%edx
142	addl	%eax,%ecx
143	movl	20(%esp),%eax
144	adcl	%edx,%ebp
145	movl	(%edi),%edx
146	adcl	$0,%ebx
147	movl	%ecx,16(%eax)
148	movl	20(%esi),%eax
149
150
151	xorl	%ecx,%ecx
152
153	mull	%edx
154	addl	%eax,%ebp
155	movl	16(%esi),%eax
156	adcl	%edx,%ebx
157	movl	4(%edi),%edx
158	adcl	$0,%ecx
159
160	mull	%edx
161	addl	%eax,%ebp
162	movl	12(%esi),%eax
163	adcl	%edx,%ebx
164	movl	8(%edi),%edx
165	adcl	$0,%ecx
166
167	mull	%edx
168	addl	%eax,%ebp
169	movl	8(%esi),%eax
170	adcl	%edx,%ebx
171	movl	12(%edi),%edx
172	adcl	$0,%ecx
173
174	mull	%edx
175	addl	%eax,%ebp
176	movl	4(%esi),%eax
177	adcl	%edx,%ebx
178	movl	16(%edi),%edx
179	adcl	$0,%ecx
180
181	mull	%edx
182	addl	%eax,%ebp
183	movl	(%esi),%eax
184	adcl	%edx,%ebx
185	movl	20(%edi),%edx
186	adcl	$0,%ecx
187
188	mull	%edx
189	addl	%eax,%ebp
190	movl	20(%esp),%eax
191	adcl	%edx,%ebx
192	movl	(%edi),%edx
193	adcl	$0,%ecx
194	movl	%ebp,20(%eax)
195	movl	24(%esi),%eax
196
197
198	xorl	%ebp,%ebp
199
200	mull	%edx
201	addl	%eax,%ebx
202	movl	20(%esi),%eax
203	adcl	%edx,%ecx
204	movl	4(%edi),%edx
205	adcl	$0,%ebp
206
207	mull	%edx
208	addl	%eax,%ebx
209	movl	16(%esi),%eax
210	adcl	%edx,%ecx
211	movl	8(%edi),%edx
212	adcl	$0,%ebp
213
214	mull	%edx
215	addl	%eax,%ebx
216	movl	12(%esi),%eax
217	adcl	%edx,%ecx
218	movl	12(%edi),%edx
219	adcl	$0,%ebp
220
221	mull	%edx
222	addl	%eax,%ebx
223	movl	8(%esi),%eax
224	adcl	%edx,%ecx
225	movl	16(%edi),%edx
226	adcl	$0,%ebp
227
228	mull	%edx
229	addl	%eax,%ebx
230	movl	4(%esi),%eax
231	adcl	%edx,%ecx
232	movl	20(%edi),%edx
233	adcl	$0,%ebp
234
235	mull	%edx
236	addl	%eax,%ebx
237	movl	(%esi),%eax
238	adcl	%edx,%ecx
239	movl	24(%edi),%edx
240	adcl	$0,%ebp
241
242	mull	%edx
243	addl	%eax,%ebx
244	movl	20(%esp),%eax
245	adcl	%edx,%ecx
246	movl	(%edi),%edx
247	adcl	$0,%ebp
248	movl	%ebx,24(%eax)
249	movl	28(%esi),%eax
250
251
252	xorl	%ebx,%ebx
253
254	mull	%edx
255	addl	%eax,%ecx
256	movl	24(%esi),%eax
257	adcl	%edx,%ebp
258	movl	4(%edi),%edx
259	adcl	$0,%ebx
260
261	mull	%edx
262	addl	%eax,%ecx
263	movl	20(%esi),%eax
264	adcl	%edx,%ebp
265	movl	8(%edi),%edx
266	adcl	$0,%ebx
267
268	mull	%edx
269	addl	%eax,%ecx
270	movl	16(%esi),%eax
271	adcl	%edx,%ebp
272	movl	12(%edi),%edx
273	adcl	$0,%ebx
274
275	mull	%edx
276	addl	%eax,%ecx
277	movl	12(%esi),%eax
278	adcl	%edx,%ebp
279	movl	16(%edi),%edx
280	adcl	$0,%ebx
281
282	mull	%edx
283	addl	%eax,%ecx
284	movl	8(%esi),%eax
285	adcl	%edx,%ebp
286	movl	20(%edi),%edx
287	adcl	$0,%ebx
288
289	mull	%edx
290	addl	%eax,%ecx
291	movl	4(%esi),%eax
292	adcl	%edx,%ebp
293	movl	24(%edi),%edx
294	adcl	$0,%ebx
295
296	mull	%edx
297	addl	%eax,%ecx
298	movl	(%esi),%eax
299	adcl	%edx,%ebp
300	movl	28(%edi),%edx
301	adcl	$0,%ebx
302
303	mull	%edx
304	addl	%eax,%ecx
305	movl	20(%esp),%eax
306	adcl	%edx,%ebp
307	movl	4(%edi),%edx
308	adcl	$0,%ebx
309	movl	%ecx,28(%eax)
310	movl	28(%esi),%eax
311
312
313	xorl	%ecx,%ecx
314
315	mull	%edx
316	addl	%eax,%ebp
317	movl	24(%esi),%eax
318	adcl	%edx,%ebx
319	movl	8(%edi),%edx
320	adcl	$0,%ecx
321
322	mull	%edx
323	addl	%eax,%ebp
324	movl	20(%esi),%eax
325	adcl	%edx,%ebx
326	movl	12(%edi),%edx
327	adcl	$0,%ecx
328
329	mull	%edx
330	addl	%eax,%ebp
331	movl	16(%esi),%eax
332	adcl	%edx,%ebx
333	movl	16(%edi),%edx
334	adcl	$0,%ecx
335
336	mull	%edx
337	addl	%eax,%ebp
338	movl	12(%esi),%eax
339	adcl	%edx,%ebx
340	movl	20(%edi),%edx
341	adcl	$0,%ecx
342
343	mull	%edx
344	addl	%eax,%ebp
345	movl	8(%esi),%eax
346	adcl	%edx,%ebx
347	movl	24(%edi),%edx
348	adcl	$0,%ecx
349
350	mull	%edx
351	addl	%eax,%ebp
352	movl	4(%esi),%eax
353	adcl	%edx,%ebx
354	movl	28(%edi),%edx
355	adcl	$0,%ecx
356
357	mull	%edx
358	addl	%eax,%ebp
359	movl	20(%esp),%eax
360	adcl	%edx,%ebx
361	movl	8(%edi),%edx
362	adcl	$0,%ecx
363	movl	%ebp,32(%eax)
364	movl	28(%esi),%eax
365
366
367	xorl	%ebp,%ebp
368
369	mull	%edx
370	addl	%eax,%ebx
371	movl	24(%esi),%eax
372	adcl	%edx,%ecx
373	movl	12(%edi),%edx
374	adcl	$0,%ebp
375
376	mull	%edx
377	addl	%eax,%ebx
378	movl	20(%esi),%eax
379	adcl	%edx,%ecx
380	movl	16(%edi),%edx
381	adcl	$0,%ebp
382
383	mull	%edx
384	addl	%eax,%ebx
385	movl	16(%esi),%eax
386	adcl	%edx,%ecx
387	movl	20(%edi),%edx
388	adcl	$0,%ebp
389
390	mull	%edx
391	addl	%eax,%ebx
392	movl	12(%esi),%eax
393	adcl	%edx,%ecx
394	movl	24(%edi),%edx
395	adcl	$0,%ebp
396
397	mull	%edx
398	addl	%eax,%ebx
399	movl	8(%esi),%eax
400	adcl	%edx,%ecx
401	movl	28(%edi),%edx
402	adcl	$0,%ebp
403
404	mull	%edx
405	addl	%eax,%ebx
406	movl	20(%esp),%eax
407	adcl	%edx,%ecx
408	movl	12(%edi),%edx
409	adcl	$0,%ebp
410	movl	%ebx,36(%eax)
411	movl	28(%esi),%eax
412
413
414	xorl	%ebx,%ebx
415
416	mull	%edx
417	addl	%eax,%ecx
418	movl	24(%esi),%eax
419	adcl	%edx,%ebp
420	movl	16(%edi),%edx
421	adcl	$0,%ebx
422
423	mull	%edx
424	addl	%eax,%ecx
425	movl	20(%esi),%eax
426	adcl	%edx,%ebp
427	movl	20(%edi),%edx
428	adcl	$0,%ebx
429
430	mull	%edx
431	addl	%eax,%ecx
432	movl	16(%esi),%eax
433	adcl	%edx,%ebp
434	movl	24(%edi),%edx
435	adcl	$0,%ebx
436
437	mull	%edx
438	addl	%eax,%ecx
439	movl	12(%esi),%eax
440	adcl	%edx,%ebp
441	movl	28(%edi),%edx
442	adcl	$0,%ebx
443
444	mull	%edx
445	addl	%eax,%ecx
446	movl	20(%esp),%eax
447	adcl	%edx,%ebp
448	movl	16(%edi),%edx
449	adcl	$0,%ebx
450	movl	%ecx,40(%eax)
451	movl	28(%esi),%eax
452
453
454	xorl	%ecx,%ecx
455
456	mull	%edx
457	addl	%eax,%ebp
458	movl	24(%esi),%eax
459	adcl	%edx,%ebx
460	movl	20(%edi),%edx
461	adcl	$0,%ecx
462
463	mull	%edx
464	addl	%eax,%ebp
465	movl	20(%esi),%eax
466	adcl	%edx,%ebx
467	movl	24(%edi),%edx
468	adcl	$0,%ecx
469
470	mull	%edx
471	addl	%eax,%ebp
472	movl	16(%esi),%eax
473	adcl	%edx,%ebx
474	movl	28(%edi),%edx
475	adcl	$0,%ecx
476
477	mull	%edx
478	addl	%eax,%ebp
479	movl	20(%esp),%eax
480	adcl	%edx,%ebx
481	movl	20(%edi),%edx
482	adcl	$0,%ecx
483	movl	%ebp,44(%eax)
484	movl	28(%esi),%eax
485
486
487	xorl	%ebp,%ebp
488
489	mull	%edx
490	addl	%eax,%ebx
491	movl	24(%esi),%eax
492	adcl	%edx,%ecx
493	movl	24(%edi),%edx
494	adcl	$0,%ebp
495
496	mull	%edx
497	addl	%eax,%ebx
498	movl	20(%esi),%eax
499	adcl	%edx,%ecx
500	movl	28(%edi),%edx
501	adcl	$0,%ebp
502
503	mull	%edx
504	addl	%eax,%ebx
505	movl	20(%esp),%eax
506	adcl	%edx,%ecx
507	movl	24(%edi),%edx
508	adcl	$0,%ebp
509	movl	%ebx,48(%eax)
510	movl	28(%esi),%eax
511
512
513	xorl	%ebx,%ebx
514
515	mull	%edx
516	addl	%eax,%ecx
517	movl	24(%esi),%eax
518	adcl	%edx,%ebp
519	movl	28(%edi),%edx
520	adcl	$0,%ebx
521
522	mull	%edx
523	addl	%eax,%ecx
524	movl	20(%esp),%eax
525	adcl	%edx,%ebp
526	movl	28(%edi),%edx
527	adcl	$0,%ebx
528	movl	%ecx,52(%eax)
529	movl	28(%esi),%eax
530
531
532	xorl	%ecx,%ecx
533
534	mull	%edx
535	addl	%eax,%ebp
536	movl	20(%esp),%eax
537	adcl	%edx,%ebx
538	adcl	$0,%ecx
539	movl	%ebp,56(%eax)
540
541
542	movl	%ebx,60(%eax)
543	popl	%ebx
544	popl	%ebp
545	popl	%edi
546	popl	%esi
547	ret
548.size	bn_mul_comba8,.-.L_bn_mul_comba8_begin
549.globl	bn_mul_comba4
550.type	bn_mul_comba4,@function
551.align	16
552bn_mul_comba4:
553.L_bn_mul_comba4_begin:
554	pushl	%esi
555	movl	12(%esp),%esi
556	pushl	%edi
557	movl	20(%esp),%edi
558	pushl	%ebp
559	pushl	%ebx
560	xorl	%ebx,%ebx
561	movl	(%esi),%eax
562	xorl	%ecx,%ecx
563	movl	(%edi),%edx
564
565	xorl	%ebp,%ebp
566
567	mull	%edx
568	addl	%eax,%ebx
569	movl	20(%esp),%eax
570	adcl	%edx,%ecx
571	movl	(%edi),%edx
572	adcl	$0,%ebp
573	movl	%ebx,(%eax)
574	movl	4(%esi),%eax
575
576
577	xorl	%ebx,%ebx
578
579	mull	%edx
580	addl	%eax,%ecx
581	movl	(%esi),%eax
582	adcl	%edx,%ebp
583	movl	4(%edi),%edx
584	adcl	$0,%ebx
585
586	mull	%edx
587	addl	%eax,%ecx
588	movl	20(%esp),%eax
589	adcl	%edx,%ebp
590	movl	(%edi),%edx
591	adcl	$0,%ebx
592	movl	%ecx,4(%eax)
593	movl	8(%esi),%eax
594
595
596	xorl	%ecx,%ecx
597
598	mull	%edx
599	addl	%eax,%ebp
600	movl	4(%esi),%eax
601	adcl	%edx,%ebx
602	movl	4(%edi),%edx
603	adcl	$0,%ecx
604
605	mull	%edx
606	addl	%eax,%ebp
607	movl	(%esi),%eax
608	adcl	%edx,%ebx
609	movl	8(%edi),%edx
610	adcl	$0,%ecx
611
612	mull	%edx
613	addl	%eax,%ebp
614	movl	20(%esp),%eax
615	adcl	%edx,%ebx
616	movl	(%edi),%edx
617	adcl	$0,%ecx
618	movl	%ebp,8(%eax)
619	movl	12(%esi),%eax
620
621
622	xorl	%ebp,%ebp
623
624	mull	%edx
625	addl	%eax,%ebx
626	movl	8(%esi),%eax
627	adcl	%edx,%ecx
628	movl	4(%edi),%edx
629	adcl	$0,%ebp
630
631	mull	%edx
632	addl	%eax,%ebx
633	movl	4(%esi),%eax
634	adcl	%edx,%ecx
635	movl	8(%edi),%edx
636	adcl	$0,%ebp
637
638	mull	%edx
639	addl	%eax,%ebx
640	movl	(%esi),%eax
641	adcl	%edx,%ecx
642	movl	12(%edi),%edx
643	adcl	$0,%ebp
644
645	mull	%edx
646	addl	%eax,%ebx
647	movl	20(%esp),%eax
648	adcl	%edx,%ecx
649	movl	4(%edi),%edx
650	adcl	$0,%ebp
651	movl	%ebx,12(%eax)
652	movl	12(%esi),%eax
653
654
655	xorl	%ebx,%ebx
656
657	mull	%edx
658	addl	%eax,%ecx
659	movl	8(%esi),%eax
660	adcl	%edx,%ebp
661	movl	8(%edi),%edx
662	adcl	$0,%ebx
663
664	mull	%edx
665	addl	%eax,%ecx
666	movl	4(%esi),%eax
667	adcl	%edx,%ebp
668	movl	12(%edi),%edx
669	adcl	$0,%ebx
670
671	mull	%edx
672	addl	%eax,%ecx
673	movl	20(%esp),%eax
674	adcl	%edx,%ebp
675	movl	8(%edi),%edx
676	adcl	$0,%ebx
677	movl	%ecx,16(%eax)
678	movl	12(%esi),%eax
679
680
681	xorl	%ecx,%ecx
682
683	mull	%edx
684	addl	%eax,%ebp
685	movl	8(%esi),%eax
686	adcl	%edx,%ebx
687	movl	12(%edi),%edx
688	adcl	$0,%ecx
689
690	mull	%edx
691	addl	%eax,%ebp
692	movl	20(%esp),%eax
693	adcl	%edx,%ebx
694	movl	12(%edi),%edx
695	adcl	$0,%ecx
696	movl	%ebp,20(%eax)
697	movl	12(%esi),%eax
698
699
700	xorl	%ebp,%ebp
701
702	mull	%edx
703	addl	%eax,%ebx
704	movl	20(%esp),%eax
705	adcl	%edx,%ecx
706	adcl	$0,%ebp
707	movl	%ebx,24(%eax)
708
709
710	movl	%ecx,28(%eax)
711	popl	%ebx
712	popl	%ebp
713	popl	%edi
714	popl	%esi
715	ret
716.size	bn_mul_comba4,.-.L_bn_mul_comba4_begin
717.globl	bn_sqr_comba8
718.type	bn_sqr_comba8,@function
719.align	16
720bn_sqr_comba8:
721.L_bn_sqr_comba8_begin:
722	pushl	%esi
723	pushl	%edi
724	pushl	%ebp
725	pushl	%ebx
726	movl	20(%esp),%edi
727	movl	24(%esp),%esi
728	xorl	%ebx,%ebx
729	xorl	%ecx,%ecx
730	movl	(%esi),%eax
731
732	xorl	%ebp,%ebp
733
734	mull	%eax
735	addl	%eax,%ebx
736	adcl	%edx,%ecx
737	movl	(%esi),%edx
738	adcl	$0,%ebp
739	movl	%ebx,(%edi)
740	movl	4(%esi),%eax
741
742
743	xorl	%ebx,%ebx
744
745	mull	%edx
746	addl	%eax,%eax
747	adcl	%edx,%edx
748	adcl	$0,%ebx
749	addl	%eax,%ecx
750	adcl	%edx,%ebp
751	movl	8(%esi),%eax
752	adcl	$0,%ebx
753	movl	%ecx,4(%edi)
754	movl	(%esi),%edx
755
756
757	xorl	%ecx,%ecx
758
759	mull	%edx
760	addl	%eax,%eax
761	adcl	%edx,%edx
762	adcl	$0,%ecx
763	addl	%eax,%ebp
764	adcl	%edx,%ebx
765	movl	4(%esi),%eax
766	adcl	$0,%ecx
767
768	mull	%eax
769	addl	%eax,%ebp
770	adcl	%edx,%ebx
771	movl	(%esi),%edx
772	adcl	$0,%ecx
773	movl	%ebp,8(%edi)
774	movl	12(%esi),%eax
775
776
777	xorl	%ebp,%ebp
778
779	mull	%edx
780	addl	%eax,%eax
781	adcl	%edx,%edx
782	adcl	$0,%ebp
783	addl	%eax,%ebx
784	adcl	%edx,%ecx
785	movl	8(%esi),%eax
786	adcl	$0,%ebp
787	movl	4(%esi),%edx
788
789	mull	%edx
790	addl	%eax,%eax
791	adcl	%edx,%edx
792	adcl	$0,%ebp
793	addl	%eax,%ebx
794	adcl	%edx,%ecx
795	movl	16(%esi),%eax
796	adcl	$0,%ebp
797	movl	%ebx,12(%edi)
798	movl	(%esi),%edx
799
800
801	xorl	%ebx,%ebx
802
803	mull	%edx
804	addl	%eax,%eax
805	adcl	%edx,%edx
806	adcl	$0,%ebx
807	addl	%eax,%ecx
808	adcl	%edx,%ebp
809	movl	12(%esi),%eax
810	adcl	$0,%ebx
811	movl	4(%esi),%edx
812
813	mull	%edx
814	addl	%eax,%eax
815	adcl	%edx,%edx
816	adcl	$0,%ebx
817	addl	%eax,%ecx
818	adcl	%edx,%ebp
819	movl	8(%esi),%eax
820	adcl	$0,%ebx
821
822	mull	%eax
823	addl	%eax,%ecx
824	adcl	%edx,%ebp
825	movl	(%esi),%edx
826	adcl	$0,%ebx
827	movl	%ecx,16(%edi)
828	movl	20(%esi),%eax
829
830
831	xorl	%ecx,%ecx
832
833	mull	%edx
834	addl	%eax,%eax
835	adcl	%edx,%edx
836	adcl	$0,%ecx
837	addl	%eax,%ebp
838	adcl	%edx,%ebx
839	movl	16(%esi),%eax
840	adcl	$0,%ecx
841	movl	4(%esi),%edx
842
843	mull	%edx
844	addl	%eax,%eax
845	adcl	%edx,%edx
846	adcl	$0,%ecx
847	addl	%eax,%ebp
848	adcl	%edx,%ebx
849	movl	12(%esi),%eax
850	adcl	$0,%ecx
851	movl	8(%esi),%edx
852
853	mull	%edx
854	addl	%eax,%eax
855	adcl	%edx,%edx
856	adcl	$0,%ecx
857	addl	%eax,%ebp
858	adcl	%edx,%ebx
859	movl	24(%esi),%eax
860	adcl	$0,%ecx
861	movl	%ebp,20(%edi)
862	movl	(%esi),%edx
863
864
865	xorl	%ebp,%ebp
866
867	mull	%edx
868	addl	%eax,%eax
869	adcl	%edx,%edx
870	adcl	$0,%ebp
871	addl	%eax,%ebx
872	adcl	%edx,%ecx
873	movl	20(%esi),%eax
874	adcl	$0,%ebp
875	movl	4(%esi),%edx
876
877	mull	%edx
878	addl	%eax,%eax
879	adcl	%edx,%edx
880	adcl	$0,%ebp
881	addl	%eax,%ebx
882	adcl	%edx,%ecx
883	movl	16(%esi),%eax
884	adcl	$0,%ebp
885	movl	8(%esi),%edx
886
887	mull	%edx
888	addl	%eax,%eax
889	adcl	%edx,%edx
890	adcl	$0,%ebp
891	addl	%eax,%ebx
892	adcl	%edx,%ecx
893	movl	12(%esi),%eax
894	adcl	$0,%ebp
895
896	mull	%eax
897	addl	%eax,%ebx
898	adcl	%edx,%ecx
899	movl	(%esi),%edx
900	adcl	$0,%ebp
901	movl	%ebx,24(%edi)
902	movl	28(%esi),%eax
903
904
905	xorl	%ebx,%ebx
906
907	mull	%edx
908	addl	%eax,%eax
909	adcl	%edx,%edx
910	adcl	$0,%ebx
911	addl	%eax,%ecx
912	adcl	%edx,%ebp
913	movl	24(%esi),%eax
914	adcl	$0,%ebx
915	movl	4(%esi),%edx
916
917	mull	%edx
918	addl	%eax,%eax
919	adcl	%edx,%edx
920	adcl	$0,%ebx
921	addl	%eax,%ecx
922	adcl	%edx,%ebp
923	movl	20(%esi),%eax
924	adcl	$0,%ebx
925	movl	8(%esi),%edx
926
927	mull	%edx
928	addl	%eax,%eax
929	adcl	%edx,%edx
930	adcl	$0,%ebx
931	addl	%eax,%ecx
932	adcl	%edx,%ebp
933	movl	16(%esi),%eax
934	adcl	$0,%ebx
935	movl	12(%esi),%edx
936
937	mull	%edx
938	addl	%eax,%eax
939	adcl	%edx,%edx
940	adcl	$0,%ebx
941	addl	%eax,%ecx
942	adcl	%edx,%ebp
943	movl	28(%esi),%eax
944	adcl	$0,%ebx
945	movl	%ecx,28(%edi)
946	movl	4(%esi),%edx
947
948
949	xorl	%ecx,%ecx
950
951	mull	%edx
952	addl	%eax,%eax
953	adcl	%edx,%edx
954	adcl	$0,%ecx
955	addl	%eax,%ebp
956	adcl	%edx,%ebx
957	movl	24(%esi),%eax
958	adcl	$0,%ecx
959	movl	8(%esi),%edx
960
961	mull	%edx
962	addl	%eax,%eax
963	adcl	%edx,%edx
964	adcl	$0,%ecx
965	addl	%eax,%ebp
966	adcl	%edx,%ebx
967	movl	20(%esi),%eax
968	adcl	$0,%ecx
969	movl	12(%esi),%edx
970
971	mull	%edx
972	addl	%eax,%eax
973	adcl	%edx,%edx
974	adcl	$0,%ecx
975	addl	%eax,%ebp
976	adcl	%edx,%ebx
977	movl	16(%esi),%eax
978	adcl	$0,%ecx
979
980	mull	%eax
981	addl	%eax,%ebp
982	adcl	%edx,%ebx
983	movl	8(%esi),%edx
984	adcl	$0,%ecx
985	movl	%ebp,32(%edi)
986	movl	28(%esi),%eax
987
988
989	xorl	%ebp,%ebp
990
991	mull	%edx
992	addl	%eax,%eax
993	adcl	%edx,%edx
994	adcl	$0,%ebp
995	addl	%eax,%ebx
996	adcl	%edx,%ecx
997	movl	24(%esi),%eax
998	adcl	$0,%ebp
999	movl	12(%esi),%edx
1000
1001	mull	%edx
1002	addl	%eax,%eax
1003	adcl	%edx,%edx
1004	adcl	$0,%ebp
1005	addl	%eax,%ebx
1006	adcl	%edx,%ecx
1007	movl	20(%esi),%eax
1008	adcl	$0,%ebp
1009	movl	16(%esi),%edx
1010
1011	mull	%edx
1012	addl	%eax,%eax
1013	adcl	%edx,%edx
1014	adcl	$0,%ebp
1015	addl	%eax,%ebx
1016	adcl	%edx,%ecx
1017	movl	28(%esi),%eax
1018	adcl	$0,%ebp
1019	movl	%ebx,36(%edi)
1020	movl	12(%esi),%edx
1021
1022
1023	xorl	%ebx,%ebx
1024
1025	mull	%edx
1026	addl	%eax,%eax
1027	adcl	%edx,%edx
1028	adcl	$0,%ebx
1029	addl	%eax,%ecx
1030	adcl	%edx,%ebp
1031	movl	24(%esi),%eax
1032	adcl	$0,%ebx
1033	movl	16(%esi),%edx
1034
1035	mull	%edx
1036	addl	%eax,%eax
1037	adcl	%edx,%edx
1038	adcl	$0,%ebx
1039	addl	%eax,%ecx
1040	adcl	%edx,%ebp
1041	movl	20(%esi),%eax
1042	adcl	$0,%ebx
1043
1044	mull	%eax
1045	addl	%eax,%ecx
1046	adcl	%edx,%ebp
1047	movl	16(%esi),%edx
1048	adcl	$0,%ebx
1049	movl	%ecx,40(%edi)
1050	movl	28(%esi),%eax
1051
1052
1053	xorl	%ecx,%ecx
1054
1055	mull	%edx
1056	addl	%eax,%eax
1057	adcl	%edx,%edx
1058	adcl	$0,%ecx
1059	addl	%eax,%ebp
1060	adcl	%edx,%ebx
1061	movl	24(%esi),%eax
1062	adcl	$0,%ecx
1063	movl	20(%esi),%edx
1064
1065	mull	%edx
1066	addl	%eax,%eax
1067	adcl	%edx,%edx
1068	adcl	$0,%ecx
1069	addl	%eax,%ebp
1070	adcl	%edx,%ebx
1071	movl	28(%esi),%eax
1072	adcl	$0,%ecx
1073	movl	%ebp,44(%edi)
1074	movl	20(%esi),%edx
1075
1076
1077	xorl	%ebp,%ebp
1078
1079	mull	%edx
1080	addl	%eax,%eax
1081	adcl	%edx,%edx
1082	adcl	$0,%ebp
1083	addl	%eax,%ebx
1084	adcl	%edx,%ecx
1085	movl	24(%esi),%eax
1086	adcl	$0,%ebp
1087
1088	mull	%eax
1089	addl	%eax,%ebx
1090	adcl	%edx,%ecx
1091	movl	24(%esi),%edx
1092	adcl	$0,%ebp
1093	movl	%ebx,48(%edi)
1094	movl	28(%esi),%eax
1095
1096
1097	xorl	%ebx,%ebx
1098
1099	mull	%edx
1100	addl	%eax,%eax
1101	adcl	%edx,%edx
1102	adcl	$0,%ebx
1103	addl	%eax,%ecx
1104	adcl	%edx,%ebp
1105	movl	28(%esi),%eax
1106	adcl	$0,%ebx
1107	movl	%ecx,52(%edi)
1108
1109
1110	xorl	%ecx,%ecx
1111
1112	mull	%eax
1113	addl	%eax,%ebp
1114	adcl	%edx,%ebx
1115	adcl	$0,%ecx
1116	movl	%ebp,56(%edi)
1117
1118	movl	%ebx,60(%edi)
1119	popl	%ebx
1120	popl	%ebp
1121	popl	%edi
1122	popl	%esi
1123	ret
1124.size	bn_sqr_comba8,.-.L_bn_sqr_comba8_begin
1125.globl	bn_sqr_comba4
1126.type	bn_sqr_comba4,@function
1127.align	16
1128bn_sqr_comba4:
1129.L_bn_sqr_comba4_begin:
1130	pushl	%esi
1131	pushl	%edi
1132	pushl	%ebp
1133	pushl	%ebx
1134	movl	20(%esp),%edi
1135	movl	24(%esp),%esi
1136	xorl	%ebx,%ebx
1137	xorl	%ecx,%ecx
1138	movl	(%esi),%eax
1139
1140	xorl	%ebp,%ebp
1141
1142	mull	%eax
1143	addl	%eax,%ebx
1144	adcl	%edx,%ecx
1145	movl	(%esi),%edx
1146	adcl	$0,%ebp
1147	movl	%ebx,(%edi)
1148	movl	4(%esi),%eax
1149
1150
1151	xorl	%ebx,%ebx
1152
1153	mull	%edx
1154	addl	%eax,%eax
1155	adcl	%edx,%edx
1156	adcl	$0,%ebx
1157	addl	%eax,%ecx
1158	adcl	%edx,%ebp
1159	movl	8(%esi),%eax
1160	adcl	$0,%ebx
1161	movl	%ecx,4(%edi)
1162	movl	(%esi),%edx
1163
1164
1165	xorl	%ecx,%ecx
1166
1167	mull	%edx
1168	addl	%eax,%eax
1169	adcl	%edx,%edx
1170	adcl	$0,%ecx
1171	addl	%eax,%ebp
1172	adcl	%edx,%ebx
1173	movl	4(%esi),%eax
1174	adcl	$0,%ecx
1175
1176	mull	%eax
1177	addl	%eax,%ebp
1178	adcl	%edx,%ebx
1179	movl	(%esi),%edx
1180	adcl	$0,%ecx
1181	movl	%ebp,8(%edi)
1182	movl	12(%esi),%eax
1183
1184
1185	xorl	%ebp,%ebp
1186
1187	mull	%edx
1188	addl	%eax,%eax
1189	adcl	%edx,%edx
1190	adcl	$0,%ebp
1191	addl	%eax,%ebx
1192	adcl	%edx,%ecx
1193	movl	8(%esi),%eax
1194	adcl	$0,%ebp
1195	movl	4(%esi),%edx
1196
1197	mull	%edx
1198	addl	%eax,%eax
1199	adcl	%edx,%edx
1200	adcl	$0,%ebp
1201	addl	%eax,%ebx
1202	adcl	%edx,%ecx
1203	movl	12(%esi),%eax
1204	adcl	$0,%ebp
1205	movl	%ebx,12(%edi)
1206	movl	4(%esi),%edx
1207
1208
1209	xorl	%ebx,%ebx
1210
1211	mull	%edx
1212	addl	%eax,%eax
1213	adcl	%edx,%edx
1214	adcl	$0,%ebx
1215	addl	%eax,%ecx
1216	adcl	%edx,%ebp
1217	movl	8(%esi),%eax
1218	adcl	$0,%ebx
1219
1220	mull	%eax
1221	addl	%eax,%ecx
1222	adcl	%edx,%ebp
1223	movl	8(%esi),%edx
1224	adcl	$0,%ebx
1225	movl	%ecx,16(%edi)
1226	movl	12(%esi),%eax
1227
1228
1229	xorl	%ecx,%ecx
1230
1231	mull	%edx
1232	addl	%eax,%eax
1233	adcl	%edx,%edx
1234	adcl	$0,%ecx
1235	addl	%eax,%ebp
1236	adcl	%edx,%ebx
1237	movl	12(%esi),%eax
1238	adcl	$0,%ecx
1239	movl	%ebp,20(%edi)
1240
1241
1242	xorl	%ebp,%ebp
1243
1244	mull	%eax
1245	addl	%eax,%ebx
1246	adcl	%edx,%ecx
1247	adcl	$0,%ebp
1248	movl	%ebx,24(%edi)
1249
1250	movl	%ecx,28(%edi)
1251	popl	%ebx
1252	popl	%ebp
1253	popl	%edi
1254	popl	%esi
1255	ret
1256.size	bn_sqr_comba4,.-.L_bn_sqr_comba4_begin
1257#else
1258.text
1259.globl	bn_mul_comba8
1260.type	bn_mul_comba8,@function
1261.align	16
1262bn_mul_comba8:
1263.L_bn_mul_comba8_begin:
1264	pushl	%esi
1265	movl	12(%esp),%esi
1266	pushl	%edi
1267	movl	20(%esp),%edi
1268	pushl	%ebp
1269	pushl	%ebx
1270	xorl	%ebx,%ebx
1271	movl	(%esi),%eax
1272	xorl	%ecx,%ecx
1273	movl	(%edi),%edx
1274
1275	xorl	%ebp,%ebp
1276
1277	mull	%edx
1278	addl	%eax,%ebx
1279	movl	20(%esp),%eax
1280	adcl	%edx,%ecx
1281	movl	(%edi),%edx
1282	adcl	$0,%ebp
1283	movl	%ebx,(%eax)
1284	movl	4(%esi),%eax
1285
1286
1287	xorl	%ebx,%ebx
1288
1289	mull	%edx
1290	addl	%eax,%ecx
1291	movl	(%esi),%eax
1292	adcl	%edx,%ebp
1293	movl	4(%edi),%edx
1294	adcl	$0,%ebx
1295
1296	mull	%edx
1297	addl	%eax,%ecx
1298	movl	20(%esp),%eax
1299	adcl	%edx,%ebp
1300	movl	(%edi),%edx
1301	adcl	$0,%ebx
1302	movl	%ecx,4(%eax)
1303	movl	8(%esi),%eax
1304
1305
1306	xorl	%ecx,%ecx
1307
1308	mull	%edx
1309	addl	%eax,%ebp
1310	movl	4(%esi),%eax
1311	adcl	%edx,%ebx
1312	movl	4(%edi),%edx
1313	adcl	$0,%ecx
1314
1315	mull	%edx
1316	addl	%eax,%ebp
1317	movl	(%esi),%eax
1318	adcl	%edx,%ebx
1319	movl	8(%edi),%edx
1320	adcl	$0,%ecx
1321
1322	mull	%edx
1323	addl	%eax,%ebp
1324	movl	20(%esp),%eax
1325	adcl	%edx,%ebx
1326	movl	(%edi),%edx
1327	adcl	$0,%ecx
1328	movl	%ebp,8(%eax)
1329	movl	12(%esi),%eax
1330
1331
1332	xorl	%ebp,%ebp
1333
1334	mull	%edx
1335	addl	%eax,%ebx
1336	movl	8(%esi),%eax
1337	adcl	%edx,%ecx
1338	movl	4(%edi),%edx
1339	adcl	$0,%ebp
1340
1341	mull	%edx
1342	addl	%eax,%ebx
1343	movl	4(%esi),%eax
1344	adcl	%edx,%ecx
1345	movl	8(%edi),%edx
1346	adcl	$0,%ebp
1347
1348	mull	%edx
1349	addl	%eax,%ebx
1350	movl	(%esi),%eax
1351	adcl	%edx,%ecx
1352	movl	12(%edi),%edx
1353	adcl	$0,%ebp
1354
1355	mull	%edx
1356	addl	%eax,%ebx
1357	movl	20(%esp),%eax
1358	adcl	%edx,%ecx
1359	movl	(%edi),%edx
1360	adcl	$0,%ebp
1361	movl	%ebx,12(%eax)
1362	movl	16(%esi),%eax
1363
1364
1365	xorl	%ebx,%ebx
1366
1367	mull	%edx
1368	addl	%eax,%ecx
1369	movl	12(%esi),%eax
1370	adcl	%edx,%ebp
1371	movl	4(%edi),%edx
1372	adcl	$0,%ebx
1373
1374	mull	%edx
1375	addl	%eax,%ecx
1376	movl	8(%esi),%eax
1377	adcl	%edx,%ebp
1378	movl	8(%edi),%edx
1379	adcl	$0,%ebx
1380
1381	mull	%edx
1382	addl	%eax,%ecx
1383	movl	4(%esi),%eax
1384	adcl	%edx,%ebp
1385	movl	12(%edi),%edx
1386	adcl	$0,%ebx
1387
1388	mull	%edx
1389	addl	%eax,%ecx
1390	movl	(%esi),%eax
1391	adcl	%edx,%ebp
1392	movl	16(%edi),%edx
1393	adcl	$0,%ebx
1394
1395	mull	%edx
1396	addl	%eax,%ecx
1397	movl	20(%esp),%eax
1398	adcl	%edx,%ebp
1399	movl	(%edi),%edx
1400	adcl	$0,%ebx
1401	movl	%ecx,16(%eax)
1402	movl	20(%esi),%eax
1403
1404
1405	xorl	%ecx,%ecx
1406
1407	mull	%edx
1408	addl	%eax,%ebp
1409	movl	16(%esi),%eax
1410	adcl	%edx,%ebx
1411	movl	4(%edi),%edx
1412	adcl	$0,%ecx
1413
1414	mull	%edx
1415	addl	%eax,%ebp
1416	movl	12(%esi),%eax
1417	adcl	%edx,%ebx
1418	movl	8(%edi),%edx
1419	adcl	$0,%ecx
1420
1421	mull	%edx
1422	addl	%eax,%ebp
1423	movl	8(%esi),%eax
1424	adcl	%edx,%ebx
1425	movl	12(%edi),%edx
1426	adcl	$0,%ecx
1427
1428	mull	%edx
1429	addl	%eax,%ebp
1430	movl	4(%esi),%eax
1431	adcl	%edx,%ebx
1432	movl	16(%edi),%edx
1433	adcl	$0,%ecx
1434
1435	mull	%edx
1436	addl	%eax,%ebp
1437	movl	(%esi),%eax
1438	adcl	%edx,%ebx
1439	movl	20(%edi),%edx
1440	adcl	$0,%ecx
1441
1442	mull	%edx
1443	addl	%eax,%ebp
1444	movl	20(%esp),%eax
1445	adcl	%edx,%ebx
1446	movl	(%edi),%edx
1447	adcl	$0,%ecx
1448	movl	%ebp,20(%eax)
1449	movl	24(%esi),%eax
1450
1451
1452	xorl	%ebp,%ebp
1453
1454	mull	%edx
1455	addl	%eax,%ebx
1456	movl	20(%esi),%eax
1457	adcl	%edx,%ecx
1458	movl	4(%edi),%edx
1459	adcl	$0,%ebp
1460
1461	mull	%edx
1462	addl	%eax,%ebx
1463	movl	16(%esi),%eax
1464	adcl	%edx,%ecx
1465	movl	8(%edi),%edx
1466	adcl	$0,%ebp
1467
1468	mull	%edx
1469	addl	%eax,%ebx
1470	movl	12(%esi),%eax
1471	adcl	%edx,%ecx
1472	movl	12(%edi),%edx
1473	adcl	$0,%ebp
1474
1475	mull	%edx
1476	addl	%eax,%ebx
1477	movl	8(%esi),%eax
1478	adcl	%edx,%ecx
1479	movl	16(%edi),%edx
1480	adcl	$0,%ebp
1481
1482	mull	%edx
1483	addl	%eax,%ebx
1484	movl	4(%esi),%eax
1485	adcl	%edx,%ecx
1486	movl	20(%edi),%edx
1487	adcl	$0,%ebp
1488
1489	mull	%edx
1490	addl	%eax,%ebx
1491	movl	(%esi),%eax
1492	adcl	%edx,%ecx
1493	movl	24(%edi),%edx
1494	adcl	$0,%ebp
1495
1496	mull	%edx
1497	addl	%eax,%ebx
1498	movl	20(%esp),%eax
1499	adcl	%edx,%ecx
1500	movl	(%edi),%edx
1501	adcl	$0,%ebp
1502	movl	%ebx,24(%eax)
1503	movl	28(%esi),%eax
1504
1505
1506	xorl	%ebx,%ebx
1507
1508	mull	%edx
1509	addl	%eax,%ecx
1510	movl	24(%esi),%eax
1511	adcl	%edx,%ebp
1512	movl	4(%edi),%edx
1513	adcl	$0,%ebx
1514
1515	mull	%edx
1516	addl	%eax,%ecx
1517	movl	20(%esi),%eax
1518	adcl	%edx,%ebp
1519	movl	8(%edi),%edx
1520	adcl	$0,%ebx
1521
1522	mull	%edx
1523	addl	%eax,%ecx
1524	movl	16(%esi),%eax
1525	adcl	%edx,%ebp
1526	movl	12(%edi),%edx
1527	adcl	$0,%ebx
1528
1529	mull	%edx
1530	addl	%eax,%ecx
1531	movl	12(%esi),%eax
1532	adcl	%edx,%ebp
1533	movl	16(%edi),%edx
1534	adcl	$0,%ebx
1535
1536	mull	%edx
1537	addl	%eax,%ecx
1538	movl	8(%esi),%eax
1539	adcl	%edx,%ebp
1540	movl	20(%edi),%edx
1541	adcl	$0,%ebx
1542
1543	mull	%edx
1544	addl	%eax,%ecx
1545	movl	4(%esi),%eax
1546	adcl	%edx,%ebp
1547	movl	24(%edi),%edx
1548	adcl	$0,%ebx
1549
1550	mull	%edx
1551	addl	%eax,%ecx
1552	movl	(%esi),%eax
1553	adcl	%edx,%ebp
1554	movl	28(%edi),%edx
1555	adcl	$0,%ebx
1556
1557	mull	%edx
1558	addl	%eax,%ecx
1559	movl	20(%esp),%eax
1560	adcl	%edx,%ebp
1561	movl	4(%edi),%edx
1562	adcl	$0,%ebx
1563	movl	%ecx,28(%eax)
1564	movl	28(%esi),%eax
1565
1566
1567	xorl	%ecx,%ecx
1568
1569	mull	%edx
1570	addl	%eax,%ebp
1571	movl	24(%esi),%eax
1572	adcl	%edx,%ebx
1573	movl	8(%edi),%edx
1574	adcl	$0,%ecx
1575
1576	mull	%edx
1577	addl	%eax,%ebp
1578	movl	20(%esi),%eax
1579	adcl	%edx,%ebx
1580	movl	12(%edi),%edx
1581	adcl	$0,%ecx
1582
1583	mull	%edx
1584	addl	%eax,%ebp
1585	movl	16(%esi),%eax
1586	adcl	%edx,%ebx
1587	movl	16(%edi),%edx
1588	adcl	$0,%ecx
1589
1590	mull	%edx
1591	addl	%eax,%ebp
1592	movl	12(%esi),%eax
1593	adcl	%edx,%ebx
1594	movl	20(%edi),%edx
1595	adcl	$0,%ecx
1596
1597	mull	%edx
1598	addl	%eax,%ebp
1599	movl	8(%esi),%eax
1600	adcl	%edx,%ebx
1601	movl	24(%edi),%edx
1602	adcl	$0,%ecx
1603
1604	mull	%edx
1605	addl	%eax,%ebp
1606	movl	4(%esi),%eax
1607	adcl	%edx,%ebx
1608	movl	28(%edi),%edx
1609	adcl	$0,%ecx
1610
1611	mull	%edx
1612	addl	%eax,%ebp
1613	movl	20(%esp),%eax
1614	adcl	%edx,%ebx
1615	movl	8(%edi),%edx
1616	adcl	$0,%ecx
1617	movl	%ebp,32(%eax)
1618	movl	28(%esi),%eax
1619
1620
1621	xorl	%ebp,%ebp
1622
1623	mull	%edx
1624	addl	%eax,%ebx
1625	movl	24(%esi),%eax
1626	adcl	%edx,%ecx
1627	movl	12(%edi),%edx
1628	adcl	$0,%ebp
1629
1630	mull	%edx
1631	addl	%eax,%ebx
1632	movl	20(%esi),%eax
1633	adcl	%edx,%ecx
1634	movl	16(%edi),%edx
1635	adcl	$0,%ebp
1636
1637	mull	%edx
1638	addl	%eax,%ebx
1639	movl	16(%esi),%eax
1640	adcl	%edx,%ecx
1641	movl	20(%edi),%edx
1642	adcl	$0,%ebp
1643
1644	mull	%edx
1645	addl	%eax,%ebx
1646	movl	12(%esi),%eax
1647	adcl	%edx,%ecx
1648	movl	24(%edi),%edx
1649	adcl	$0,%ebp
1650
1651	mull	%edx
1652	addl	%eax,%ebx
1653	movl	8(%esi),%eax
1654	adcl	%edx,%ecx
1655	movl	28(%edi),%edx
1656	adcl	$0,%ebp
1657
1658	mull	%edx
1659	addl	%eax,%ebx
1660	movl	20(%esp),%eax
1661	adcl	%edx,%ecx
1662	movl	12(%edi),%edx
1663	adcl	$0,%ebp
1664	movl	%ebx,36(%eax)
1665	movl	28(%esi),%eax
1666
1667
1668	xorl	%ebx,%ebx
1669
1670	mull	%edx
1671	addl	%eax,%ecx
1672	movl	24(%esi),%eax
1673	adcl	%edx,%ebp
1674	movl	16(%edi),%edx
1675	adcl	$0,%ebx
1676
1677	mull	%edx
1678	addl	%eax,%ecx
1679	movl	20(%esi),%eax
1680	adcl	%edx,%ebp
1681	movl	20(%edi),%edx
1682	adcl	$0,%ebx
1683
1684	mull	%edx
1685	addl	%eax,%ecx
1686	movl	16(%esi),%eax
1687	adcl	%edx,%ebp
1688	movl	24(%edi),%edx
1689	adcl	$0,%ebx
1690
1691	mull	%edx
1692	addl	%eax,%ecx
1693	movl	12(%esi),%eax
1694	adcl	%edx,%ebp
1695	movl	28(%edi),%edx
1696	adcl	$0,%ebx
1697
1698	mull	%edx
1699	addl	%eax,%ecx
1700	movl	20(%esp),%eax
1701	adcl	%edx,%ebp
1702	movl	16(%edi),%edx
1703	adcl	$0,%ebx
1704	movl	%ecx,40(%eax)
1705	movl	28(%esi),%eax
1706
1707
1708	xorl	%ecx,%ecx
1709
1710	mull	%edx
1711	addl	%eax,%ebp
1712	movl	24(%esi),%eax
1713	adcl	%edx,%ebx
1714	movl	20(%edi),%edx
1715	adcl	$0,%ecx
1716
1717	mull	%edx
1718	addl	%eax,%ebp
1719	movl	20(%esi),%eax
1720	adcl	%edx,%ebx
1721	movl	24(%edi),%edx
1722	adcl	$0,%ecx
1723
1724	mull	%edx
1725	addl	%eax,%ebp
1726	movl	16(%esi),%eax
1727	adcl	%edx,%ebx
1728	movl	28(%edi),%edx
1729	adcl	$0,%ecx
1730
1731	mull	%edx
1732	addl	%eax,%ebp
1733	movl	20(%esp),%eax
1734	adcl	%edx,%ebx
1735	movl	20(%edi),%edx
1736	adcl	$0,%ecx
1737	movl	%ebp,44(%eax)
1738	movl	28(%esi),%eax
1739
1740
1741	xorl	%ebp,%ebp
1742
1743	mull	%edx
1744	addl	%eax,%ebx
1745	movl	24(%esi),%eax
1746	adcl	%edx,%ecx
1747	movl	24(%edi),%edx
1748	adcl	$0,%ebp
1749
1750	mull	%edx
1751	addl	%eax,%ebx
1752	movl	20(%esi),%eax
1753	adcl	%edx,%ecx
1754	movl	28(%edi),%edx
1755	adcl	$0,%ebp
1756
1757	mull	%edx
1758	addl	%eax,%ebx
1759	movl	20(%esp),%eax
1760	adcl	%edx,%ecx
1761	movl	24(%edi),%edx
1762	adcl	$0,%ebp
1763	movl	%ebx,48(%eax)
1764	movl	28(%esi),%eax
1765
1766
1767	xorl	%ebx,%ebx
1768
1769	mull	%edx
1770	addl	%eax,%ecx
1771	movl	24(%esi),%eax
1772	adcl	%edx,%ebp
1773	movl	28(%edi),%edx
1774	adcl	$0,%ebx
1775
1776	mull	%edx
1777	addl	%eax,%ecx
1778	movl	20(%esp),%eax
1779	adcl	%edx,%ebp
1780	movl	28(%edi),%edx
1781	adcl	$0,%ebx
1782	movl	%ecx,52(%eax)
1783	movl	28(%esi),%eax
1784
1785
1786	xorl	%ecx,%ecx
1787
1788	mull	%edx
1789	addl	%eax,%ebp
1790	movl	20(%esp),%eax
1791	adcl	%edx,%ebx
1792	adcl	$0,%ecx
1793	movl	%ebp,56(%eax)
1794
1795
1796	movl	%ebx,60(%eax)
1797	popl	%ebx
1798	popl	%ebp
1799	popl	%edi
1800	popl	%esi
1801	ret
1802.size	bn_mul_comba8,.-.L_bn_mul_comba8_begin
1803.globl	bn_mul_comba4
1804.type	bn_mul_comba4,@function
1805.align	16
1806bn_mul_comba4:
1807.L_bn_mul_comba4_begin:
1808	pushl	%esi
1809	movl	12(%esp),%esi
1810	pushl	%edi
1811	movl	20(%esp),%edi
1812	pushl	%ebp
1813	pushl	%ebx
1814	xorl	%ebx,%ebx
1815	movl	(%esi),%eax
1816	xorl	%ecx,%ecx
1817	movl	(%edi),%edx
1818
1819	xorl	%ebp,%ebp
1820
1821	mull	%edx
1822	addl	%eax,%ebx
1823	movl	20(%esp),%eax
1824	adcl	%edx,%ecx
1825	movl	(%edi),%edx
1826	adcl	$0,%ebp
1827	movl	%ebx,(%eax)
1828	movl	4(%esi),%eax
1829
1830
1831	xorl	%ebx,%ebx
1832
1833	mull	%edx
1834	addl	%eax,%ecx
1835	movl	(%esi),%eax
1836	adcl	%edx,%ebp
1837	movl	4(%edi),%edx
1838	adcl	$0,%ebx
1839
1840	mull	%edx
1841	addl	%eax,%ecx
1842	movl	20(%esp),%eax
1843	adcl	%edx,%ebp
1844	movl	(%edi),%edx
1845	adcl	$0,%ebx
1846	movl	%ecx,4(%eax)
1847	movl	8(%esi),%eax
1848
1849
1850	xorl	%ecx,%ecx
1851
1852	mull	%edx
1853	addl	%eax,%ebp
1854	movl	4(%esi),%eax
1855	adcl	%edx,%ebx
1856	movl	4(%edi),%edx
1857	adcl	$0,%ecx
1858
1859	mull	%edx
1860	addl	%eax,%ebp
1861	movl	(%esi),%eax
1862	adcl	%edx,%ebx
1863	movl	8(%edi),%edx
1864	adcl	$0,%ecx
1865
1866	mull	%edx
1867	addl	%eax,%ebp
1868	movl	20(%esp),%eax
1869	adcl	%edx,%ebx
1870	movl	(%edi),%edx
1871	adcl	$0,%ecx
1872	movl	%ebp,8(%eax)
1873	movl	12(%esi),%eax
1874
1875
1876	xorl	%ebp,%ebp
1877
1878	mull	%edx
1879	addl	%eax,%ebx
1880	movl	8(%esi),%eax
1881	adcl	%edx,%ecx
1882	movl	4(%edi),%edx
1883	adcl	$0,%ebp
1884
1885	mull	%edx
1886	addl	%eax,%ebx
1887	movl	4(%esi),%eax
1888	adcl	%edx,%ecx
1889	movl	8(%edi),%edx
1890	adcl	$0,%ebp
1891
1892	mull	%edx
1893	addl	%eax,%ebx
1894	movl	(%esi),%eax
1895	adcl	%edx,%ecx
1896	movl	12(%edi),%edx
1897	adcl	$0,%ebp
1898
1899	mull	%edx
1900	addl	%eax,%ebx
1901	movl	20(%esp),%eax
1902	adcl	%edx,%ecx
1903	movl	4(%edi),%edx
1904	adcl	$0,%ebp
1905	movl	%ebx,12(%eax)
1906	movl	12(%esi),%eax
1907
1908
1909	xorl	%ebx,%ebx
1910
1911	mull	%edx
1912	addl	%eax,%ecx
1913	movl	8(%esi),%eax
1914	adcl	%edx,%ebp
1915	movl	8(%edi),%edx
1916	adcl	$0,%ebx
1917
1918	mull	%edx
1919	addl	%eax,%ecx
1920	movl	4(%esi),%eax
1921	adcl	%edx,%ebp
1922	movl	12(%edi),%edx
1923	adcl	$0,%ebx
1924
1925	mull	%edx
1926	addl	%eax,%ecx
1927	movl	20(%esp),%eax
1928	adcl	%edx,%ebp
1929	movl	8(%edi),%edx
1930	adcl	$0,%ebx
1931	movl	%ecx,16(%eax)
1932	movl	12(%esi),%eax
1933
1934
1935	xorl	%ecx,%ecx
1936
1937	mull	%edx
1938	addl	%eax,%ebp
1939	movl	8(%esi),%eax
1940	adcl	%edx,%ebx
1941	movl	12(%edi),%edx
1942	adcl	$0,%ecx
1943
1944	mull	%edx
1945	addl	%eax,%ebp
1946	movl	20(%esp),%eax
1947	adcl	%edx,%ebx
1948	movl	12(%edi),%edx
1949	adcl	$0,%ecx
1950	movl	%ebp,20(%eax)
1951	movl	12(%esi),%eax
1952
1953
1954	xorl	%ebp,%ebp
1955
1956	mull	%edx
1957	addl	%eax,%ebx
1958	movl	20(%esp),%eax
1959	adcl	%edx,%ecx
1960	adcl	$0,%ebp
1961	movl	%ebx,24(%eax)
1962
1963
1964	movl	%ecx,28(%eax)
1965	popl	%ebx
1966	popl	%ebp
1967	popl	%edi
1968	popl	%esi
1969	ret
1970.size	bn_mul_comba4,.-.L_bn_mul_comba4_begin
1971.globl	bn_sqr_comba8
1972.type	bn_sqr_comba8,@function
1973.align	16
1974bn_sqr_comba8:
1975.L_bn_sqr_comba8_begin:
1976	pushl	%esi
1977	pushl	%edi
1978	pushl	%ebp
1979	pushl	%ebx
1980	movl	20(%esp),%edi
1981	movl	24(%esp),%esi
1982	xorl	%ebx,%ebx
1983	xorl	%ecx,%ecx
1984	movl	(%esi),%eax
1985
1986	xorl	%ebp,%ebp
1987
1988	mull	%eax
1989	addl	%eax,%ebx
1990	adcl	%edx,%ecx
1991	movl	(%esi),%edx
1992	adcl	$0,%ebp
1993	movl	%ebx,(%edi)
1994	movl	4(%esi),%eax
1995
1996
1997	xorl	%ebx,%ebx
1998
1999	mull	%edx
2000	addl	%eax,%eax
2001	adcl	%edx,%edx
2002	adcl	$0,%ebx
2003	addl	%eax,%ecx
2004	adcl	%edx,%ebp
2005	movl	8(%esi),%eax
2006	adcl	$0,%ebx
2007	movl	%ecx,4(%edi)
2008	movl	(%esi),%edx
2009
2010
2011	xorl	%ecx,%ecx
2012
2013	mull	%edx
2014	addl	%eax,%eax
2015	adcl	%edx,%edx
2016	adcl	$0,%ecx
2017	addl	%eax,%ebp
2018	adcl	%edx,%ebx
2019	movl	4(%esi),%eax
2020	adcl	$0,%ecx
2021
2022	mull	%eax
2023	addl	%eax,%ebp
2024	adcl	%edx,%ebx
2025	movl	(%esi),%edx
2026	adcl	$0,%ecx
2027	movl	%ebp,8(%edi)
2028	movl	12(%esi),%eax
2029
2030
2031	xorl	%ebp,%ebp
2032
2033	mull	%edx
2034	addl	%eax,%eax
2035	adcl	%edx,%edx
2036	adcl	$0,%ebp
2037	addl	%eax,%ebx
2038	adcl	%edx,%ecx
2039	movl	8(%esi),%eax
2040	adcl	$0,%ebp
2041	movl	4(%esi),%edx
2042
2043	mull	%edx
2044	addl	%eax,%eax
2045	adcl	%edx,%edx
2046	adcl	$0,%ebp
2047	addl	%eax,%ebx
2048	adcl	%edx,%ecx
2049	movl	16(%esi),%eax
2050	adcl	$0,%ebp
2051	movl	%ebx,12(%edi)
2052	movl	(%esi),%edx
2053
2054
2055	xorl	%ebx,%ebx
2056
2057	mull	%edx
2058	addl	%eax,%eax
2059	adcl	%edx,%edx
2060	adcl	$0,%ebx
2061	addl	%eax,%ecx
2062	adcl	%edx,%ebp
2063	movl	12(%esi),%eax
2064	adcl	$0,%ebx
2065	movl	4(%esi),%edx
2066
2067	mull	%edx
2068	addl	%eax,%eax
2069	adcl	%edx,%edx
2070	adcl	$0,%ebx
2071	addl	%eax,%ecx
2072	adcl	%edx,%ebp
2073	movl	8(%esi),%eax
2074	adcl	$0,%ebx
2075
2076	mull	%eax
2077	addl	%eax,%ecx
2078	adcl	%edx,%ebp
2079	movl	(%esi),%edx
2080	adcl	$0,%ebx
2081	movl	%ecx,16(%edi)
2082	movl	20(%esi),%eax
2083
2084
2085	xorl	%ecx,%ecx
2086
2087	mull	%edx
2088	addl	%eax,%eax
2089	adcl	%edx,%edx
2090	adcl	$0,%ecx
2091	addl	%eax,%ebp
2092	adcl	%edx,%ebx
2093	movl	16(%esi),%eax
2094	adcl	$0,%ecx
2095	movl	4(%esi),%edx
2096
2097	mull	%edx
2098	addl	%eax,%eax
2099	adcl	%edx,%edx
2100	adcl	$0,%ecx
2101	addl	%eax,%ebp
2102	adcl	%edx,%ebx
2103	movl	12(%esi),%eax
2104	adcl	$0,%ecx
2105	movl	8(%esi),%edx
2106
2107	mull	%edx
2108	addl	%eax,%eax
2109	adcl	%edx,%edx
2110	adcl	$0,%ecx
2111	addl	%eax,%ebp
2112	adcl	%edx,%ebx
2113	movl	24(%esi),%eax
2114	adcl	$0,%ecx
2115	movl	%ebp,20(%edi)
2116	movl	(%esi),%edx
2117
2118
2119	xorl	%ebp,%ebp
2120
2121	mull	%edx
2122	addl	%eax,%eax
2123	adcl	%edx,%edx
2124	adcl	$0,%ebp
2125	addl	%eax,%ebx
2126	adcl	%edx,%ecx
2127	movl	20(%esi),%eax
2128	adcl	$0,%ebp
2129	movl	4(%esi),%edx
2130
2131	mull	%edx
2132	addl	%eax,%eax
2133	adcl	%edx,%edx
2134	adcl	$0,%ebp
2135	addl	%eax,%ebx
2136	adcl	%edx,%ecx
2137	movl	16(%esi),%eax
2138	adcl	$0,%ebp
2139	movl	8(%esi),%edx
2140
2141	mull	%edx
2142	addl	%eax,%eax
2143	adcl	%edx,%edx
2144	adcl	$0,%ebp
2145	addl	%eax,%ebx
2146	adcl	%edx,%ecx
2147	movl	12(%esi),%eax
2148	adcl	$0,%ebp
2149
2150	mull	%eax
2151	addl	%eax,%ebx
2152	adcl	%edx,%ecx
2153	movl	(%esi),%edx
2154	adcl	$0,%ebp
2155	movl	%ebx,24(%edi)
2156	movl	28(%esi),%eax
2157
2158
2159	xorl	%ebx,%ebx
2160
2161	mull	%edx
2162	addl	%eax,%eax
2163	adcl	%edx,%edx
2164	adcl	$0,%ebx
2165	addl	%eax,%ecx
2166	adcl	%edx,%ebp
2167	movl	24(%esi),%eax
2168	adcl	$0,%ebx
2169	movl	4(%esi),%edx
2170
2171	mull	%edx
2172	addl	%eax,%eax
2173	adcl	%edx,%edx
2174	adcl	$0,%ebx
2175	addl	%eax,%ecx
2176	adcl	%edx,%ebp
2177	movl	20(%esi),%eax
2178	adcl	$0,%ebx
2179	movl	8(%esi),%edx
2180
2181	mull	%edx
2182	addl	%eax,%eax
2183	adcl	%edx,%edx
2184	adcl	$0,%ebx
2185	addl	%eax,%ecx
2186	adcl	%edx,%ebp
2187	movl	16(%esi),%eax
2188	adcl	$0,%ebx
2189	movl	12(%esi),%edx
2190
2191	mull	%edx
2192	addl	%eax,%eax
2193	adcl	%edx,%edx
2194	adcl	$0,%ebx
2195	addl	%eax,%ecx
2196	adcl	%edx,%ebp
2197	movl	28(%esi),%eax
2198	adcl	$0,%ebx
2199	movl	%ecx,28(%edi)
2200	movl	4(%esi),%edx
2201
2202
2203	xorl	%ecx,%ecx
2204
2205	mull	%edx
2206	addl	%eax,%eax
2207	adcl	%edx,%edx
2208	adcl	$0,%ecx
2209	addl	%eax,%ebp
2210	adcl	%edx,%ebx
2211	movl	24(%esi),%eax
2212	adcl	$0,%ecx
2213	movl	8(%esi),%edx
2214
2215	mull	%edx
2216	addl	%eax,%eax
2217	adcl	%edx,%edx
2218	adcl	$0,%ecx
2219	addl	%eax,%ebp
2220	adcl	%edx,%ebx
2221	movl	20(%esi),%eax
2222	adcl	$0,%ecx
2223	movl	12(%esi),%edx
2224
2225	mull	%edx
2226	addl	%eax,%eax
2227	adcl	%edx,%edx
2228	adcl	$0,%ecx
2229	addl	%eax,%ebp
2230	adcl	%edx,%ebx
2231	movl	16(%esi),%eax
2232	adcl	$0,%ecx
2233
2234	mull	%eax
2235	addl	%eax,%ebp
2236	adcl	%edx,%ebx
2237	movl	8(%esi),%edx
2238	adcl	$0,%ecx
2239	movl	%ebp,32(%edi)
2240	movl	28(%esi),%eax
2241
2242
2243	xorl	%ebp,%ebp
2244
2245	mull	%edx
2246	addl	%eax,%eax
2247	adcl	%edx,%edx
2248	adcl	$0,%ebp
2249	addl	%eax,%ebx
2250	adcl	%edx,%ecx
2251	movl	24(%esi),%eax
2252	adcl	$0,%ebp
2253	movl	12(%esi),%edx
2254
2255	mull	%edx
2256	addl	%eax,%eax
2257	adcl	%edx,%edx
2258	adcl	$0,%ebp
2259	addl	%eax,%ebx
2260	adcl	%edx,%ecx
2261	movl	20(%esi),%eax
2262	adcl	$0,%ebp
2263	movl	16(%esi),%edx
2264
2265	mull	%edx
2266	addl	%eax,%eax
2267	adcl	%edx,%edx
2268	adcl	$0,%ebp
2269	addl	%eax,%ebx
2270	adcl	%edx,%ecx
2271	movl	28(%esi),%eax
2272	adcl	$0,%ebp
2273	movl	%ebx,36(%edi)
2274	movl	12(%esi),%edx
2275
2276
2277	xorl	%ebx,%ebx
2278
2279	mull	%edx
2280	addl	%eax,%eax
2281	adcl	%edx,%edx
2282	adcl	$0,%ebx
2283	addl	%eax,%ecx
2284	adcl	%edx,%ebp
2285	movl	24(%esi),%eax
2286	adcl	$0,%ebx
2287	movl	16(%esi),%edx
2288
2289	mull	%edx
2290	addl	%eax,%eax
2291	adcl	%edx,%edx
2292	adcl	$0,%ebx
2293	addl	%eax,%ecx
2294	adcl	%edx,%ebp
2295	movl	20(%esi),%eax
2296	adcl	$0,%ebx
2297
2298	mull	%eax
2299	addl	%eax,%ecx
2300	adcl	%edx,%ebp
2301	movl	16(%esi),%edx
2302	adcl	$0,%ebx
2303	movl	%ecx,40(%edi)
2304	movl	28(%esi),%eax
2305
2306
2307	xorl	%ecx,%ecx
2308
2309	mull	%edx
2310	addl	%eax,%eax
2311	adcl	%edx,%edx
2312	adcl	$0,%ecx
2313	addl	%eax,%ebp
2314	adcl	%edx,%ebx
2315	movl	24(%esi),%eax
2316	adcl	$0,%ecx
2317	movl	20(%esi),%edx
2318
2319	mull	%edx
2320	addl	%eax,%eax
2321	adcl	%edx,%edx
2322	adcl	$0,%ecx
2323	addl	%eax,%ebp
2324	adcl	%edx,%ebx
2325	movl	28(%esi),%eax
2326	adcl	$0,%ecx
2327	movl	%ebp,44(%edi)
2328	movl	20(%esi),%edx
2329
2330
2331	xorl	%ebp,%ebp
2332
2333	mull	%edx
2334	addl	%eax,%eax
2335	adcl	%edx,%edx
2336	adcl	$0,%ebp
2337	addl	%eax,%ebx
2338	adcl	%edx,%ecx
2339	movl	24(%esi),%eax
2340	adcl	$0,%ebp
2341
2342	mull	%eax
2343	addl	%eax,%ebx
2344	adcl	%edx,%ecx
2345	movl	24(%esi),%edx
2346	adcl	$0,%ebp
2347	movl	%ebx,48(%edi)
2348	movl	28(%esi),%eax
2349
2350
2351	xorl	%ebx,%ebx
2352
2353	mull	%edx
2354	addl	%eax,%eax
2355	adcl	%edx,%edx
2356	adcl	$0,%ebx
2357	addl	%eax,%ecx
2358	adcl	%edx,%ebp
2359	movl	28(%esi),%eax
2360	adcl	$0,%ebx
2361	movl	%ecx,52(%edi)
2362
2363
2364	xorl	%ecx,%ecx
2365
2366	mull	%eax
2367	addl	%eax,%ebp
2368	adcl	%edx,%ebx
2369	adcl	$0,%ecx
2370	movl	%ebp,56(%edi)
2371
2372	movl	%ebx,60(%edi)
2373	popl	%ebx
2374	popl	%ebp
2375	popl	%edi
2376	popl	%esi
2377	ret
2378.size	bn_sqr_comba8,.-.L_bn_sqr_comba8_begin
2379.globl	bn_sqr_comba4
2380.type	bn_sqr_comba4,@function
2381.align	16
2382bn_sqr_comba4:
2383.L_bn_sqr_comba4_begin:
2384	pushl	%esi
2385	pushl	%edi
2386	pushl	%ebp
2387	pushl	%ebx
2388	movl	20(%esp),%edi
2389	movl	24(%esp),%esi
2390	xorl	%ebx,%ebx
2391	xorl	%ecx,%ecx
2392	movl	(%esi),%eax
2393
2394	xorl	%ebp,%ebp
2395
2396	mull	%eax
2397	addl	%eax,%ebx
2398	adcl	%edx,%ecx
2399	movl	(%esi),%edx
2400	adcl	$0,%ebp
2401	movl	%ebx,(%edi)
2402	movl	4(%esi),%eax
2403
2404
2405	xorl	%ebx,%ebx
2406
2407	mull	%edx
2408	addl	%eax,%eax
2409	adcl	%edx,%edx
2410	adcl	$0,%ebx
2411	addl	%eax,%ecx
2412	adcl	%edx,%ebp
2413	movl	8(%esi),%eax
2414	adcl	$0,%ebx
2415	movl	%ecx,4(%edi)
2416	movl	(%esi),%edx
2417
2418
2419	xorl	%ecx,%ecx
2420
2421	mull	%edx
2422	addl	%eax,%eax
2423	adcl	%edx,%edx
2424	adcl	$0,%ecx
2425	addl	%eax,%ebp
2426	adcl	%edx,%ebx
2427	movl	4(%esi),%eax
2428	adcl	$0,%ecx
2429
2430	mull	%eax
2431	addl	%eax,%ebp
2432	adcl	%edx,%ebx
2433	movl	(%esi),%edx
2434	adcl	$0,%ecx
2435	movl	%ebp,8(%edi)
2436	movl	12(%esi),%eax
2437
2438
2439	xorl	%ebp,%ebp
2440
2441	mull	%edx
2442	addl	%eax,%eax
2443	adcl	%edx,%edx
2444	adcl	$0,%ebp
2445	addl	%eax,%ebx
2446	adcl	%edx,%ecx
2447	movl	8(%esi),%eax
2448	adcl	$0,%ebp
2449	movl	4(%esi),%edx
2450
2451	mull	%edx
2452	addl	%eax,%eax
2453	adcl	%edx,%edx
2454	adcl	$0,%ebp
2455	addl	%eax,%ebx
2456	adcl	%edx,%ecx
2457	movl	12(%esi),%eax
2458	adcl	$0,%ebp
2459	movl	%ebx,12(%edi)
2460	movl	4(%esi),%edx
2461
2462
2463	xorl	%ebx,%ebx
2464
2465	mull	%edx
2466	addl	%eax,%eax
2467	adcl	%edx,%edx
2468	adcl	$0,%ebx
2469	addl	%eax,%ecx
2470	adcl	%edx,%ebp
2471	movl	8(%esi),%eax
2472	adcl	$0,%ebx
2473
2474	mull	%eax
2475	addl	%eax,%ecx
2476	adcl	%edx,%ebp
2477	movl	8(%esi),%edx
2478	adcl	$0,%ebx
2479	movl	%ecx,16(%edi)
2480	movl	12(%esi),%eax
2481
2482
2483	xorl	%ecx,%ecx
2484
2485	mull	%edx
2486	addl	%eax,%eax
2487	adcl	%edx,%edx
2488	adcl	$0,%ecx
2489	addl	%eax,%ebp
2490	adcl	%edx,%ebx
2491	movl	12(%esi),%eax
2492	adcl	$0,%ecx
2493	movl	%ebp,20(%edi)
2494
2495
2496	xorl	%ebp,%ebp
2497
2498	mull	%eax
2499	addl	%eax,%ebx
2500	adcl	%edx,%ecx
2501	adcl	$0,%ebp
2502	movl	%ebx,24(%edi)
2503
2504	movl	%ecx,28(%edi)
2505	popl	%ebx
2506	popl	%ebp
2507	popl	%edi
2508	popl	%esi
2509	ret
2510.size	bn_sqr_comba4,.-.L_bn_sqr_comba4_begin
2511#endif
2512