Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Side by Side Diff: openssl/crypto/bn/asm/modexp512-x86_64.S

Issue 2072073002: Delete bundled copy of OpenSSL and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/openssl@master
Patch Set: Delete bundled copy of OpenSSL and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « openssl/crypto/bn/asm/mips3-mont.pl ('k') | openssl/crypto/bn/asm/modexp512-x86_64.pl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 .text
2
3 .type MULADD_128x512,@function
4 .align 16
5 MULADD_128x512:
6 movq 0(%rsi),%rax
7 mulq %rbp
8 addq %rax,%r8
9 adcq $0,%rdx
10 movq %r8,0(%rcx)
11 movq %rdx,%rbx
12
13 movq 8(%rsi),%rax
14 mulq %rbp
15 addq %rax,%r9
16 adcq $0,%rdx
17 addq %rbx,%r9
18 adcq $0,%rdx
19 movq %rdx,%rbx
20
21 movq 16(%rsi),%rax
22 mulq %rbp
23 addq %rax,%r10
24 adcq $0,%rdx
25 addq %rbx,%r10
26 adcq $0,%rdx
27 movq %rdx,%rbx
28
29 movq 24(%rsi),%rax
30 mulq %rbp
31 addq %rax,%r11
32 adcq $0,%rdx
33 addq %rbx,%r11
34 adcq $0,%rdx
35 movq %rdx,%rbx
36
37 movq 32(%rsi),%rax
38 mulq %rbp
39 addq %rax,%r12
40 adcq $0,%rdx
41 addq %rbx,%r12
42 adcq $0,%rdx
43 movq %rdx,%rbx
44
45 movq 40(%rsi),%rax
46 mulq %rbp
47 addq %rax,%r13
48 adcq $0,%rdx
49 addq %rbx,%r13
50 adcq $0,%rdx
51 movq %rdx,%rbx
52
53 movq 48(%rsi),%rax
54 mulq %rbp
55 addq %rax,%r14
56 adcq $0,%rdx
57 addq %rbx,%r14
58 adcq $0,%rdx
59 movq %rdx,%rbx
60
61 movq 56(%rsi),%rax
62 mulq %rbp
63 addq %rax,%r15
64 adcq $0,%rdx
65 addq %rbx,%r15
66 adcq $0,%rdx
67 movq %rdx,%r8
68 movq 8(%rdi),%rbp
69 movq 0(%rsi),%rax
70 mulq %rbp
71 addq %rax,%r9
72 adcq $0,%rdx
73 movq %r9,8(%rcx)
74 movq %rdx,%rbx
75
76 movq 8(%rsi),%rax
77 mulq %rbp
78 addq %rax,%r10
79 adcq $0,%rdx
80 addq %rbx,%r10
81 adcq $0,%rdx
82 movq %rdx,%rbx
83
84 movq 16(%rsi),%rax
85 mulq %rbp
86 addq %rax,%r11
87 adcq $0,%rdx
88 addq %rbx,%r11
89 adcq $0,%rdx
90 movq %rdx,%rbx
91
92 movq 24(%rsi),%rax
93 mulq %rbp
94 addq %rax,%r12
95 adcq $0,%rdx
96 addq %rbx,%r12
97 adcq $0,%rdx
98 movq %rdx,%rbx
99
100 movq 32(%rsi),%rax
101 mulq %rbp
102 addq %rax,%r13
103 adcq $0,%rdx
104 addq %rbx,%r13
105 adcq $0,%rdx
106 movq %rdx,%rbx
107
108 movq 40(%rsi),%rax
109 mulq %rbp
110 addq %rax,%r14
111 adcq $0,%rdx
112 addq %rbx,%r14
113 adcq $0,%rdx
114 movq %rdx,%rbx
115
116 movq 48(%rsi),%rax
117 mulq %rbp
118 addq %rax,%r15
119 adcq $0,%rdx
120 addq %rbx,%r15
121 adcq $0,%rdx
122 movq %rdx,%rbx
123
124 movq 56(%rsi),%rax
125 mulq %rbp
126 addq %rax,%r8
127 adcq $0,%rdx
128 addq %rbx,%r8
129 adcq $0,%rdx
130 movq %rdx,%r9
131 .byte 0xf3,0xc3
132 .size MULADD_128x512,.-MULADD_128x512
133 .type mont_reduce,@function
134 .align 16
135 mont_reduce:
136 leaq 192(%rsp),%rdi
137 movq 32(%rsp),%rsi
138 addq $576,%rsi
139 leaq 520(%rsp),%rcx
140
141 movq 96(%rcx),%rbp
142 movq 0(%rsi),%rax
143 mulq %rbp
144 movq (%rcx),%r8
145 addq %rax,%r8
146 adcq $0,%rdx
147 movq %r8,0(%rdi)
148 movq %rdx,%rbx
149
150 movq 8(%rsi),%rax
151 mulq %rbp
152 movq 8(%rcx),%r9
153 addq %rax,%r9
154 adcq $0,%rdx
155 addq %rbx,%r9
156 adcq $0,%rdx
157 movq %rdx,%rbx
158
159 movq 16(%rsi),%rax
160 mulq %rbp
161 movq 16(%rcx),%r10
162 addq %rax,%r10
163 adcq $0,%rdx
164 addq %rbx,%r10
165 adcq $0,%rdx
166 movq %rdx,%rbx
167
168 movq 24(%rsi),%rax
169 mulq %rbp
170 movq 24(%rcx),%r11
171 addq %rax,%r11
172 adcq $0,%rdx
173 addq %rbx,%r11
174 adcq $0,%rdx
175 movq %rdx,%rbx
176
177 movq 32(%rsi),%rax
178 mulq %rbp
179 movq 32(%rcx),%r12
180 addq %rax,%r12
181 adcq $0,%rdx
182 addq %rbx,%r12
183 adcq $0,%rdx
184 movq %rdx,%rbx
185
186 movq 40(%rsi),%rax
187 mulq %rbp
188 movq 40(%rcx),%r13
189 addq %rax,%r13
190 adcq $0,%rdx
191 addq %rbx,%r13
192 adcq $0,%rdx
193 movq %rdx,%rbx
194
195 movq 48(%rsi),%rax
196 mulq %rbp
197 movq 48(%rcx),%r14
198 addq %rax,%r14
199 adcq $0,%rdx
200 addq %rbx,%r14
201 adcq $0,%rdx
202 movq %rdx,%rbx
203
204 movq 56(%rsi),%rax
205 mulq %rbp
206 movq 56(%rcx),%r15
207 addq %rax,%r15
208 adcq $0,%rdx
209 addq %rbx,%r15
210 adcq $0,%rdx
211 movq %rdx,%r8
212 movq 104(%rcx),%rbp
213 movq 0(%rsi),%rax
214 mulq %rbp
215 addq %rax,%r9
216 adcq $0,%rdx
217 movq %r9,8(%rdi)
218 movq %rdx,%rbx
219
220 movq 8(%rsi),%rax
221 mulq %rbp
222 addq %rax,%r10
223 adcq $0,%rdx
224 addq %rbx,%r10
225 adcq $0,%rdx
226 movq %rdx,%rbx
227
228 movq 16(%rsi),%rax
229 mulq %rbp
230 addq %rax,%r11
231 adcq $0,%rdx
232 addq %rbx,%r11
233 adcq $0,%rdx
234 movq %rdx,%rbx
235
236 movq 24(%rsi),%rax
237 mulq %rbp
238 addq %rax,%r12
239 adcq $0,%rdx
240 addq %rbx,%r12
241 adcq $0,%rdx
242 movq %rdx,%rbx
243
244 movq 32(%rsi),%rax
245 mulq %rbp
246 addq %rax,%r13
247 adcq $0,%rdx
248 addq %rbx,%r13
249 adcq $0,%rdx
250 movq %rdx,%rbx
251
252 movq 40(%rsi),%rax
253 mulq %rbp
254 addq %rax,%r14
255 adcq $0,%rdx
256 addq %rbx,%r14
257 adcq $0,%rdx
258 movq %rdx,%rbx
259
260 movq 48(%rsi),%rax
261 mulq %rbp
262 addq %rax,%r15
263 adcq $0,%rdx
264 addq %rbx,%r15
265 adcq $0,%rdx
266 movq %rdx,%rbx
267
268 movq 56(%rsi),%rax
269 mulq %rbp
270 addq %rax,%r8
271 adcq $0,%rdx
272 addq %rbx,%r8
273 adcq $0,%rdx
274 movq %rdx,%r9
275 movq 112(%rcx),%rbp
276 movq 0(%rsi),%rax
277 mulq %rbp
278 addq %rax,%r10
279 adcq $0,%rdx
280 movq %r10,16(%rdi)
281 movq %rdx,%rbx
282
283 movq 8(%rsi),%rax
284 mulq %rbp
285 addq %rax,%r11
286 adcq $0,%rdx
287 addq %rbx,%r11
288 adcq $0,%rdx
289 movq %rdx,%rbx
290
291 movq 16(%rsi),%rax
292 mulq %rbp
293 addq %rax,%r12
294 adcq $0,%rdx
295 addq %rbx,%r12
296 adcq $0,%rdx
297 movq %rdx,%rbx
298
299 movq 24(%rsi),%rax
300 mulq %rbp
301 addq %rax,%r13
302 adcq $0,%rdx
303 addq %rbx,%r13
304 adcq $0,%rdx
305 movq %rdx,%rbx
306
307 movq 32(%rsi),%rax
308 mulq %rbp
309 addq %rax,%r14
310 adcq $0,%rdx
311 addq %rbx,%r14
312 adcq $0,%rdx
313 movq %rdx,%rbx
314
315 movq 40(%rsi),%rax
316 mulq %rbp
317 addq %rax,%r15
318 adcq $0,%rdx
319 addq %rbx,%r15
320 adcq $0,%rdx
321 movq %rdx,%rbx
322
323 movq 48(%rsi),%rax
324 mulq %rbp
325 addq %rax,%r8
326 adcq $0,%rdx
327 addq %rbx,%r8
328 adcq $0,%rdx
329 movq %rdx,%rbx
330
331 movq 56(%rsi),%rax
332 mulq %rbp
333 addq %rax,%r9
334 adcq $0,%rdx
335 addq %rbx,%r9
336 adcq $0,%rdx
337 movq %rdx,%r10
338 movq 120(%rcx),%rbp
339 movq 0(%rsi),%rax
340 mulq %rbp
341 addq %rax,%r11
342 adcq $0,%rdx
343 movq %r11,24(%rdi)
344 movq %rdx,%rbx
345
346 movq 8(%rsi),%rax
347 mulq %rbp
348 addq %rax,%r12
349 adcq $0,%rdx
350 addq %rbx,%r12
351 adcq $0,%rdx
352 movq %rdx,%rbx
353
354 movq 16(%rsi),%rax
355 mulq %rbp
356 addq %rax,%r13
357 adcq $0,%rdx
358 addq %rbx,%r13
359 adcq $0,%rdx
360 movq %rdx,%rbx
361
362 movq 24(%rsi),%rax
363 mulq %rbp
364 addq %rax,%r14
365 adcq $0,%rdx
366 addq %rbx,%r14
367 adcq $0,%rdx
368 movq %rdx,%rbx
369
370 movq 32(%rsi),%rax
371 mulq %rbp
372 addq %rax,%r15
373 adcq $0,%rdx
374 addq %rbx,%r15
375 adcq $0,%rdx
376 movq %rdx,%rbx
377
378 movq 40(%rsi),%rax
379 mulq %rbp
380 addq %rax,%r8
381 adcq $0,%rdx
382 addq %rbx,%r8
383 adcq $0,%rdx
384 movq %rdx,%rbx
385
386 movq 48(%rsi),%rax
387 mulq %rbp
388 addq %rax,%r9
389 adcq $0,%rdx
390 addq %rbx,%r9
391 adcq $0,%rdx
392 movq %rdx,%rbx
393
394 movq 56(%rsi),%rax
395 mulq %rbp
396 addq %rax,%r10
397 adcq $0,%rdx
398 addq %rbx,%r10
399 adcq $0,%rdx
400 movq %rdx,%r11
401 xorq %rax,%rax
402
403 addq 64(%rcx),%r8
404 adcq 72(%rcx),%r9
405 adcq 80(%rcx),%r10
406 adcq 88(%rcx),%r11
407 adcq $0,%rax
408
409
410
411
412 movq %r8,64(%rdi)
413 movq %r9,72(%rdi)
414 movq %r10,%rbp
415 movq %r11,88(%rdi)
416
417 movq %rax,384(%rsp)
418
419 movq 0(%rdi),%r8
420 movq 8(%rdi),%r9
421 movq 16(%rdi),%r10
422 movq 24(%rdi),%r11
423
424
425
426
427
428
429
430
431 addq $80,%rdi
432
433 addq $64,%rsi
434 leaq 296(%rsp),%rcx
435
436 call MULADD_128x512
437
438 movq 384(%rsp),%rax
439
440
441 addq -16(%rdi),%r8
442 adcq -8(%rdi),%r9
443 movq %r8,64(%rcx)
444 movq %r9,72(%rcx)
445
446 adcq %rax,%rax
447 movq %rax,384(%rsp)
448
449 leaq 192(%rsp),%rdi
450 addq $64,%rsi
451
452
453
454
455
456 movq (%rsi),%r8
457 movq 8(%rsi),%rbx
458
459 movq (%rcx),%rax
460 mulq %r8
461 movq %rax,%rbp
462 movq %rdx,%r9
463
464 movq 8(%rcx),%rax
465 mulq %r8
466 addq %rax,%r9
467
468 movq (%rcx),%rax
469 mulq %rbx
470 addq %rax,%r9
471
472 movq %r9,8(%rdi)
473
474
475 subq $192,%rsi
476
477 movq (%rcx),%r8
478 movq 8(%rcx),%r9
479
480 call MULADD_128x512
481
482
483
484
485 movq 0(%rsi),%rax
486 movq 8(%rsi),%rbx
487 movq 16(%rsi),%rdi
488 movq 24(%rsi),%rdx
489
490
491 movq 384(%rsp),%rbp
492
493 addq 64(%rcx),%r8
494 adcq 72(%rcx),%r9
495
496
497 adcq %rbp,%rbp
498
499
500
501 shlq $3,%rbp
502 movq 32(%rsp),%rcx
503 addq %rcx,%rbp
504
505
506 xorq %rsi,%rsi
507
508 addq 0(%rbp),%r10
509 adcq 64(%rbp),%r11
510 adcq 128(%rbp),%r12
511 adcq 192(%rbp),%r13
512 adcq 256(%rbp),%r14
513 adcq 320(%rbp),%r15
514 adcq 384(%rbp),%r8
515 adcq 448(%rbp),%r9
516
517
518
519 sbbq $0,%rsi
520
521
522 andq %rsi,%rax
523 andq %rsi,%rbx
524 andq %rsi,%rdi
525 andq %rsi,%rdx
526
527 movq $1,%rbp
528 subq %rax,%r10
529 sbbq %rbx,%r11
530 sbbq %rdi,%r12
531 sbbq %rdx,%r13
532
533
534
535
536 sbbq $0,%rbp
537
538
539
540 addq $512,%rcx
541 movq 32(%rcx),%rax
542 movq 40(%rcx),%rbx
543 movq 48(%rcx),%rdi
544 movq 56(%rcx),%rdx
545
546
547
548 andq %rsi,%rax
549 andq %rsi,%rbx
550 andq %rsi,%rdi
551 andq %rsi,%rdx
552
553
554
555 subq $1,%rbp
556
557 sbbq %rax,%r14
558 sbbq %rbx,%r15
559 sbbq %rdi,%r8
560 sbbq %rdx,%r9
561
562
563
564 movq 144(%rsp),%rsi
565 movq %r10,0(%rsi)
566 movq %r11,8(%rsi)
567 movq %r12,16(%rsi)
568 movq %r13,24(%rsi)
569 movq %r14,32(%rsi)
570 movq %r15,40(%rsi)
571 movq %r8,48(%rsi)
572 movq %r9,56(%rsi)
573
574 .byte 0xf3,0xc3
575 .size mont_reduce,.-mont_reduce
576 .type mont_mul_a3b,@function
577 .align 16
578 mont_mul_a3b:
579
580
581
582
583 movq 0(%rdi),%rbp
584
585 movq %r10,%rax
586 mulq %rbp
587 movq %rax,520(%rsp)
588 movq %rdx,%r10
589 movq %r11,%rax
590 mulq %rbp
591 addq %rax,%r10
592 adcq $0,%rdx
593 movq %rdx,%r11
594 movq %r12,%rax
595 mulq %rbp
596 addq %rax,%r11
597 adcq $0,%rdx
598 movq %rdx,%r12
599 movq %r13,%rax
600 mulq %rbp
601 addq %rax,%r12
602 adcq $0,%rdx
603 movq %rdx,%r13
604 movq %r14,%rax
605 mulq %rbp
606 addq %rax,%r13
607 adcq $0,%rdx
608 movq %rdx,%r14
609 movq %r15,%rax
610 mulq %rbp
611 addq %rax,%r14
612 adcq $0,%rdx
613 movq %rdx,%r15
614 movq %r8,%rax
615 mulq %rbp
616 addq %rax,%r15
617 adcq $0,%rdx
618 movq %rdx,%r8
619 movq %r9,%rax
620 mulq %rbp
621 addq %rax,%r8
622 adcq $0,%rdx
623 movq %rdx,%r9
624 movq 8(%rdi),%rbp
625 movq 0(%rsi),%rax
626 mulq %rbp
627 addq %rax,%r10
628 adcq $0,%rdx
629 movq %r10,528(%rsp)
630 movq %rdx,%rbx
631
632 movq 8(%rsi),%rax
633 mulq %rbp
634 addq %rax,%r11
635 adcq $0,%rdx
636 addq %rbx,%r11
637 adcq $0,%rdx
638 movq %rdx,%rbx
639
640 movq 16(%rsi),%rax
641 mulq %rbp
642 addq %rax,%r12
643 adcq $0,%rdx
644 addq %rbx,%r12
645 adcq $0,%rdx
646 movq %rdx,%rbx
647
648 movq 24(%rsi),%rax
649 mulq %rbp
650 addq %rax,%r13
651 adcq $0,%rdx
652 addq %rbx,%r13
653 adcq $0,%rdx
654 movq %rdx,%rbx
655
656 movq 32(%rsi),%rax
657 mulq %rbp
658 addq %rax,%r14
659 adcq $0,%rdx
660 addq %rbx,%r14
661 adcq $0,%rdx
662 movq %rdx,%rbx
663
664 movq 40(%rsi),%rax
665 mulq %rbp
666 addq %rax,%r15
667 adcq $0,%rdx
668 addq %rbx,%r15
669 adcq $0,%rdx
670 movq %rdx,%rbx
671
672 movq 48(%rsi),%rax
673 mulq %rbp
674 addq %rax,%r8
675 adcq $0,%rdx
676 addq %rbx,%r8
677 adcq $0,%rdx
678 movq %rdx,%rbx
679
680 movq 56(%rsi),%rax
681 mulq %rbp
682 addq %rax,%r9
683 adcq $0,%rdx
684 addq %rbx,%r9
685 adcq $0,%rdx
686 movq %rdx,%r10
687 movq 16(%rdi),%rbp
688 movq 0(%rsi),%rax
689 mulq %rbp
690 addq %rax,%r11
691 adcq $0,%rdx
692 movq %r11,536(%rsp)
693 movq %rdx,%rbx
694
695 movq 8(%rsi),%rax
696 mulq %rbp
697 addq %rax,%r12
698 adcq $0,%rdx
699 addq %rbx,%r12
700 adcq $0,%rdx
701 movq %rdx,%rbx
702
703 movq 16(%rsi),%rax
704 mulq %rbp
705 addq %rax,%r13
706 adcq $0,%rdx
707 addq %rbx,%r13
708 adcq $0,%rdx
709 movq %rdx,%rbx
710
711 movq 24(%rsi),%rax
712 mulq %rbp
713 addq %rax,%r14
714 adcq $0,%rdx
715 addq %rbx,%r14
716 adcq $0,%rdx
717 movq %rdx,%rbx
718
719 movq 32(%rsi),%rax
720 mulq %rbp
721 addq %rax,%r15
722 adcq $0,%rdx
723 addq %rbx,%r15
724 adcq $0,%rdx
725 movq %rdx,%rbx
726
727 movq 40(%rsi),%rax
728 mulq %rbp
729 addq %rax,%r8
730 adcq $0,%rdx
731 addq %rbx,%r8
732 adcq $0,%rdx
733 movq %rdx,%rbx
734
735 movq 48(%rsi),%rax
736 mulq %rbp
737 addq %rax,%r9
738 adcq $0,%rdx
739 addq %rbx,%r9
740 adcq $0,%rdx
741 movq %rdx,%rbx
742
743 movq 56(%rsi),%rax
744 mulq %rbp
745 addq %rax,%r10
746 adcq $0,%rdx
747 addq %rbx,%r10
748 adcq $0,%rdx
749 movq %rdx,%r11
750 movq 24(%rdi),%rbp
751 movq 0(%rsi),%rax
752 mulq %rbp
753 addq %rax,%r12
754 adcq $0,%rdx
755 movq %r12,544(%rsp)
756 movq %rdx,%rbx
757
758 movq 8(%rsi),%rax
759 mulq %rbp
760 addq %rax,%r13
761 adcq $0,%rdx
762 addq %rbx,%r13
763 adcq $0,%rdx
764 movq %rdx,%rbx
765
766 movq 16(%rsi),%rax
767 mulq %rbp
768 addq %rax,%r14
769 adcq $0,%rdx
770 addq %rbx,%r14
771 adcq $0,%rdx
772 movq %rdx,%rbx
773
774 movq 24(%rsi),%rax
775 mulq %rbp
776 addq %rax,%r15
777 adcq $0,%rdx
778 addq %rbx,%r15
779 adcq $0,%rdx
780 movq %rdx,%rbx
781
782 movq 32(%rsi),%rax
783 mulq %rbp
784 addq %rax,%r8
785 adcq $0,%rdx
786 addq %rbx,%r8
787 adcq $0,%rdx
788 movq %rdx,%rbx
789
790 movq 40(%rsi),%rax
791 mulq %rbp
792 addq %rax,%r9
793 adcq $0,%rdx
794 addq %rbx,%r9
795 adcq $0,%rdx
796 movq %rdx,%rbx
797
798 movq 48(%rsi),%rax
799 mulq %rbp
800 addq %rax,%r10
801 adcq $0,%rdx
802 addq %rbx,%r10
803 adcq $0,%rdx
804 movq %rdx,%rbx
805
806 movq 56(%rsi),%rax
807 mulq %rbp
808 addq %rax,%r11
809 adcq $0,%rdx
810 addq %rbx,%r11
811 adcq $0,%rdx
812 movq %rdx,%r12
813 movq 32(%rdi),%rbp
814 movq 0(%rsi),%rax
815 mulq %rbp
816 addq %rax,%r13
817 adcq $0,%rdx
818 movq %r13,552(%rsp)
819 movq %rdx,%rbx
820
821 movq 8(%rsi),%rax
822 mulq %rbp
823 addq %rax,%r14
824 adcq $0,%rdx
825 addq %rbx,%r14
826 adcq $0,%rdx
827 movq %rdx,%rbx
828
829 movq 16(%rsi),%rax
830 mulq %rbp
831 addq %rax,%r15
832 adcq $0,%rdx
833 addq %rbx,%r15
834 adcq $0,%rdx
835 movq %rdx,%rbx
836
837 movq 24(%rsi),%rax
838 mulq %rbp
839 addq %rax,%r8
840 adcq $0,%rdx
841 addq %rbx,%r8
842 adcq $0,%rdx
843 movq %rdx,%rbx
844
845 movq 32(%rsi),%rax
846 mulq %rbp
847 addq %rax,%r9
848 adcq $0,%rdx
849 addq %rbx,%r9
850 adcq $0,%rdx
851 movq %rdx,%rbx
852
853 movq 40(%rsi),%rax
854 mulq %rbp
855 addq %rax,%r10
856 adcq $0,%rdx
857 addq %rbx,%r10
858 adcq $0,%rdx
859 movq %rdx,%rbx
860
861 movq 48(%rsi),%rax
862 mulq %rbp
863 addq %rax,%r11
864 adcq $0,%rdx
865 addq %rbx,%r11
866 adcq $0,%rdx
867 movq %rdx,%rbx
868
869 movq 56(%rsi),%rax
870 mulq %rbp
871 addq %rax,%r12
872 adcq $0,%rdx
873 addq %rbx,%r12
874 adcq $0,%rdx
875 movq %rdx,%r13
876 movq 40(%rdi),%rbp
877 movq 0(%rsi),%rax
878 mulq %rbp
879 addq %rax,%r14
880 adcq $0,%rdx
881 movq %r14,560(%rsp)
882 movq %rdx,%rbx
883
884 movq 8(%rsi),%rax
885 mulq %rbp
886 addq %rax,%r15
887 adcq $0,%rdx
888 addq %rbx,%r15
889 adcq $0,%rdx
890 movq %rdx,%rbx
891
892 movq 16(%rsi),%rax
893 mulq %rbp
894 addq %rax,%r8
895 adcq $0,%rdx
896 addq %rbx,%r8
897 adcq $0,%rdx
898 movq %rdx,%rbx
899
900 movq 24(%rsi),%rax
901 mulq %rbp
902 addq %rax,%r9
903 adcq $0,%rdx
904 addq %rbx,%r9
905 adcq $0,%rdx
906 movq %rdx,%rbx
907
908 movq 32(%rsi),%rax
909 mulq %rbp
910 addq %rax,%r10
911 adcq $0,%rdx
912 addq %rbx,%r10
913 adcq $0,%rdx
914 movq %rdx,%rbx
915
916 movq 40(%rsi),%rax
917 mulq %rbp
918 addq %rax,%r11
919 adcq $0,%rdx
920 addq %rbx,%r11
921 adcq $0,%rdx
922 movq %rdx,%rbx
923
924 movq 48(%rsi),%rax
925 mulq %rbp
926 addq %rax,%r12
927 adcq $0,%rdx
928 addq %rbx,%r12
929 adcq $0,%rdx
930 movq %rdx,%rbx
931
932 movq 56(%rsi),%rax
933 mulq %rbp
934 addq %rax,%r13
935 adcq $0,%rdx
936 addq %rbx,%r13
937 adcq $0,%rdx
938 movq %rdx,%r14
939 movq 48(%rdi),%rbp
940 movq 0(%rsi),%rax
941 mulq %rbp
942 addq %rax,%r15
943 adcq $0,%rdx
944 movq %r15,568(%rsp)
945 movq %rdx,%rbx
946
947 movq 8(%rsi),%rax
948 mulq %rbp
949 addq %rax,%r8
950 adcq $0,%rdx
951 addq %rbx,%r8
952 adcq $0,%rdx
953 movq %rdx,%rbx
954
955 movq 16(%rsi),%rax
956 mulq %rbp
957 addq %rax,%r9
958 adcq $0,%rdx
959 addq %rbx,%r9
960 adcq $0,%rdx
961 movq %rdx,%rbx
962
963 movq 24(%rsi),%rax
964 mulq %rbp
965 addq %rax,%r10
966 adcq $0,%rdx
967 addq %rbx,%r10
968 adcq $0,%rdx
969 movq %rdx,%rbx
970
971 movq 32(%rsi),%rax
972 mulq %rbp
973 addq %rax,%r11
974 adcq $0,%rdx
975 addq %rbx,%r11
976 adcq $0,%rdx
977 movq %rdx,%rbx
978
979 movq 40(%rsi),%rax
980 mulq %rbp
981 addq %rax,%r12
982 adcq $0,%rdx
983 addq %rbx,%r12
984 adcq $0,%rdx
985 movq %rdx,%rbx
986
987 movq 48(%rsi),%rax
988 mulq %rbp
989 addq %rax,%r13
990 adcq $0,%rdx
991 addq %rbx,%r13
992 adcq $0,%rdx
993 movq %rdx,%rbx
994
995 movq 56(%rsi),%rax
996 mulq %rbp
997 addq %rax,%r14
998 adcq $0,%rdx
999 addq %rbx,%r14
1000 adcq $0,%rdx
1001 movq %rdx,%r15
1002 movq 56(%rdi),%rbp
1003 movq 0(%rsi),%rax
1004 mulq %rbp
1005 addq %rax,%r8
1006 adcq $0,%rdx
1007 movq %r8,576(%rsp)
1008 movq %rdx,%rbx
1009
1010 movq 8(%rsi),%rax
1011 mulq %rbp
1012 addq %rax,%r9
1013 adcq $0,%rdx
1014 addq %rbx,%r9
1015 adcq $0,%rdx
1016 movq %rdx,%rbx
1017
1018 movq 16(%rsi),%rax
1019 mulq %rbp
1020 addq %rax,%r10
1021 adcq $0,%rdx
1022 addq %rbx,%r10
1023 adcq $0,%rdx
1024 movq %rdx,%rbx
1025
1026 movq 24(%rsi),%rax
1027 mulq %rbp
1028 addq %rax,%r11
1029 adcq $0,%rdx
1030 addq %rbx,%r11
1031 adcq $0,%rdx
1032 movq %rdx,%rbx
1033
1034 movq 32(%rsi),%rax
1035 mulq %rbp
1036 addq %rax,%r12
1037 adcq $0,%rdx
1038 addq %rbx,%r12
1039 adcq $0,%rdx
1040 movq %rdx,%rbx
1041
1042 movq 40(%rsi),%rax
1043 mulq %rbp
1044 addq %rax,%r13
1045 adcq $0,%rdx
1046 addq %rbx,%r13
1047 adcq $0,%rdx
1048 movq %rdx,%rbx
1049
1050 movq 48(%rsi),%rax
1051 mulq %rbp
1052 addq %rax,%r14
1053 adcq $0,%rdx
1054 addq %rbx,%r14
1055 adcq $0,%rdx
1056 movq %rdx,%rbx
1057
1058 movq 56(%rsi),%rax
1059 mulq %rbp
1060 addq %rax,%r15
1061 adcq $0,%rdx
1062 addq %rbx,%r15
1063 adcq $0,%rdx
1064 movq %rdx,%r8
1065 movq %r9,584(%rsp)
1066 movq %r10,592(%rsp)
1067 movq %r11,600(%rsp)
1068 movq %r12,608(%rsp)
1069 movq %r13,616(%rsp)
1070 movq %r14,624(%rsp)
1071 movq %r15,632(%rsp)
1072 movq %r8,640(%rsp)
1073
1074
1075
1076
1077
1078 jmp mont_reduce
1079
1080
1081 .size mont_mul_a3b,.-mont_mul_a3b
1082 .type sqr_reduce,@function
1083 .align 16
1084 sqr_reduce:
1085 movq 16(%rsp),%rcx
1086
1087
1088
1089 movq %r10,%rbx
1090
1091 movq %r11,%rax
1092 mulq %rbx
1093 movq %rax,528(%rsp)
1094 movq %rdx,%r10
1095 movq %r12,%rax
1096 mulq %rbx
1097 addq %rax,%r10
1098 adcq $0,%rdx
1099 movq %rdx,%r11
1100 movq %r13,%rax
1101 mulq %rbx
1102 addq %rax,%r11
1103 adcq $0,%rdx
1104 movq %rdx,%r12
1105 movq %r14,%rax
1106 mulq %rbx
1107 addq %rax,%r12
1108 adcq $0,%rdx
1109 movq %rdx,%r13
1110 movq %r15,%rax
1111 mulq %rbx
1112 addq %rax,%r13
1113 adcq $0,%rdx
1114 movq %rdx,%r14
1115 movq %r8,%rax
1116 mulq %rbx
1117 addq %rax,%r14
1118 adcq $0,%rdx
1119 movq %rdx,%r15
1120 movq %r9,%rax
1121 mulq %rbx
1122 addq %rax,%r15
1123 adcq $0,%rdx
1124 movq %rdx,%rsi
1125
1126 movq %r10,536(%rsp)
1127
1128
1129
1130
1131
1132 movq 8(%rcx),%rbx
1133
1134 movq 16(%rcx),%rax
1135 mulq %rbx
1136 addq %rax,%r11
1137 adcq $0,%rdx
1138 movq %r11,544(%rsp)
1139
1140 movq %rdx,%r10
1141 movq 24(%rcx),%rax
1142 mulq %rbx
1143 addq %rax,%r12
1144 adcq $0,%rdx
1145 addq %r10,%r12
1146 adcq $0,%rdx
1147 movq %r12,552(%rsp)
1148
1149 movq %rdx,%r10
1150 movq 32(%rcx),%rax
1151 mulq %rbx
1152 addq %rax,%r13
1153 adcq $0,%rdx
1154 addq %r10,%r13
1155 adcq $0,%rdx
1156
1157 movq %rdx,%r10
1158 movq 40(%rcx),%rax
1159 mulq %rbx
1160 addq %rax,%r14
1161 adcq $0,%rdx
1162 addq %r10,%r14
1163 adcq $0,%rdx
1164
1165 movq %rdx,%r10
1166 movq %r8,%rax
1167 mulq %rbx
1168 addq %rax,%r15
1169 adcq $0,%rdx
1170 addq %r10,%r15
1171 adcq $0,%rdx
1172
1173 movq %rdx,%r10
1174 movq %r9,%rax
1175 mulq %rbx
1176 addq %rax,%rsi
1177 adcq $0,%rdx
1178 addq %r10,%rsi
1179 adcq $0,%rdx
1180
1181 movq %rdx,%r11
1182
1183
1184
1185
1186 movq 16(%rcx),%rbx
1187
1188 movq 24(%rcx),%rax
1189 mulq %rbx
1190 addq %rax,%r13
1191 adcq $0,%rdx
1192 movq %r13,560(%rsp)
1193
1194 movq %rdx,%r10
1195 movq 32(%rcx),%rax
1196 mulq %rbx
1197 addq %rax,%r14
1198 adcq $0,%rdx
1199 addq %r10,%r14
1200 adcq $0,%rdx
1201 movq %r14,568(%rsp)
1202
1203 movq %rdx,%r10
1204 movq 40(%rcx),%rax
1205 mulq %rbx
1206 addq %rax,%r15
1207 adcq $0,%rdx
1208 addq %r10,%r15
1209 adcq $0,%rdx
1210
1211 movq %rdx,%r10
1212 movq %r8,%rax
1213 mulq %rbx
1214 addq %rax,%rsi
1215 adcq $0,%rdx
1216 addq %r10,%rsi
1217 adcq $0,%rdx
1218
1219 movq %rdx,%r10
1220 movq %r9,%rax
1221 mulq %rbx
1222 addq %rax,%r11
1223 adcq $0,%rdx
1224 addq %r10,%r11
1225 adcq $0,%rdx
1226
1227 movq %rdx,%r12
1228
1229
1230
1231
1232
1233 movq 24(%rcx),%rbx
1234
1235 movq 32(%rcx),%rax
1236 mulq %rbx
1237 addq %rax,%r15
1238 adcq $0,%rdx
1239 movq %r15,576(%rsp)
1240
1241 movq %rdx,%r10
1242 movq 40(%rcx),%rax
1243 mulq %rbx
1244 addq %rax,%rsi
1245 adcq $0,%rdx
1246 addq %r10,%rsi
1247 adcq $0,%rdx
1248 movq %rsi,584(%rsp)
1249
1250 movq %rdx,%r10
1251 movq %r8,%rax
1252 mulq %rbx
1253 addq %rax,%r11
1254 adcq $0,%rdx
1255 addq %r10,%r11
1256 adcq $0,%rdx
1257
1258 movq %rdx,%r10
1259 movq %r9,%rax
1260 mulq %rbx
1261 addq %rax,%r12
1262 adcq $0,%rdx
1263 addq %r10,%r12
1264 adcq $0,%rdx
1265
1266 movq %rdx,%r15
1267
1268
1269
1270
1271 movq 32(%rcx),%rbx
1272
1273 movq 40(%rcx),%rax
1274 mulq %rbx
1275 addq %rax,%r11
1276 adcq $0,%rdx
1277 movq %r11,592(%rsp)
1278
1279 movq %rdx,%r10
1280 movq %r8,%rax
1281 mulq %rbx
1282 addq %rax,%r12
1283 adcq $0,%rdx
1284 addq %r10,%r12
1285 adcq $0,%rdx
1286 movq %r12,600(%rsp)
1287
1288 movq %rdx,%r10
1289 movq %r9,%rax
1290 mulq %rbx
1291 addq %rax,%r15
1292 adcq $0,%rdx
1293 addq %r10,%r15
1294 adcq $0,%rdx
1295
1296 movq %rdx,%r11
1297
1298
1299
1300
1301 movq 40(%rcx),%rbx
1302
1303 movq %r8,%rax
1304 mulq %rbx
1305 addq %rax,%r15
1306 adcq $0,%rdx
1307 movq %r15,608(%rsp)
1308
1309 movq %rdx,%r10
1310 movq %r9,%rax
1311 mulq %rbx
1312 addq %rax,%r11
1313 adcq $0,%rdx
1314 addq %r10,%r11
1315 adcq $0,%rdx
1316 movq %r11,616(%rsp)
1317
1318 movq %rdx,%r12
1319
1320
1321
1322
1323 movq %r8,%rbx
1324
1325 movq %r9,%rax
1326 mulq %rbx
1327 addq %rax,%r12
1328 adcq $0,%rdx
1329 movq %r12,624(%rsp)
1330
1331 movq %rdx,632(%rsp)
1332
1333
1334 movq 528(%rsp),%r10
1335 movq 536(%rsp),%r11
1336 movq 544(%rsp),%r12
1337 movq 552(%rsp),%r13
1338 movq 560(%rsp),%r14
1339 movq 568(%rsp),%r15
1340
1341 movq 24(%rcx),%rax
1342 mulq %rax
1343 movq %rax,%rdi
1344 movq %rdx,%r8
1345
1346 addq %r10,%r10
1347 adcq %r11,%r11
1348 adcq %r12,%r12
1349 adcq %r13,%r13
1350 adcq %r14,%r14
1351 adcq %r15,%r15
1352 adcq $0,%r8
1353
1354 movq 0(%rcx),%rax
1355 mulq %rax
1356 movq %rax,520(%rsp)
1357 movq %rdx,%rbx
1358
1359 movq 8(%rcx),%rax
1360 mulq %rax
1361
1362 addq %rbx,%r10
1363 adcq %rax,%r11
1364 adcq $0,%rdx
1365
1366 movq %rdx,%rbx
1367 movq %r10,528(%rsp)
1368 movq %r11,536(%rsp)
1369
1370 movq 16(%rcx),%rax
1371 mulq %rax
1372
1373 addq %rbx,%r12
1374 adcq %rax,%r13
1375 adcq $0,%rdx
1376
1377 movq %rdx,%rbx
1378
1379 movq %r12,544(%rsp)
1380 movq %r13,552(%rsp)
1381
1382 xorq %rbp,%rbp
1383 addq %rbx,%r14
1384 adcq %rdi,%r15
1385 adcq $0,%rbp
1386
1387 movq %r14,560(%rsp)
1388 movq %r15,568(%rsp)
1389
1390
1391
1392
1393 movq 576(%rsp),%r10
1394 movq 584(%rsp),%r11
1395 movq 592(%rsp),%r12
1396 movq 600(%rsp),%r13
1397 movq 608(%rsp),%r14
1398 movq 616(%rsp),%r15
1399 movq 624(%rsp),%rdi
1400 movq 632(%rsp),%rsi
1401
1402 movq %r9,%rax
1403 mulq %rax
1404 movq %rax,%r9
1405 movq %rdx,%rbx
1406
1407 addq %r10,%r10
1408 adcq %r11,%r11
1409 adcq %r12,%r12
1410 adcq %r13,%r13
1411 adcq %r14,%r14
1412 adcq %r15,%r15
1413 adcq %rdi,%rdi
1414 adcq %rsi,%rsi
1415 adcq $0,%rbx
1416
1417 addq %rbp,%r10
1418
1419 movq 32(%rcx),%rax
1420 mulq %rax
1421
1422 addq %r8,%r10
1423 adcq %rax,%r11
1424 adcq $0,%rdx
1425
1426 movq %rdx,%rbp
1427
1428 movq %r10,576(%rsp)
1429 movq %r11,584(%rsp)
1430
1431 movq 40(%rcx),%rax
1432 mulq %rax
1433
1434 addq %rbp,%r12
1435 adcq %rax,%r13
1436 adcq $0,%rdx
1437
1438 movq %rdx,%rbp
1439
1440 movq %r12,592(%rsp)
1441 movq %r13,600(%rsp)
1442
1443 movq 48(%rcx),%rax
1444 mulq %rax
1445
1446 addq %rbp,%r14
1447 adcq %rax,%r15
1448 adcq $0,%rdx
1449
1450 movq %r14,608(%rsp)
1451 movq %r15,616(%rsp)
1452
1453 addq %rdx,%rdi
1454 adcq %r9,%rsi
1455 adcq $0,%rbx
1456
1457 movq %rdi,624(%rsp)
1458 movq %rsi,632(%rsp)
1459 movq %rbx,640(%rsp)
1460
1461 jmp mont_reduce
1462
1463
1464 .size sqr_reduce,.-sqr_reduce
1465 .globl mod_exp_512
1466 .type mod_exp_512,@function
1467 mod_exp_512:
1468 pushq %rbp
1469 pushq %rbx
1470 pushq %r12
1471 pushq %r13
1472 pushq %r14
1473 pushq %r15
1474
1475
1476 movq %rsp,%r8
1477 subq $2688,%rsp
1478 andq $-64,%rsp
1479
1480
1481 movq %r8,0(%rsp)
1482 movq %rdi,8(%rsp)
1483 movq %rsi,16(%rsp)
1484 movq %rcx,24(%rsp)
1485 .Lbody:
1486
1487
1488
1489 pxor %xmm4,%xmm4
1490 movdqu 0(%rsi),%xmm0
1491 movdqu 16(%rsi),%xmm1
1492 movdqu 32(%rsi),%xmm2
1493 movdqu 48(%rsi),%xmm3
1494 movdqa %xmm4,512(%rsp)
1495 movdqa %xmm4,528(%rsp)
1496 movdqa %xmm4,608(%rsp)
1497 movdqa %xmm4,624(%rsp)
1498 movdqa %xmm0,544(%rsp)
1499 movdqa %xmm1,560(%rsp)
1500 movdqa %xmm2,576(%rsp)
1501 movdqa %xmm3,592(%rsp)
1502
1503
1504 movdqu 0(%rdx),%xmm0
1505 movdqu 16(%rdx),%xmm1
1506 movdqu 32(%rdx),%xmm2
1507 movdqu 48(%rdx),%xmm3
1508
1509 leaq 384(%rsp),%rbx
1510 movq %rbx,136(%rsp)
1511 call mont_reduce
1512
1513
1514 leaq 448(%rsp),%rcx
1515 xorq %rax,%rax
1516 movq %rax,0(%rcx)
1517 movq %rax,8(%rcx)
1518 movq %rax,24(%rcx)
1519 movq %rax,32(%rcx)
1520 movq %rax,40(%rcx)
1521 movq %rax,48(%rcx)
1522 movq %rax,56(%rcx)
1523 movq %rax,128(%rsp)
1524 movq $1,16(%rcx)
1525
1526 leaq 640(%rsp),%rbp
1527 movq %rcx,%rsi
1528 movq %rbp,%rdi
1529 movq $8,%rax
1530 loop_0:
1531 movq (%rcx),%rbx
1532 movw %bx,(%rdi)
1533 shrq $16,%rbx
1534 movw %bx,64(%rdi)
1535 shrq $16,%rbx
1536 movw %bx,128(%rdi)
1537 shrq $16,%rbx
1538 movw %bx,192(%rdi)
1539 leaq 8(%rcx),%rcx
1540 leaq 256(%rdi),%rdi
1541 decq %rax
1542 jnz loop_0
1543 movq $31,%rax
1544 movq %rax,32(%rsp)
1545 movq %rbp,40(%rsp)
1546
1547 movq %rsi,136(%rsp)
1548 movq 0(%rsi),%r10
1549 movq 8(%rsi),%r11
1550 movq 16(%rsi),%r12
1551 movq 24(%rsi),%r13
1552 movq 32(%rsi),%r14
1553 movq 40(%rsi),%r15
1554 movq 48(%rsi),%r8
1555 movq 56(%rsi),%r9
1556 init_loop:
1557 leaq 384(%rsp),%rdi
1558 call mont_mul_a3b
1559 leaq 448(%rsp),%rsi
1560 movq 40(%rsp),%rbp
1561 addq $2,%rbp
1562 movq %rbp,40(%rsp)
1563 movq %rsi,%rcx
1564 movq $8,%rax
1565 loop_1:
1566 movq (%rcx),%rbx
1567 movw %bx,(%rbp)
1568 shrq $16,%rbx
1569 movw %bx,64(%rbp)
1570 shrq $16,%rbx
1571 movw %bx,128(%rbp)
1572 shrq $16,%rbx
1573 movw %bx,192(%rbp)
1574 leaq 8(%rcx),%rcx
1575 leaq 256(%rbp),%rbp
1576 decq %rax
1577 jnz loop_1
1578 movq 32(%rsp),%rax
1579 subq $1,%rax
1580 movq %rax,32(%rsp)
1581 jne init_loop
1582
1583
1584
1585 movdqa %xmm0,64(%rsp)
1586 movdqa %xmm1,80(%rsp)
1587 movdqa %xmm2,96(%rsp)
1588 movdqa %xmm3,112(%rsp)
1589
1590
1591
1592
1593
1594 movl 126(%rsp),%eax
1595 movq %rax,%rdx
1596 shrq $11,%rax
1597 andl $2047,%edx
1598 movl %edx,126(%rsp)
1599 leaq 640(%rsp,%rax,2),%rsi
1600 movq 8(%rsp),%rdx
1601 movq $4,%rbp
1602 loop_2:
1603 movzwq 192(%rsi),%rbx
1604 movzwq 448(%rsi),%rax
1605 shlq $16,%rbx
1606 shlq $16,%rax
1607 movw 128(%rsi),%bx
1608 movw 384(%rsi),%ax
1609 shlq $16,%rbx
1610 shlq $16,%rax
1611 movw 64(%rsi),%bx
1612 movw 320(%rsi),%ax
1613 shlq $16,%rbx
1614 shlq $16,%rax
1615 movw 0(%rsi),%bx
1616 movw 256(%rsi),%ax
1617 movq %rbx,0(%rdx)
1618 movq %rax,8(%rdx)
1619 leaq 512(%rsi),%rsi
1620 leaq 16(%rdx),%rdx
1621 subq $1,%rbp
1622 jnz loop_2
1623 movq $505,48(%rsp)
1624
1625 movq 8(%rsp),%rcx
1626 movq %rcx,136(%rsp)
1627 movq 0(%rcx),%r10
1628 movq 8(%rcx),%r11
1629 movq 16(%rcx),%r12
1630 movq 24(%rcx),%r13
1631 movq 32(%rcx),%r14
1632 movq 40(%rcx),%r15
1633 movq 48(%rcx),%r8
1634 movq 56(%rcx),%r9
1635 jmp sqr_2
1636
1637 main_loop_a3b:
1638 call sqr_reduce
1639 call sqr_reduce
1640 call sqr_reduce
1641 sqr_2:
1642 call sqr_reduce
1643 call sqr_reduce
1644
1645
1646
1647 movq 48(%rsp),%rcx
1648 movq %rcx,%rax
1649 shrq $4,%rax
1650 movl 64(%rsp,%rax,2),%edx
1651 andq $15,%rcx
1652 shrq %cl,%rdx
1653 andq $31,%rdx
1654
1655 leaq 640(%rsp,%rdx,2),%rsi
1656 leaq 448(%rsp),%rdx
1657 movq %rdx,%rdi
1658 movq $4,%rbp
1659 loop_3:
1660 movzwq 192(%rsi),%rbx
1661 movzwq 448(%rsi),%rax
1662 shlq $16,%rbx
1663 shlq $16,%rax
1664 movw 128(%rsi),%bx
1665 movw 384(%rsi),%ax
1666 shlq $16,%rbx
1667 shlq $16,%rax
1668 movw 64(%rsi),%bx
1669 movw 320(%rsi),%ax
1670 shlq $16,%rbx
1671 shlq $16,%rax
1672 movw 0(%rsi),%bx
1673 movw 256(%rsi),%ax
1674 movq %rbx,0(%rdx)
1675 movq %rax,8(%rdx)
1676 leaq 512(%rsi),%rsi
1677 leaq 16(%rdx),%rdx
1678 subq $1,%rbp
1679 jnz loop_3
1680 movq 8(%rsp),%rsi
1681 call mont_mul_a3b
1682
1683
1684
1685 movq 48(%rsp),%rcx
1686 subq $5,%rcx
1687 movq %rcx,48(%rsp)
1688 jge main_loop_a3b
1689
1690
1691
1692 end_main_loop_a3b:
1693
1694
1695 movq 8(%rsp),%rdx
1696 pxor %xmm4,%xmm4
1697 movdqu 0(%rdx),%xmm0
1698 movdqu 16(%rdx),%xmm1
1699 movdqu 32(%rdx),%xmm2
1700 movdqu 48(%rdx),%xmm3
1701 movdqa %xmm4,576(%rsp)
1702 movdqa %xmm4,592(%rsp)
1703 movdqa %xmm4,608(%rsp)
1704 movdqa %xmm4,624(%rsp)
1705 movdqa %xmm0,512(%rsp)
1706 movdqa %xmm1,528(%rsp)
1707 movdqa %xmm2,544(%rsp)
1708 movdqa %xmm3,560(%rsp)
1709 call mont_reduce
1710
1711
1712
1713 movq 8(%rsp),%rax
1714 movq 0(%rax),%r8
1715 movq 8(%rax),%r9
1716 movq 16(%rax),%r10
1717 movq 24(%rax),%r11
1718 movq 32(%rax),%r12
1719 movq 40(%rax),%r13
1720 movq 48(%rax),%r14
1721 movq 56(%rax),%r15
1722
1723
1724 movq 24(%rsp),%rbx
1725 addq $512,%rbx
1726
1727 subq 0(%rbx),%r8
1728 sbbq 8(%rbx),%r9
1729 sbbq 16(%rbx),%r10
1730 sbbq 24(%rbx),%r11
1731 sbbq 32(%rbx),%r12
1732 sbbq 40(%rbx),%r13
1733 sbbq 48(%rbx),%r14
1734 sbbq 56(%rbx),%r15
1735
1736
1737 movq 0(%rax),%rsi
1738 movq 8(%rax),%rdi
1739 movq 16(%rax),%rcx
1740 movq 24(%rax),%rdx
1741 cmovncq %r8,%rsi
1742 cmovncq %r9,%rdi
1743 cmovncq %r10,%rcx
1744 cmovncq %r11,%rdx
1745 movq %rsi,0(%rax)
1746 movq %rdi,8(%rax)
1747 movq %rcx,16(%rax)
1748 movq %rdx,24(%rax)
1749
1750 movq 32(%rax),%rsi
1751 movq 40(%rax),%rdi
1752 movq 48(%rax),%rcx
1753 movq 56(%rax),%rdx
1754 cmovncq %r12,%rsi
1755 cmovncq %r13,%rdi
1756 cmovncq %r14,%rcx
1757 cmovncq %r15,%rdx
1758 movq %rsi,32(%rax)
1759 movq %rdi,40(%rax)
1760 movq %rcx,48(%rax)
1761 movq %rdx,56(%rax)
1762
1763 movq 0(%rsp),%rsi
1764 movq 0(%rsi),%r15
1765 movq 8(%rsi),%r14
1766 movq 16(%rsi),%r13
1767 movq 24(%rsi),%r12
1768 movq 32(%rsi),%rbx
1769 movq 40(%rsi),%rbp
1770 leaq 48(%rsi),%rsp
1771 .Lepilogue:
1772 .byte 0xf3,0xc3
1773 .size mod_exp_512, . - mod_exp_512
OLDNEW
« no previous file with comments | « openssl/crypto/bn/asm/mips3-mont.pl ('k') | openssl/crypto/bn/asm/modexp512-x86_64.pl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698