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