xref: /aosp_15_r20/external/cronet/third_party/boringssl/src/gen/bcm/co-586-linux.S (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1// This file is generated from a similarly-named Perl script in the BoringSSL
2// source tree. Do not edit by hand.
3
4#include <openssl/asm_base.h>
5
6#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__)
7.text
8.globl	bn_mul_comba8
9.hidden	bn_mul_comba8
10.type	bn_mul_comba8,@function
11.align	16
12bn_mul_comba8:
13.L_bn_mul_comba8_begin:
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.hidden	bn_mul_comba4
555.type	bn_mul_comba4,@function
556.align	16
557bn_mul_comba4:
558.L_bn_mul_comba4_begin:
559	pushl	%esi
560	movl	12(%esp),%esi
561	pushl	%edi
562	movl	20(%esp),%edi
563	pushl	%ebp
564	pushl	%ebx
565	xorl	%ebx,%ebx
566	movl	(%esi),%eax
567	xorl	%ecx,%ecx
568	movl	(%edi),%edx
569
570	xorl	%ebp,%ebp
571
572	mull	%edx
573	addl	%eax,%ebx
574	movl	20(%esp),%eax
575	adcl	%edx,%ecx
576	movl	(%edi),%edx
577	adcl	$0,%ebp
578	movl	%ebx,(%eax)
579	movl	4(%esi),%eax
580
581
582	xorl	%ebx,%ebx
583
584	mull	%edx
585	addl	%eax,%ecx
586	movl	(%esi),%eax
587	adcl	%edx,%ebp
588	movl	4(%edi),%edx
589	adcl	$0,%ebx
590
591	mull	%edx
592	addl	%eax,%ecx
593	movl	20(%esp),%eax
594	adcl	%edx,%ebp
595	movl	(%edi),%edx
596	adcl	$0,%ebx
597	movl	%ecx,4(%eax)
598	movl	8(%esi),%eax
599
600
601	xorl	%ecx,%ecx
602
603	mull	%edx
604	addl	%eax,%ebp
605	movl	4(%esi),%eax
606	adcl	%edx,%ebx
607	movl	4(%edi),%edx
608	adcl	$0,%ecx
609
610	mull	%edx
611	addl	%eax,%ebp
612	movl	(%esi),%eax
613	adcl	%edx,%ebx
614	movl	8(%edi),%edx
615	adcl	$0,%ecx
616
617	mull	%edx
618	addl	%eax,%ebp
619	movl	20(%esp),%eax
620	adcl	%edx,%ebx
621	movl	(%edi),%edx
622	adcl	$0,%ecx
623	movl	%ebp,8(%eax)
624	movl	12(%esi),%eax
625
626
627	xorl	%ebp,%ebp
628
629	mull	%edx
630	addl	%eax,%ebx
631	movl	8(%esi),%eax
632	adcl	%edx,%ecx
633	movl	4(%edi),%edx
634	adcl	$0,%ebp
635
636	mull	%edx
637	addl	%eax,%ebx
638	movl	4(%esi),%eax
639	adcl	%edx,%ecx
640	movl	8(%edi),%edx
641	adcl	$0,%ebp
642
643	mull	%edx
644	addl	%eax,%ebx
645	movl	(%esi),%eax
646	adcl	%edx,%ecx
647	movl	12(%edi),%edx
648	adcl	$0,%ebp
649
650	mull	%edx
651	addl	%eax,%ebx
652	movl	20(%esp),%eax
653	adcl	%edx,%ecx
654	movl	4(%edi),%edx
655	adcl	$0,%ebp
656	movl	%ebx,12(%eax)
657	movl	12(%esi),%eax
658
659
660	xorl	%ebx,%ebx
661
662	mull	%edx
663	addl	%eax,%ecx
664	movl	8(%esi),%eax
665	adcl	%edx,%ebp
666	movl	8(%edi),%edx
667	adcl	$0,%ebx
668
669	mull	%edx
670	addl	%eax,%ecx
671	movl	4(%esi),%eax
672	adcl	%edx,%ebp
673	movl	12(%edi),%edx
674	adcl	$0,%ebx
675
676	mull	%edx
677	addl	%eax,%ecx
678	movl	20(%esp),%eax
679	adcl	%edx,%ebp
680	movl	8(%edi),%edx
681	adcl	$0,%ebx
682	movl	%ecx,16(%eax)
683	movl	12(%esi),%eax
684
685
686	xorl	%ecx,%ecx
687
688	mull	%edx
689	addl	%eax,%ebp
690	movl	8(%esi),%eax
691	adcl	%edx,%ebx
692	movl	12(%edi),%edx
693	adcl	$0,%ecx
694
695	mull	%edx
696	addl	%eax,%ebp
697	movl	20(%esp),%eax
698	adcl	%edx,%ebx
699	movl	12(%edi),%edx
700	adcl	$0,%ecx
701	movl	%ebp,20(%eax)
702	movl	12(%esi),%eax
703
704
705	xorl	%ebp,%ebp
706
707	mull	%edx
708	addl	%eax,%ebx
709	movl	20(%esp),%eax
710	adcl	%edx,%ecx
711	adcl	$0,%ebp
712	movl	%ebx,24(%eax)
713
714
715	movl	%ecx,28(%eax)
716	popl	%ebx
717	popl	%ebp
718	popl	%edi
719	popl	%esi
720	ret
721.size	bn_mul_comba4,.-.L_bn_mul_comba4_begin
722.globl	bn_sqr_comba8
723.hidden	bn_sqr_comba8
724.type	bn_sqr_comba8,@function
725.align	16
726bn_sqr_comba8:
727.L_bn_sqr_comba8_begin:
728	pushl	%esi
729	pushl	%edi
730	pushl	%ebp
731	pushl	%ebx
732	movl	20(%esp),%edi
733	movl	24(%esp),%esi
734	xorl	%ebx,%ebx
735	xorl	%ecx,%ecx
736	movl	(%esi),%eax
737
738	xorl	%ebp,%ebp
739
740	mull	%eax
741	addl	%eax,%ebx
742	adcl	%edx,%ecx
743	movl	(%esi),%edx
744	adcl	$0,%ebp
745	movl	%ebx,(%edi)
746	movl	4(%esi),%eax
747
748
749	xorl	%ebx,%ebx
750
751	mull	%edx
752	addl	%eax,%eax
753	adcl	%edx,%edx
754	adcl	$0,%ebx
755	addl	%eax,%ecx
756	adcl	%edx,%ebp
757	movl	8(%esi),%eax
758	adcl	$0,%ebx
759	movl	%ecx,4(%edi)
760	movl	(%esi),%edx
761
762
763	xorl	%ecx,%ecx
764
765	mull	%edx
766	addl	%eax,%eax
767	adcl	%edx,%edx
768	adcl	$0,%ecx
769	addl	%eax,%ebp
770	adcl	%edx,%ebx
771	movl	4(%esi),%eax
772	adcl	$0,%ecx
773
774	mull	%eax
775	addl	%eax,%ebp
776	adcl	%edx,%ebx
777	movl	(%esi),%edx
778	adcl	$0,%ecx
779	movl	%ebp,8(%edi)
780	movl	12(%esi),%eax
781
782
783	xorl	%ebp,%ebp
784
785	mull	%edx
786	addl	%eax,%eax
787	adcl	%edx,%edx
788	adcl	$0,%ebp
789	addl	%eax,%ebx
790	adcl	%edx,%ecx
791	movl	8(%esi),%eax
792	adcl	$0,%ebp
793	movl	4(%esi),%edx
794
795	mull	%edx
796	addl	%eax,%eax
797	adcl	%edx,%edx
798	adcl	$0,%ebp
799	addl	%eax,%ebx
800	adcl	%edx,%ecx
801	movl	16(%esi),%eax
802	adcl	$0,%ebp
803	movl	%ebx,12(%edi)
804	movl	(%esi),%edx
805
806
807	xorl	%ebx,%ebx
808
809	mull	%edx
810	addl	%eax,%eax
811	adcl	%edx,%edx
812	adcl	$0,%ebx
813	addl	%eax,%ecx
814	adcl	%edx,%ebp
815	movl	12(%esi),%eax
816	adcl	$0,%ebx
817	movl	4(%esi),%edx
818
819	mull	%edx
820	addl	%eax,%eax
821	adcl	%edx,%edx
822	adcl	$0,%ebx
823	addl	%eax,%ecx
824	adcl	%edx,%ebp
825	movl	8(%esi),%eax
826	adcl	$0,%ebx
827
828	mull	%eax
829	addl	%eax,%ecx
830	adcl	%edx,%ebp
831	movl	(%esi),%edx
832	adcl	$0,%ebx
833	movl	%ecx,16(%edi)
834	movl	20(%esi),%eax
835
836
837	xorl	%ecx,%ecx
838
839	mull	%edx
840	addl	%eax,%eax
841	adcl	%edx,%edx
842	adcl	$0,%ecx
843	addl	%eax,%ebp
844	adcl	%edx,%ebx
845	movl	16(%esi),%eax
846	adcl	$0,%ecx
847	movl	4(%esi),%edx
848
849	mull	%edx
850	addl	%eax,%eax
851	adcl	%edx,%edx
852	adcl	$0,%ecx
853	addl	%eax,%ebp
854	adcl	%edx,%ebx
855	movl	12(%esi),%eax
856	adcl	$0,%ecx
857	movl	8(%esi),%edx
858
859	mull	%edx
860	addl	%eax,%eax
861	adcl	%edx,%edx
862	adcl	$0,%ecx
863	addl	%eax,%ebp
864	adcl	%edx,%ebx
865	movl	24(%esi),%eax
866	adcl	$0,%ecx
867	movl	%ebp,20(%edi)
868	movl	(%esi),%edx
869
870
871	xorl	%ebp,%ebp
872
873	mull	%edx
874	addl	%eax,%eax
875	adcl	%edx,%edx
876	adcl	$0,%ebp
877	addl	%eax,%ebx
878	adcl	%edx,%ecx
879	movl	20(%esi),%eax
880	adcl	$0,%ebp
881	movl	4(%esi),%edx
882
883	mull	%edx
884	addl	%eax,%eax
885	adcl	%edx,%edx
886	adcl	$0,%ebp
887	addl	%eax,%ebx
888	adcl	%edx,%ecx
889	movl	16(%esi),%eax
890	adcl	$0,%ebp
891	movl	8(%esi),%edx
892
893	mull	%edx
894	addl	%eax,%eax
895	adcl	%edx,%edx
896	adcl	$0,%ebp
897	addl	%eax,%ebx
898	adcl	%edx,%ecx
899	movl	12(%esi),%eax
900	adcl	$0,%ebp
901
902	mull	%eax
903	addl	%eax,%ebx
904	adcl	%edx,%ecx
905	movl	(%esi),%edx
906	adcl	$0,%ebp
907	movl	%ebx,24(%edi)
908	movl	28(%esi),%eax
909
910
911	xorl	%ebx,%ebx
912
913	mull	%edx
914	addl	%eax,%eax
915	adcl	%edx,%edx
916	adcl	$0,%ebx
917	addl	%eax,%ecx
918	adcl	%edx,%ebp
919	movl	24(%esi),%eax
920	adcl	$0,%ebx
921	movl	4(%esi),%edx
922
923	mull	%edx
924	addl	%eax,%eax
925	adcl	%edx,%edx
926	adcl	$0,%ebx
927	addl	%eax,%ecx
928	adcl	%edx,%ebp
929	movl	20(%esi),%eax
930	adcl	$0,%ebx
931	movl	8(%esi),%edx
932
933	mull	%edx
934	addl	%eax,%eax
935	adcl	%edx,%edx
936	adcl	$0,%ebx
937	addl	%eax,%ecx
938	adcl	%edx,%ebp
939	movl	16(%esi),%eax
940	adcl	$0,%ebx
941	movl	12(%esi),%edx
942
943	mull	%edx
944	addl	%eax,%eax
945	adcl	%edx,%edx
946	adcl	$0,%ebx
947	addl	%eax,%ecx
948	adcl	%edx,%ebp
949	movl	28(%esi),%eax
950	adcl	$0,%ebx
951	movl	%ecx,28(%edi)
952	movl	4(%esi),%edx
953
954
955	xorl	%ecx,%ecx
956
957	mull	%edx
958	addl	%eax,%eax
959	adcl	%edx,%edx
960	adcl	$0,%ecx
961	addl	%eax,%ebp
962	adcl	%edx,%ebx
963	movl	24(%esi),%eax
964	adcl	$0,%ecx
965	movl	8(%esi),%edx
966
967	mull	%edx
968	addl	%eax,%eax
969	adcl	%edx,%edx
970	adcl	$0,%ecx
971	addl	%eax,%ebp
972	adcl	%edx,%ebx
973	movl	20(%esi),%eax
974	adcl	$0,%ecx
975	movl	12(%esi),%edx
976
977	mull	%edx
978	addl	%eax,%eax
979	adcl	%edx,%edx
980	adcl	$0,%ecx
981	addl	%eax,%ebp
982	adcl	%edx,%ebx
983	movl	16(%esi),%eax
984	adcl	$0,%ecx
985
986	mull	%eax
987	addl	%eax,%ebp
988	adcl	%edx,%ebx
989	movl	8(%esi),%edx
990	adcl	$0,%ecx
991	movl	%ebp,32(%edi)
992	movl	28(%esi),%eax
993
994
995	xorl	%ebp,%ebp
996
997	mull	%edx
998	addl	%eax,%eax
999	adcl	%edx,%edx
1000	adcl	$0,%ebp
1001	addl	%eax,%ebx
1002	adcl	%edx,%ecx
1003	movl	24(%esi),%eax
1004	adcl	$0,%ebp
1005	movl	12(%esi),%edx
1006
1007	mull	%edx
1008	addl	%eax,%eax
1009	adcl	%edx,%edx
1010	adcl	$0,%ebp
1011	addl	%eax,%ebx
1012	adcl	%edx,%ecx
1013	movl	20(%esi),%eax
1014	adcl	$0,%ebp
1015	movl	16(%esi),%edx
1016
1017	mull	%edx
1018	addl	%eax,%eax
1019	adcl	%edx,%edx
1020	adcl	$0,%ebp
1021	addl	%eax,%ebx
1022	adcl	%edx,%ecx
1023	movl	28(%esi),%eax
1024	adcl	$0,%ebp
1025	movl	%ebx,36(%edi)
1026	movl	12(%esi),%edx
1027
1028
1029	xorl	%ebx,%ebx
1030
1031	mull	%edx
1032	addl	%eax,%eax
1033	adcl	%edx,%edx
1034	adcl	$0,%ebx
1035	addl	%eax,%ecx
1036	adcl	%edx,%ebp
1037	movl	24(%esi),%eax
1038	adcl	$0,%ebx
1039	movl	16(%esi),%edx
1040
1041	mull	%edx
1042	addl	%eax,%eax
1043	adcl	%edx,%edx
1044	adcl	$0,%ebx
1045	addl	%eax,%ecx
1046	adcl	%edx,%ebp
1047	movl	20(%esi),%eax
1048	adcl	$0,%ebx
1049
1050	mull	%eax
1051	addl	%eax,%ecx
1052	adcl	%edx,%ebp
1053	movl	16(%esi),%edx
1054	adcl	$0,%ebx
1055	movl	%ecx,40(%edi)
1056	movl	28(%esi),%eax
1057
1058
1059	xorl	%ecx,%ecx
1060
1061	mull	%edx
1062	addl	%eax,%eax
1063	adcl	%edx,%edx
1064	adcl	$0,%ecx
1065	addl	%eax,%ebp
1066	adcl	%edx,%ebx
1067	movl	24(%esi),%eax
1068	adcl	$0,%ecx
1069	movl	20(%esi),%edx
1070
1071	mull	%edx
1072	addl	%eax,%eax
1073	adcl	%edx,%edx
1074	adcl	$0,%ecx
1075	addl	%eax,%ebp
1076	adcl	%edx,%ebx
1077	movl	28(%esi),%eax
1078	adcl	$0,%ecx
1079	movl	%ebp,44(%edi)
1080	movl	20(%esi),%edx
1081
1082
1083	xorl	%ebp,%ebp
1084
1085	mull	%edx
1086	addl	%eax,%eax
1087	adcl	%edx,%edx
1088	adcl	$0,%ebp
1089	addl	%eax,%ebx
1090	adcl	%edx,%ecx
1091	movl	24(%esi),%eax
1092	adcl	$0,%ebp
1093
1094	mull	%eax
1095	addl	%eax,%ebx
1096	adcl	%edx,%ecx
1097	movl	24(%esi),%edx
1098	adcl	$0,%ebp
1099	movl	%ebx,48(%edi)
1100	movl	28(%esi),%eax
1101
1102
1103	xorl	%ebx,%ebx
1104
1105	mull	%edx
1106	addl	%eax,%eax
1107	adcl	%edx,%edx
1108	adcl	$0,%ebx
1109	addl	%eax,%ecx
1110	adcl	%edx,%ebp
1111	movl	28(%esi),%eax
1112	adcl	$0,%ebx
1113	movl	%ecx,52(%edi)
1114
1115
1116	xorl	%ecx,%ecx
1117
1118	mull	%eax
1119	addl	%eax,%ebp
1120	adcl	%edx,%ebx
1121	adcl	$0,%ecx
1122	movl	%ebp,56(%edi)
1123
1124	movl	%ebx,60(%edi)
1125	popl	%ebx
1126	popl	%ebp
1127	popl	%edi
1128	popl	%esi
1129	ret
1130.size	bn_sqr_comba8,.-.L_bn_sqr_comba8_begin
1131.globl	bn_sqr_comba4
1132.hidden	bn_sqr_comba4
1133.type	bn_sqr_comba4,@function
1134.align	16
1135bn_sqr_comba4:
1136.L_bn_sqr_comba4_begin:
1137	pushl	%esi
1138	pushl	%edi
1139	pushl	%ebp
1140	pushl	%ebx
1141	movl	20(%esp),%edi
1142	movl	24(%esp),%esi
1143	xorl	%ebx,%ebx
1144	xorl	%ecx,%ecx
1145	movl	(%esi),%eax
1146
1147	xorl	%ebp,%ebp
1148
1149	mull	%eax
1150	addl	%eax,%ebx
1151	adcl	%edx,%ecx
1152	movl	(%esi),%edx
1153	adcl	$0,%ebp
1154	movl	%ebx,(%edi)
1155	movl	4(%esi),%eax
1156
1157
1158	xorl	%ebx,%ebx
1159
1160	mull	%edx
1161	addl	%eax,%eax
1162	adcl	%edx,%edx
1163	adcl	$0,%ebx
1164	addl	%eax,%ecx
1165	adcl	%edx,%ebp
1166	movl	8(%esi),%eax
1167	adcl	$0,%ebx
1168	movl	%ecx,4(%edi)
1169	movl	(%esi),%edx
1170
1171
1172	xorl	%ecx,%ecx
1173
1174	mull	%edx
1175	addl	%eax,%eax
1176	adcl	%edx,%edx
1177	adcl	$0,%ecx
1178	addl	%eax,%ebp
1179	adcl	%edx,%ebx
1180	movl	4(%esi),%eax
1181	adcl	$0,%ecx
1182
1183	mull	%eax
1184	addl	%eax,%ebp
1185	adcl	%edx,%ebx
1186	movl	(%esi),%edx
1187	adcl	$0,%ecx
1188	movl	%ebp,8(%edi)
1189	movl	12(%esi),%eax
1190
1191
1192	xorl	%ebp,%ebp
1193
1194	mull	%edx
1195	addl	%eax,%eax
1196	adcl	%edx,%edx
1197	adcl	$0,%ebp
1198	addl	%eax,%ebx
1199	adcl	%edx,%ecx
1200	movl	8(%esi),%eax
1201	adcl	$0,%ebp
1202	movl	4(%esi),%edx
1203
1204	mull	%edx
1205	addl	%eax,%eax
1206	adcl	%edx,%edx
1207	adcl	$0,%ebp
1208	addl	%eax,%ebx
1209	adcl	%edx,%ecx
1210	movl	12(%esi),%eax
1211	adcl	$0,%ebp
1212	movl	%ebx,12(%edi)
1213	movl	4(%esi),%edx
1214
1215
1216	xorl	%ebx,%ebx
1217
1218	mull	%edx
1219	addl	%eax,%eax
1220	adcl	%edx,%edx
1221	adcl	$0,%ebx
1222	addl	%eax,%ecx
1223	adcl	%edx,%ebp
1224	movl	8(%esi),%eax
1225	adcl	$0,%ebx
1226
1227	mull	%eax
1228	addl	%eax,%ecx
1229	adcl	%edx,%ebp
1230	movl	8(%esi),%edx
1231	adcl	$0,%ebx
1232	movl	%ecx,16(%edi)
1233	movl	12(%esi),%eax
1234
1235
1236	xorl	%ecx,%ecx
1237
1238	mull	%edx
1239	addl	%eax,%eax
1240	adcl	%edx,%edx
1241	adcl	$0,%ecx
1242	addl	%eax,%ebp
1243	adcl	%edx,%ebx
1244	movl	12(%esi),%eax
1245	adcl	$0,%ecx
1246	movl	%ebp,20(%edi)
1247
1248
1249	xorl	%ebp,%ebp
1250
1251	mull	%eax
1252	addl	%eax,%ebx
1253	adcl	%edx,%ecx
1254	adcl	$0,%ebp
1255	movl	%ebx,24(%edi)
1256
1257	movl	%ecx,28(%edi)
1258	popl	%ebx
1259	popl	%ebp
1260	popl	%edi
1261	popl	%esi
1262	ret
1263.size	bn_sqr_comba4,.-.L_bn_sqr_comba4_begin
1264#endif  // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__)
1265