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