VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1j/crypto/genasm-macosx/co-586.S@ 88461

Last change on this file since 88461 was 83531, checked in by vboxsync, 5 years ago

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette