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