VirtualBox

source: vbox/trunk/src/libs/openssl-3.1.0/crypto/genasm-macosx/co-586.S@ 99507

最後變更 在這個檔案從99507是 97372,由 vboxsync 提交於 2 年 前

libs: Switch to openssl-3.0.7, bugref:10317

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

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