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