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

Side by Side Diff: third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont.asm

Issue 2219933002: Land BoringSSL roll on master (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 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
OLDNEW
1 default rel 1 default rel
2 %define XMMWORD 2 %define XMMWORD
3 %define YMMWORD 3 %define YMMWORD
4 %define ZMMWORD 4 %define ZMMWORD
5 section .text code align=64 5 section .text code align=64
6 6
7 7
8 EXTERN OPENSSL_ia32cap_P 8 EXTERN OPENSSL_ia32cap_P
9 9
10 global bn_mul_mont 10 global bn_mul_mont
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 mov r10d,r9d 670 mov r10d,r9d
671 shl r9d,3 671 shl r9d,3
672 shl r10,3+2 672 shl r10,3+2
673 neg r9 673 neg r9
674 674
675 675
676 676
677 677
678 678
679 679
680 » lea» r11,[((-64))+r9*4+rsp] 680 » lea» r11,[((-64))+r9*2+rsp]
681 mov r8,QWORD[r8] 681 mov r8,QWORD[r8]
682 sub r11,rsi 682 sub r11,rsi
683 and r11,4095 683 and r11,4095
684 cmp r10,r11 684 cmp r10,r11
685 jb NEAR $L$sqr8x_sp_alt 685 jb NEAR $L$sqr8x_sp_alt
686 sub rsp,r11 686 sub rsp,r11
687 » lea» rsp,[((-64))+r9*4+rsp] 687 » lea» rsp,[((-64))+r9*2+rsp]
688 jmp NEAR $L$sqr8x_sp_done 688 jmp NEAR $L$sqr8x_sp_done
689 689
690 ALIGN 32 690 ALIGN 32
691 $L$sqr8x_sp_alt: 691 $L$sqr8x_sp_alt:
692 » lea» r10,[((4096-64))+r9*4] 692 » lea» r10,[((4096-64))+r9*2]
693 » lea» rsp,[((-64))+r9*4+rsp] 693 » lea» rsp,[((-64))+r9*2+rsp]
694 sub r11,r10 694 sub r11,r10
695 mov r10,0 695 mov r10,0
696 cmovc r11,r10 696 cmovc r11,r10
697 sub rsp,r11 697 sub rsp,r11
698 $L$sqr8x_sp_done: 698 $L$sqr8x_sp_done:
699 and rsp,-64 699 and rsp,-64
700 mov r10,r9 700 mov r10,r9
701 neg r9 701 neg r9
702 702
703 lea r11,[64+r9*2+rsp]
704 mov QWORD[32+rsp],r8 703 mov QWORD[32+rsp],r8
705 mov QWORD[40+rsp],rax 704 mov QWORD[40+rsp],rax
706 $L$sqr8x_body: 705 $L$sqr8x_body:
707 706
708 » mov» rbp,r9 707 DB» 102,72,15,110,209
709 DB» 102,73,15,110,211
710 » shr» rbp,3+2
711 » mov» eax,DWORD[((OPENSSL_ia32cap_P+8))]
712 » jmp» NEAR $L$sqr8x_copy_n
713
714 ALIGN» 32
715 $L$sqr8x_copy_n:
716 » movq» xmm0,QWORD[rcx]
717 » movq» xmm1,QWORD[8+rcx]
718 » movq» xmm3,QWORD[16+rcx]
719 » movq» xmm4,QWORD[24+rcx]
720 » lea» rcx,[32+rcx]
721 » movdqa» XMMWORD[r11],xmm0
722 » movdqa» XMMWORD[16+r11],xmm1
723 » movdqa» XMMWORD[32+r11],xmm3
724 » movdqa» XMMWORD[48+r11],xmm4
725 » lea» r11,[64+r11]
726 » dec» rbp
727 » jnz» NEAR $L$sqr8x_copy_n
728
729 pxor xmm0,xmm0 708 pxor xmm0,xmm0
730 DB 102,72,15,110,207 709 DB 102,72,15,110,207
731 DB 102,73,15,110,218 710 DB 102,73,15,110,218
732 call bn_sqr8x_internal 711 call bn_sqr8x_internal
733 712
734 » pxor» xmm0,xmm0 713
735 » lea» rax,[48+rsp] 714
736 » lea» rdx,[64+r9*2+rsp] 715
737 » shr» r9,3+2 716 » lea» rbx,[r9*1+rdi]
738 » mov» rsi,QWORD[40+rsp] 717 » mov» rcx,r9
739 » jmp» NEAR $L$sqr8x_zero 718 » mov» rdx,r9
719 DB» 102,72,15,126,207
720 » sar» rcx,3+2
721 » jmp» NEAR $L$sqr8x_sub
740 722
741 ALIGN 32 723 ALIGN 32
742 $L$sqr8x_zero: 724 $L$sqr8x_sub:
743 » movdqa» XMMWORD[rax],xmm0 725 » mov» r12,QWORD[rbx]
744 » movdqa» XMMWORD[16+rax],xmm0 726 » mov» r13,QWORD[8+rbx]
745 » movdqa» XMMWORD[32+rax],xmm0 727 » mov» r14,QWORD[16+rbx]
746 » movdqa» XMMWORD[48+rax],xmm0 728 » mov» r15,QWORD[24+rbx]
747 » lea» rax,[64+rax] 729 » lea» rbx,[32+rbx]
748 » movdqa» XMMWORD[rdx],xmm0 730 » sbb» r12,QWORD[rbp]
749 » movdqa» XMMWORD[16+rdx],xmm0 731 » sbb» r13,QWORD[8+rbp]
750 » movdqa» XMMWORD[32+rdx],xmm0 732 » sbb» r14,QWORD[16+rbp]
751 » movdqa» XMMWORD[48+rdx],xmm0 733 » sbb» r15,QWORD[24+rbp]
752 » lea» rdx,[64+rdx] 734 » lea» rbp,[32+rbp]
753 » dec» r9 735 » mov» QWORD[rdi],r12
754 » jnz» NEAR $L$sqr8x_zero 736 » mov» QWORD[8+rdi],r13
737 » mov» QWORD[16+rdi],r14
738 » mov» QWORD[24+rdi],r15
739 » lea» rdi,[32+rdi]
740 » inc» rcx
741 » jnz» NEAR $L$sqr8x_sub
742
743 » sbb» rax,0
744 » lea» rbx,[r9*1+rbx]
745 » lea» rdi,[r9*1+rdi]
746
747 DB» 102,72,15,110,200
748 » pxor» xmm0,xmm0
749 » pshufd» xmm1,xmm1,0
750 » mov» rsi,QWORD[40+rsp]
751 » jmp» NEAR $L$sqr8x_cond_copy
752
753 ALIGN» 32
754 $L$sqr8x_cond_copy:
755 » movdqa» xmm2,XMMWORD[rbx]
756 » movdqa» xmm3,XMMWORD[16+rbx]
757 » lea» rbx,[32+rbx]
758 » movdqu» xmm4,XMMWORD[rdi]
759 » movdqu» xmm5,XMMWORD[16+rdi]
760 » lea» rdi,[32+rdi]
761 » movdqa» XMMWORD[(-32)+rbx],xmm0
762 » movdqa» XMMWORD[(-16)+rbx],xmm0
763 » movdqa» XMMWORD[(-32)+rdx*1+rbx],xmm0
764 » movdqa» XMMWORD[(-16)+rdx*1+rbx],xmm0
765 » pcmpeqd»xmm0,xmm1
766 » pand» xmm2,xmm1
767 » pand» xmm3,xmm1
768 » pand» xmm4,xmm0
769 » pand» xmm5,xmm0
770 » pxor» xmm0,xmm0
771 » por» xmm4,xmm2
772 » por» xmm5,xmm3
773 » movdqu» XMMWORD[(-32)+rdi],xmm4
774 » movdqu» XMMWORD[(-16)+rdi],xmm5
775 » add» r9,32
776 » jnz» NEAR $L$sqr8x_cond_copy
755 777
756 mov rax,1 778 mov rax,1
757 mov r15,QWORD[((-48))+rsi] 779 mov r15,QWORD[((-48))+rsi]
758 mov r14,QWORD[((-40))+rsi] 780 mov r14,QWORD[((-40))+rsi]
759 mov r13,QWORD[((-32))+rsi] 781 mov r13,QWORD[((-32))+rsi]
760 mov r12,QWORD[((-24))+rsi] 782 mov r12,QWORD[((-24))+rsi]
761 mov rbp,QWORD[((-16))+rsi] 783 mov rbp,QWORD[((-16))+rsi]
762 mov rbx,QWORD[((-8))+rsi] 784 mov rbx,QWORD[((-8))+rsi]
763 lea rsp,[rsi] 785 lea rsp,[rsi]
764 $L$sqr8x_epilogue: 786 $L$sqr8x_epilogue:
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
932 DD mul_handler wrt ..imagebase 954 DD mul_handler wrt ..imagebase
933 DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase 955 DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase
934 $L$SEH_info_bn_mul4x_mont: 956 $L$SEH_info_bn_mul4x_mont:
935 DB 9,0,0,0 957 DB 9,0,0,0
936 DD mul_handler wrt ..imagebase 958 DD mul_handler wrt ..imagebase
937 DD $L$mul4x_body wrt ..imagebase,$L$mul4x_epilogue wrt ..imagebase 959 DD $L$mul4x_body wrt ..imagebase,$L$mul4x_epilogue wrt ..imagebase
938 $L$SEH_info_bn_sqr8x_mont: 960 $L$SEH_info_bn_sqr8x_mont:
939 DB 9,0,0,0 961 DB 9,0,0,0
940 DD sqr_handler wrt ..imagebase 962 DD sqr_handler wrt ..imagebase
941 DD $L$sqr8x_body wrt ..imagebase,$L$sqr8x_epilogue wrt ..imagebase 963 DD $L$sqr8x_body wrt ..imagebase,$L$sqr8x_epilogue wrt ..imagebase
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698