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

Unified Diff: third_party/boringssl/win-x86/crypto/bn/x86-mont.asm

Issue 2354623003: Pull boringssl generated source from boringssl_gen (Closed)
Patch Set: . Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: third_party/boringssl/win-x86/crypto/bn/x86-mont.asm
diff --git a/third_party/boringssl/win-x86/crypto/bn/x86-mont.asm b/third_party/boringssl/win-x86/crypto/bn/x86-mont.asm
deleted file mode 100644
index de7b949927258f9d725c73fa60bb278232f2dcd1..0000000000000000000000000000000000000000
--- a/third_party/boringssl/win-x86/crypto/bn/x86-mont.asm
+++ /dev/null
@@ -1,469 +0,0 @@
-%ifidn __OUTPUT_FORMAT__,obj
-section code use32 class=code align=64
-%elifidn __OUTPUT_FORMAT__,win32
-%ifdef __YASM_VERSION_ID__
-%if __YASM_VERSION_ID__ < 01010000h
-%error yasm version 1.1.0 or later needed.
-%endif
-; Yasm automatically includes .00 and complains about redefining it.
-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
-%else
-$@feat.00 equ 1
-%endif
-section .text code align=64
-%else
-section .text code
-%endif
-;extern _OPENSSL_ia32cap_P
-global _bn_mul_mont
-align 16
-_bn_mul_mont:
-L$_bn_mul_mont_begin:
- push ebp
- push ebx
- push esi
- push edi
- xor eax,eax
- mov edi,DWORD [40+esp]
- cmp edi,4
- jl NEAR L$000just_leave
- lea esi,[20+esp]
- lea edx,[24+esp]
- mov ebp,esp
- add edi,2
- neg edi
- lea esp,[edi*4+esp-32]
- neg edi
- mov eax,esp
- sub eax,edx
- and eax,2047
- sub esp,eax
- xor edx,esp
- and edx,2048
- xor edx,2048
- sub esp,edx
- and esp,-64
- mov eax,DWORD [esi]
- mov ebx,DWORD [4+esi]
- mov ecx,DWORD [8+esi]
- mov edx,DWORD [12+esi]
- mov esi,DWORD [16+esi]
- mov esi,DWORD [esi]
- mov DWORD [4+esp],eax
- mov DWORD [8+esp],ebx
- mov DWORD [12+esp],ecx
- mov DWORD [16+esp],edx
- mov DWORD [20+esp],esi
- lea ebx,[edi-3]
- mov DWORD [24+esp],ebp
- lea eax,[_OPENSSL_ia32cap_P]
- bt DWORD [eax],26
- jnc NEAR L$001non_sse2
- mov eax,-1
- movd mm7,eax
- mov esi,DWORD [8+esp]
- mov edi,DWORD [12+esp]
- mov ebp,DWORD [16+esp]
- xor edx,edx
- xor ecx,ecx
- movd mm4,DWORD [edi]
- movd mm5,DWORD [esi]
- movd mm3,DWORD [ebp]
- pmuludq mm5,mm4
- movq mm2,mm5
- movq mm0,mm5
- pand mm0,mm7
- pmuludq mm5,[20+esp]
- pmuludq mm3,mm5
- paddq mm3,mm0
- movd mm1,DWORD [4+ebp]
- movd mm0,DWORD [4+esi]
- psrlq mm2,32
- psrlq mm3,32
- inc ecx
-align 16
-L$0021st:
- pmuludq mm0,mm4
- pmuludq mm1,mm5
- paddq mm2,mm0
- paddq mm3,mm1
- movq mm0,mm2
- pand mm0,mm7
- movd mm1,DWORD [4+ecx*4+ebp]
- paddq mm3,mm0
- movd mm0,DWORD [4+ecx*4+esi]
- psrlq mm2,32
- movd DWORD [28+ecx*4+esp],mm3
- psrlq mm3,32
- lea ecx,[1+ecx]
- cmp ecx,ebx
- jl NEAR L$0021st
- pmuludq mm0,mm4
- pmuludq mm1,mm5
- paddq mm2,mm0
- paddq mm3,mm1
- movq mm0,mm2
- pand mm0,mm7
- paddq mm3,mm0
- movd DWORD [28+ecx*4+esp],mm3
- psrlq mm2,32
- psrlq mm3,32
- paddq mm3,mm2
- movq [32+ebx*4+esp],mm3
- inc edx
-L$003outer:
- xor ecx,ecx
- movd mm4,DWORD [edx*4+edi]
- movd mm5,DWORD [esi]
- movd mm6,DWORD [32+esp]
- movd mm3,DWORD [ebp]
- pmuludq mm5,mm4
- paddq mm5,mm6
- movq mm0,mm5
- movq mm2,mm5
- pand mm0,mm7
- pmuludq mm5,[20+esp]
- pmuludq mm3,mm5
- paddq mm3,mm0
- movd mm6,DWORD [36+esp]
- movd mm1,DWORD [4+ebp]
- movd mm0,DWORD [4+esi]
- psrlq mm2,32
- psrlq mm3,32
- paddq mm2,mm6
- inc ecx
- dec ebx
-L$004inner:
- pmuludq mm0,mm4
- pmuludq mm1,mm5
- paddq mm2,mm0
- paddq mm3,mm1
- movq mm0,mm2
- movd mm6,DWORD [36+ecx*4+esp]
- pand mm0,mm7
- movd mm1,DWORD [4+ecx*4+ebp]
- paddq mm3,mm0
- movd mm0,DWORD [4+ecx*4+esi]
- psrlq mm2,32
- movd DWORD [28+ecx*4+esp],mm3
- psrlq mm3,32
- paddq mm2,mm6
- dec ebx
- lea ecx,[1+ecx]
- jnz NEAR L$004inner
- mov ebx,ecx
- pmuludq mm0,mm4
- pmuludq mm1,mm5
- paddq mm2,mm0
- paddq mm3,mm1
- movq mm0,mm2
- pand mm0,mm7
- paddq mm3,mm0
- movd DWORD [28+ecx*4+esp],mm3
- psrlq mm2,32
- psrlq mm3,32
- movd mm6,DWORD [36+ebx*4+esp]
- paddq mm3,mm2
- paddq mm3,mm6
- movq [32+ebx*4+esp],mm3
- lea edx,[1+edx]
- cmp edx,ebx
- jle NEAR L$003outer
- emms
- jmp NEAR L$005common_tail
-align 16
-L$001non_sse2:
- mov esi,DWORD [8+esp]
- lea ebp,[1+ebx]
- mov edi,DWORD [12+esp]
- xor ecx,ecx
- mov edx,esi
- and ebp,1
- sub edx,edi
- lea eax,[4+ebx*4+edi]
- or ebp,edx
- mov edi,DWORD [edi]
- jz NEAR L$006bn_sqr_mont
- mov DWORD [28+esp],eax
- mov eax,DWORD [esi]
- xor edx,edx
-align 16
-L$007mull:
- mov ebp,edx
- mul edi
- add ebp,eax
- lea ecx,[1+ecx]
- adc edx,0
- mov eax,DWORD [ecx*4+esi]
- cmp ecx,ebx
- mov DWORD [28+ecx*4+esp],ebp
- jl NEAR L$007mull
- mov ebp,edx
- mul edi
- mov edi,DWORD [20+esp]
- add eax,ebp
- mov esi,DWORD [16+esp]
- adc edx,0
- imul edi,DWORD [32+esp]
- mov DWORD [32+ebx*4+esp],eax
- xor ecx,ecx
- mov DWORD [36+ebx*4+esp],edx
- mov DWORD [40+ebx*4+esp],ecx
- mov eax,DWORD [esi]
- mul edi
- add eax,DWORD [32+esp]
- mov eax,DWORD [4+esi]
- adc edx,0
- inc ecx
- jmp NEAR L$0082ndmadd
-align 16
-L$0091stmadd:
- mov ebp,edx
- mul edi
- add ebp,DWORD [32+ecx*4+esp]
- lea ecx,[1+ecx]
- adc edx,0
- add ebp,eax
- mov eax,DWORD [ecx*4+esi]
- adc edx,0
- cmp ecx,ebx
- mov DWORD [28+ecx*4+esp],ebp
- jl NEAR L$0091stmadd
- mov ebp,edx
- mul edi
- add eax,DWORD [32+ebx*4+esp]
- mov edi,DWORD [20+esp]
- adc edx,0
- mov esi,DWORD [16+esp]
- add ebp,eax
- adc edx,0
- imul edi,DWORD [32+esp]
- xor ecx,ecx
- add edx,DWORD [36+ebx*4+esp]
- mov DWORD [32+ebx*4+esp],ebp
- adc ecx,0
- mov eax,DWORD [esi]
- mov DWORD [36+ebx*4+esp],edx
- mov DWORD [40+ebx*4+esp],ecx
- mul edi
- add eax,DWORD [32+esp]
- mov eax,DWORD [4+esi]
- adc edx,0
- mov ecx,1
-align 16
-L$0082ndmadd:
- mov ebp,edx
- mul edi
- add ebp,DWORD [32+ecx*4+esp]
- lea ecx,[1+ecx]
- adc edx,0
- add ebp,eax
- mov eax,DWORD [ecx*4+esi]
- adc edx,0
- cmp ecx,ebx
- mov DWORD [24+ecx*4+esp],ebp
- jl NEAR L$0082ndmadd
- mov ebp,edx
- mul edi
- add ebp,DWORD [32+ebx*4+esp]
- adc edx,0
- add ebp,eax
- adc edx,0
- mov DWORD [28+ebx*4+esp],ebp
- xor eax,eax
- mov ecx,DWORD [12+esp]
- add edx,DWORD [36+ebx*4+esp]
- adc eax,DWORD [40+ebx*4+esp]
- lea ecx,[4+ecx]
- mov DWORD [32+ebx*4+esp],edx
- cmp ecx,DWORD [28+esp]
- mov DWORD [36+ebx*4+esp],eax
- je NEAR L$005common_tail
- mov edi,DWORD [ecx]
- mov esi,DWORD [8+esp]
- mov DWORD [12+esp],ecx
- xor ecx,ecx
- xor edx,edx
- mov eax,DWORD [esi]
- jmp NEAR L$0091stmadd
-align 16
-L$006bn_sqr_mont:
- mov DWORD [esp],ebx
- mov DWORD [12+esp],ecx
- mov eax,edi
- mul edi
- mov DWORD [32+esp],eax
- mov ebx,edx
- shr edx,1
- and ebx,1
- inc ecx
-align 16
-L$010sqr:
- mov eax,DWORD [ecx*4+esi]
- mov ebp,edx
- mul edi
- add eax,ebp
- lea ecx,[1+ecx]
- adc edx,0
- lea ebp,[eax*2+ebx]
- shr eax,31
- cmp ecx,DWORD [esp]
- mov ebx,eax
- mov DWORD [28+ecx*4+esp],ebp
- jl NEAR L$010sqr
- mov eax,DWORD [ecx*4+esi]
- mov ebp,edx
- mul edi
- add eax,ebp
- mov edi,DWORD [20+esp]
- adc edx,0
- mov esi,DWORD [16+esp]
- lea ebp,[eax*2+ebx]
- imul edi,DWORD [32+esp]
- shr eax,31
- mov DWORD [32+ecx*4+esp],ebp
- lea ebp,[edx*2+eax]
- mov eax,DWORD [esi]
- shr edx,31
- mov DWORD [36+ecx*4+esp],ebp
- mov DWORD [40+ecx*4+esp],edx
- mul edi
- add eax,DWORD [32+esp]
- mov ebx,ecx
- adc edx,0
- mov eax,DWORD [4+esi]
- mov ecx,1
-align 16
-L$0113rdmadd:
- mov ebp,edx
- mul edi
- add ebp,DWORD [32+ecx*4+esp]
- adc edx,0
- add ebp,eax
- mov eax,DWORD [4+ecx*4+esi]
- adc edx,0
- mov DWORD [28+ecx*4+esp],ebp
- mov ebp,edx
- mul edi
- add ebp,DWORD [36+ecx*4+esp]
- lea ecx,[2+ecx]
- adc edx,0
- add ebp,eax
- mov eax,DWORD [ecx*4+esi]
- adc edx,0
- cmp ecx,ebx
- mov DWORD [24+ecx*4+esp],ebp
- jl NEAR L$0113rdmadd
- mov ebp,edx
- mul edi
- add ebp,DWORD [32+ebx*4+esp]
- adc edx,0
- add ebp,eax
- adc edx,0
- mov DWORD [28+ebx*4+esp],ebp
- mov ecx,DWORD [12+esp]
- xor eax,eax
- mov esi,DWORD [8+esp]
- add edx,DWORD [36+ebx*4+esp]
- adc eax,DWORD [40+ebx*4+esp]
- mov DWORD [32+ebx*4+esp],edx
- cmp ecx,ebx
- mov DWORD [36+ebx*4+esp],eax
- je NEAR L$005common_tail
- mov edi,DWORD [4+ecx*4+esi]
- lea ecx,[1+ecx]
- mov eax,edi
- mov DWORD [12+esp],ecx
- mul edi
- add eax,DWORD [32+ecx*4+esp]
- adc edx,0
- mov DWORD [32+ecx*4+esp],eax
- xor ebp,ebp
- cmp ecx,ebx
- lea ecx,[1+ecx]
- je NEAR L$012sqrlast
- mov ebx,edx
- shr edx,1
- and ebx,1
-align 16
-L$013sqradd:
- mov eax,DWORD [ecx*4+esi]
- mov ebp,edx
- mul edi
- add eax,ebp
- lea ebp,[eax*1+eax]
- adc edx,0
- shr eax,31
- add ebp,DWORD [32+ecx*4+esp]
- lea ecx,[1+ecx]
- adc eax,0
- add ebp,ebx
- adc eax,0
- cmp ecx,DWORD [esp]
- mov DWORD [28+ecx*4+esp],ebp
- mov ebx,eax
- jle NEAR L$013sqradd
- mov ebp,edx
- add edx,edx
- shr ebp,31
- add edx,ebx
- adc ebp,0
-L$012sqrlast:
- mov edi,DWORD [20+esp]
- mov esi,DWORD [16+esp]
- imul edi,DWORD [32+esp]
- add edx,DWORD [32+ecx*4+esp]
- mov eax,DWORD [esi]
- adc ebp,0
- mov DWORD [32+ecx*4+esp],edx
- mov DWORD [36+ecx*4+esp],ebp
- mul edi
- add eax,DWORD [32+esp]
- lea ebx,[ecx-1]
- adc edx,0
- mov ecx,1
- mov eax,DWORD [4+esi]
- jmp NEAR L$0113rdmadd
-align 16
-L$005common_tail:
- mov ebp,DWORD [16+esp]
- mov edi,DWORD [4+esp]
- lea esi,[32+esp]
- mov eax,DWORD [esi]
- mov ecx,ebx
- xor edx,edx
-align 16
-L$014sub:
- sbb eax,DWORD [edx*4+ebp]
- mov DWORD [edx*4+edi],eax
- dec ecx
- mov eax,DWORD [4+edx*4+esi]
- lea edx,[1+edx]
- jge NEAR L$014sub
- sbb eax,0
-align 16
-L$015copy:
- mov edx,DWORD [ebx*4+esi]
- mov ebp,DWORD [ebx*4+edi]
- xor edx,ebp
- and edx,eax
- xor edx,ebp
- mov DWORD [ebx*4+esi],ecx
- mov DWORD [ebx*4+edi],edx
- dec ebx
- jge NEAR L$015copy
- mov esp,DWORD [24+esp]
- mov eax,1
-L$000just_leave:
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-db 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
-db 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56
-db 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
-db 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
-db 111,114,103,62,0
-segment .bss
-common _OPENSSL_ia32cap_P 16
« no previous file with comments | « third_party/boringssl/win-x86/crypto/bn/co-586.asm ('k') | third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698