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