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 |