Index: third_party/boringssl/win-x86/crypto/bn/bn-586.asm |
diff --git a/third_party/boringssl/win-x86/crypto/bn/bn-586.asm b/third_party/boringssl/win-x86/crypto/bn/bn-586.asm |
deleted file mode 100644 |
index b222040acae93edbe589764b2e1f375670c90686..0000000000000000000000000000000000000000 |
--- a/third_party/boringssl/win-x86/crypto/bn/bn-586.asm |
+++ /dev/null |
@@ -1,1523 +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_add_words |
-align 16 |
-_bn_mul_add_words: |
-L$_bn_mul_add_words_begin: |
- lea eax,[_OPENSSL_ia32cap_P] |
- bt DWORD [eax],26 |
- jnc NEAR L$000maw_non_sse2 |
- mov eax,DWORD [4+esp] |
- mov edx,DWORD [8+esp] |
- mov ecx,DWORD [12+esp] |
- movd mm0,DWORD [16+esp] |
- pxor mm1,mm1 |
- jmp NEAR L$001maw_sse2_entry |
-align 16 |
-L$002maw_sse2_unrolled: |
- movd mm3,DWORD [eax] |
- paddq mm1,mm3 |
- movd mm2,DWORD [edx] |
- pmuludq mm2,mm0 |
- movd mm4,DWORD [4+edx] |
- pmuludq mm4,mm0 |
- movd mm6,DWORD [8+edx] |
- pmuludq mm6,mm0 |
- movd mm7,DWORD [12+edx] |
- pmuludq mm7,mm0 |
- paddq mm1,mm2 |
- movd mm3,DWORD [4+eax] |
- paddq mm3,mm4 |
- movd mm5,DWORD [8+eax] |
- paddq mm5,mm6 |
- movd mm4,DWORD [12+eax] |
- paddq mm7,mm4 |
- movd DWORD [eax],mm1 |
- movd mm2,DWORD [16+edx] |
- pmuludq mm2,mm0 |
- psrlq mm1,32 |
- movd mm4,DWORD [20+edx] |
- pmuludq mm4,mm0 |
- paddq mm1,mm3 |
- movd mm6,DWORD [24+edx] |
- pmuludq mm6,mm0 |
- movd DWORD [4+eax],mm1 |
- psrlq mm1,32 |
- movd mm3,DWORD [28+edx] |
- add edx,32 |
- pmuludq mm3,mm0 |
- paddq mm1,mm5 |
- movd mm5,DWORD [16+eax] |
- paddq mm2,mm5 |
- movd DWORD [8+eax],mm1 |
- psrlq mm1,32 |
- paddq mm1,mm7 |
- movd mm5,DWORD [20+eax] |
- paddq mm4,mm5 |
- movd DWORD [12+eax],mm1 |
- psrlq mm1,32 |
- paddq mm1,mm2 |
- movd mm5,DWORD [24+eax] |
- paddq mm6,mm5 |
- movd DWORD [16+eax],mm1 |
- psrlq mm1,32 |
- paddq mm1,mm4 |
- movd mm5,DWORD [28+eax] |
- paddq mm3,mm5 |
- movd DWORD [20+eax],mm1 |
- psrlq mm1,32 |
- paddq mm1,mm6 |
- movd DWORD [24+eax],mm1 |
- psrlq mm1,32 |
- paddq mm1,mm3 |
- movd DWORD [28+eax],mm1 |
- lea eax,[32+eax] |
- psrlq mm1,32 |
- sub ecx,8 |
- jz NEAR L$003maw_sse2_exit |
-L$001maw_sse2_entry: |
- test ecx,4294967288 |
- jnz NEAR L$002maw_sse2_unrolled |
-align 4 |
-L$004maw_sse2_loop: |
- movd mm2,DWORD [edx] |
- movd mm3,DWORD [eax] |
- pmuludq mm2,mm0 |
- lea edx,[4+edx] |
- paddq mm1,mm3 |
- paddq mm1,mm2 |
- movd DWORD [eax],mm1 |
- sub ecx,1 |
- psrlq mm1,32 |
- lea eax,[4+eax] |
- jnz NEAR L$004maw_sse2_loop |
-L$003maw_sse2_exit: |
- movd eax,mm1 |
- emms |
- ret |
-align 16 |
-L$000maw_non_sse2: |
- push ebp |
- push ebx |
- push esi |
- push edi |
- ; |
- xor esi,esi |
- mov edi,DWORD [20+esp] |
- mov ecx,DWORD [28+esp] |
- mov ebx,DWORD [24+esp] |
- and ecx,4294967288 |
- mov ebp,DWORD [32+esp] |
- push ecx |
- jz NEAR L$005maw_finish |
-align 16 |
-L$006maw_loop: |
- ; Round 0 |
- mov eax,DWORD [ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [edi] |
- adc edx,0 |
- mov DWORD [edi],eax |
- mov esi,edx |
- ; Round 4 |
- mov eax,DWORD [4+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [4+edi] |
- adc edx,0 |
- mov DWORD [4+edi],eax |
- mov esi,edx |
- ; Round 8 |
- mov eax,DWORD [8+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [8+edi] |
- adc edx,0 |
- mov DWORD [8+edi],eax |
- mov esi,edx |
- ; Round 12 |
- mov eax,DWORD [12+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [12+edi] |
- adc edx,0 |
- mov DWORD [12+edi],eax |
- mov esi,edx |
- ; Round 16 |
- mov eax,DWORD [16+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [16+edi] |
- adc edx,0 |
- mov DWORD [16+edi],eax |
- mov esi,edx |
- ; Round 20 |
- mov eax,DWORD [20+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [20+edi] |
- adc edx,0 |
- mov DWORD [20+edi],eax |
- mov esi,edx |
- ; Round 24 |
- mov eax,DWORD [24+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [24+edi] |
- adc edx,0 |
- mov DWORD [24+edi],eax |
- mov esi,edx |
- ; Round 28 |
- mov eax,DWORD [28+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [28+edi] |
- adc edx,0 |
- mov DWORD [28+edi],eax |
- mov esi,edx |
- ; |
- sub ecx,8 |
- lea ebx,[32+ebx] |
- lea edi,[32+edi] |
- jnz NEAR L$006maw_loop |
-L$005maw_finish: |
- mov ecx,DWORD [32+esp] |
- and ecx,7 |
- jnz NEAR L$007maw_finish2 |
- jmp NEAR L$008maw_end |
-L$007maw_finish2: |
- ; Tail Round 0 |
- mov eax,DWORD [ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [edi] |
- adc edx,0 |
- dec ecx |
- mov DWORD [edi],eax |
- mov esi,edx |
- jz NEAR L$008maw_end |
- ; Tail Round 1 |
- mov eax,DWORD [4+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [4+edi] |
- adc edx,0 |
- dec ecx |
- mov DWORD [4+edi],eax |
- mov esi,edx |
- jz NEAR L$008maw_end |
- ; Tail Round 2 |
- mov eax,DWORD [8+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [8+edi] |
- adc edx,0 |
- dec ecx |
- mov DWORD [8+edi],eax |
- mov esi,edx |
- jz NEAR L$008maw_end |
- ; Tail Round 3 |
- mov eax,DWORD [12+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [12+edi] |
- adc edx,0 |
- dec ecx |
- mov DWORD [12+edi],eax |
- mov esi,edx |
- jz NEAR L$008maw_end |
- ; Tail Round 4 |
- mov eax,DWORD [16+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [16+edi] |
- adc edx,0 |
- dec ecx |
- mov DWORD [16+edi],eax |
- mov esi,edx |
- jz NEAR L$008maw_end |
- ; Tail Round 5 |
- mov eax,DWORD [20+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [20+edi] |
- adc edx,0 |
- dec ecx |
- mov DWORD [20+edi],eax |
- mov esi,edx |
- jz NEAR L$008maw_end |
- ; Tail Round 6 |
- mov eax,DWORD [24+ebx] |
- mul ebp |
- add eax,esi |
- adc edx,0 |
- add eax,DWORD [24+edi] |
- adc edx,0 |
- mov DWORD [24+edi],eax |
- mov esi,edx |
-L$008maw_end: |
- mov eax,esi |
- pop ecx |
- pop edi |
- pop esi |
- pop ebx |
- pop ebp |
- ret |
-global _bn_mul_words |
-align 16 |
-_bn_mul_words: |
-L$_bn_mul_words_begin: |
- lea eax,[_OPENSSL_ia32cap_P] |
- bt DWORD [eax],26 |
- jnc NEAR L$009mw_non_sse2 |
- mov eax,DWORD [4+esp] |
- mov edx,DWORD [8+esp] |
- mov ecx,DWORD [12+esp] |
- movd mm0,DWORD [16+esp] |
- pxor mm1,mm1 |
-align 16 |
-L$010mw_sse2_loop: |
- movd mm2,DWORD [edx] |
- pmuludq mm2,mm0 |
- lea edx,[4+edx] |
- paddq mm1,mm2 |
- movd DWORD [eax],mm1 |
- sub ecx,1 |
- psrlq mm1,32 |
- lea eax,[4+eax] |
- jnz NEAR L$010mw_sse2_loop |
- movd eax,mm1 |
- emms |
- ret |
-align 16 |
-L$009mw_non_sse2: |
- push ebp |
- push ebx |
- push esi |
- push edi |
- ; |
- xor esi,esi |
- mov edi,DWORD [20+esp] |
- mov ebx,DWORD [24+esp] |
- mov ebp,DWORD [28+esp] |
- mov ecx,DWORD [32+esp] |
- and ebp,4294967288 |
- jz NEAR L$011mw_finish |
-L$012mw_loop: |
- ; Round 0 |
- mov eax,DWORD [ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [edi],eax |
- mov esi,edx |
- ; Round 4 |
- mov eax,DWORD [4+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [4+edi],eax |
- mov esi,edx |
- ; Round 8 |
- mov eax,DWORD [8+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [8+edi],eax |
- mov esi,edx |
- ; Round 12 |
- mov eax,DWORD [12+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [12+edi],eax |
- mov esi,edx |
- ; Round 16 |
- mov eax,DWORD [16+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [16+edi],eax |
- mov esi,edx |
- ; Round 20 |
- mov eax,DWORD [20+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [20+edi],eax |
- mov esi,edx |
- ; Round 24 |
- mov eax,DWORD [24+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [24+edi],eax |
- mov esi,edx |
- ; Round 28 |
- mov eax,DWORD [28+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [28+edi],eax |
- mov esi,edx |
- ; |
- add ebx,32 |
- add edi,32 |
- sub ebp,8 |
- jz NEAR L$011mw_finish |
- jmp NEAR L$012mw_loop |
-L$011mw_finish: |
- mov ebp,DWORD [28+esp] |
- and ebp,7 |
- jnz NEAR L$013mw_finish2 |
- jmp NEAR L$014mw_end |
-L$013mw_finish2: |
- ; Tail Round 0 |
- mov eax,DWORD [ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [edi],eax |
- mov esi,edx |
- dec ebp |
- jz NEAR L$014mw_end |
- ; Tail Round 1 |
- mov eax,DWORD [4+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [4+edi],eax |
- mov esi,edx |
- dec ebp |
- jz NEAR L$014mw_end |
- ; Tail Round 2 |
- mov eax,DWORD [8+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [8+edi],eax |
- mov esi,edx |
- dec ebp |
- jz NEAR L$014mw_end |
- ; Tail Round 3 |
- mov eax,DWORD [12+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [12+edi],eax |
- mov esi,edx |
- dec ebp |
- jz NEAR L$014mw_end |
- ; Tail Round 4 |
- mov eax,DWORD [16+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [16+edi],eax |
- mov esi,edx |
- dec ebp |
- jz NEAR L$014mw_end |
- ; Tail Round 5 |
- mov eax,DWORD [20+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [20+edi],eax |
- mov esi,edx |
- dec ebp |
- jz NEAR L$014mw_end |
- ; Tail Round 6 |
- mov eax,DWORD [24+ebx] |
- mul ecx |
- add eax,esi |
- adc edx,0 |
- mov DWORD [24+edi],eax |
- mov esi,edx |
-L$014mw_end: |
- mov eax,esi |
- pop edi |
- pop esi |
- pop ebx |
- pop ebp |
- ret |
-global _bn_sqr_words |
-align 16 |
-_bn_sqr_words: |
-L$_bn_sqr_words_begin: |
- lea eax,[_OPENSSL_ia32cap_P] |
- bt DWORD [eax],26 |
- jnc NEAR L$015sqr_non_sse2 |
- mov eax,DWORD [4+esp] |
- mov edx,DWORD [8+esp] |
- mov ecx,DWORD [12+esp] |
-align 16 |
-L$016sqr_sse2_loop: |
- movd mm0,DWORD [edx] |
- pmuludq mm0,mm0 |
- lea edx,[4+edx] |
- movq [eax],mm0 |
- sub ecx,1 |
- lea eax,[8+eax] |
- jnz NEAR L$016sqr_sse2_loop |
- emms |
- ret |
-align 16 |
-L$015sqr_non_sse2: |
- push ebp |
- push ebx |
- push esi |
- push edi |
- ; |
- mov esi,DWORD [20+esp] |
- mov edi,DWORD [24+esp] |
- mov ebx,DWORD [28+esp] |
- and ebx,4294967288 |
- jz NEAR L$017sw_finish |
-L$018sw_loop: |
- ; Round 0 |
- mov eax,DWORD [edi] |
- mul eax |
- mov DWORD [esi],eax |
- mov DWORD [4+esi],edx |
- ; Round 4 |
- mov eax,DWORD [4+edi] |
- mul eax |
- mov DWORD [8+esi],eax |
- mov DWORD [12+esi],edx |
- ; Round 8 |
- mov eax,DWORD [8+edi] |
- mul eax |
- mov DWORD [16+esi],eax |
- mov DWORD [20+esi],edx |
- ; Round 12 |
- mov eax,DWORD [12+edi] |
- mul eax |
- mov DWORD [24+esi],eax |
- mov DWORD [28+esi],edx |
- ; Round 16 |
- mov eax,DWORD [16+edi] |
- mul eax |
- mov DWORD [32+esi],eax |
- mov DWORD [36+esi],edx |
- ; Round 20 |
- mov eax,DWORD [20+edi] |
- mul eax |
- mov DWORD [40+esi],eax |
- mov DWORD [44+esi],edx |
- ; Round 24 |
- mov eax,DWORD [24+edi] |
- mul eax |
- mov DWORD [48+esi],eax |
- mov DWORD [52+esi],edx |
- ; Round 28 |
- mov eax,DWORD [28+edi] |
- mul eax |
- mov DWORD [56+esi],eax |
- mov DWORD [60+esi],edx |
- ; |
- add edi,32 |
- add esi,64 |
- sub ebx,8 |
- jnz NEAR L$018sw_loop |
-L$017sw_finish: |
- mov ebx,DWORD [28+esp] |
- and ebx,7 |
- jz NEAR L$019sw_end |
- ; Tail Round 0 |
- mov eax,DWORD [edi] |
- mul eax |
- mov DWORD [esi],eax |
- dec ebx |
- mov DWORD [4+esi],edx |
- jz NEAR L$019sw_end |
- ; Tail Round 1 |
- mov eax,DWORD [4+edi] |
- mul eax |
- mov DWORD [8+esi],eax |
- dec ebx |
- mov DWORD [12+esi],edx |
- jz NEAR L$019sw_end |
- ; Tail Round 2 |
- mov eax,DWORD [8+edi] |
- mul eax |
- mov DWORD [16+esi],eax |
- dec ebx |
- mov DWORD [20+esi],edx |
- jz NEAR L$019sw_end |
- ; Tail Round 3 |
- mov eax,DWORD [12+edi] |
- mul eax |
- mov DWORD [24+esi],eax |
- dec ebx |
- mov DWORD [28+esi],edx |
- jz NEAR L$019sw_end |
- ; Tail Round 4 |
- mov eax,DWORD [16+edi] |
- mul eax |
- mov DWORD [32+esi],eax |
- dec ebx |
- mov DWORD [36+esi],edx |
- jz NEAR L$019sw_end |
- ; Tail Round 5 |
- mov eax,DWORD [20+edi] |
- mul eax |
- mov DWORD [40+esi],eax |
- dec ebx |
- mov DWORD [44+esi],edx |
- jz NEAR L$019sw_end |
- ; Tail Round 6 |
- mov eax,DWORD [24+edi] |
- mul eax |
- mov DWORD [48+esi],eax |
- mov DWORD [52+esi],edx |
-L$019sw_end: |
- pop edi |
- pop esi |
- pop ebx |
- pop ebp |
- ret |
-global _bn_div_words |
-align 16 |
-_bn_div_words: |
-L$_bn_div_words_begin: |
- mov edx,DWORD [4+esp] |
- mov eax,DWORD [8+esp] |
- mov ecx,DWORD [12+esp] |
- div ecx |
- ret |
-global _bn_add_words |
-align 16 |
-_bn_add_words: |
-L$_bn_add_words_begin: |
- push ebp |
- push ebx |
- push esi |
- push edi |
- ; |
- mov ebx,DWORD [20+esp] |
- mov esi,DWORD [24+esp] |
- mov edi,DWORD [28+esp] |
- mov ebp,DWORD [32+esp] |
- xor eax,eax |
- and ebp,4294967288 |
- jz NEAR L$020aw_finish |
-L$021aw_loop: |
- ; Round 0 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- ; Round 1 |
- mov ecx,DWORD [4+esi] |
- mov edx,DWORD [4+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- mov DWORD [4+ebx],ecx |
- ; Round 2 |
- mov ecx,DWORD [8+esi] |
- mov edx,DWORD [8+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- mov DWORD [8+ebx],ecx |
- ; Round 3 |
- mov ecx,DWORD [12+esi] |
- mov edx,DWORD [12+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- mov DWORD [12+ebx],ecx |
- ; Round 4 |
- mov ecx,DWORD [16+esi] |
- mov edx,DWORD [16+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- mov DWORD [16+ebx],ecx |
- ; Round 5 |
- mov ecx,DWORD [20+esi] |
- mov edx,DWORD [20+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- mov DWORD [20+ebx],ecx |
- ; Round 6 |
- mov ecx,DWORD [24+esi] |
- mov edx,DWORD [24+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- mov DWORD [24+ebx],ecx |
- ; Round 7 |
- mov ecx,DWORD [28+esi] |
- mov edx,DWORD [28+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- mov DWORD [28+ebx],ecx |
- ; |
- add esi,32 |
- add edi,32 |
- add ebx,32 |
- sub ebp,8 |
- jnz NEAR L$021aw_loop |
-L$020aw_finish: |
- mov ebp,DWORD [32+esp] |
- and ebp,7 |
- jz NEAR L$022aw_end |
- ; Tail Round 0 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [ebx],ecx |
- jz NEAR L$022aw_end |
- ; Tail Round 1 |
- mov ecx,DWORD [4+esi] |
- mov edx,DWORD [4+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [4+ebx],ecx |
- jz NEAR L$022aw_end |
- ; Tail Round 2 |
- mov ecx,DWORD [8+esi] |
- mov edx,DWORD [8+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [8+ebx],ecx |
- jz NEAR L$022aw_end |
- ; Tail Round 3 |
- mov ecx,DWORD [12+esi] |
- mov edx,DWORD [12+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [12+ebx],ecx |
- jz NEAR L$022aw_end |
- ; Tail Round 4 |
- mov ecx,DWORD [16+esi] |
- mov edx,DWORD [16+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [16+ebx],ecx |
- jz NEAR L$022aw_end |
- ; Tail Round 5 |
- mov ecx,DWORD [20+esi] |
- mov edx,DWORD [20+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [20+ebx],ecx |
- jz NEAR L$022aw_end |
- ; Tail Round 6 |
- mov ecx,DWORD [24+esi] |
- mov edx,DWORD [24+edi] |
- add ecx,eax |
- mov eax,0 |
- adc eax,eax |
- add ecx,edx |
- adc eax,0 |
- mov DWORD [24+ebx],ecx |
-L$022aw_end: |
- pop edi |
- pop esi |
- pop ebx |
- pop ebp |
- ret |
-global _bn_sub_words |
-align 16 |
-_bn_sub_words: |
-L$_bn_sub_words_begin: |
- push ebp |
- push ebx |
- push esi |
- push edi |
- ; |
- mov ebx,DWORD [20+esp] |
- mov esi,DWORD [24+esp] |
- mov edi,DWORD [28+esp] |
- mov ebp,DWORD [32+esp] |
- xor eax,eax |
- and ebp,4294967288 |
- jz NEAR L$023aw_finish |
-L$024aw_loop: |
- ; Round 0 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- ; Round 1 |
- mov ecx,DWORD [4+esi] |
- mov edx,DWORD [4+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [4+ebx],ecx |
- ; Round 2 |
- mov ecx,DWORD [8+esi] |
- mov edx,DWORD [8+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [8+ebx],ecx |
- ; Round 3 |
- mov ecx,DWORD [12+esi] |
- mov edx,DWORD [12+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [12+ebx],ecx |
- ; Round 4 |
- mov ecx,DWORD [16+esi] |
- mov edx,DWORD [16+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [16+ebx],ecx |
- ; Round 5 |
- mov ecx,DWORD [20+esi] |
- mov edx,DWORD [20+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [20+ebx],ecx |
- ; Round 6 |
- mov ecx,DWORD [24+esi] |
- mov edx,DWORD [24+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [24+ebx],ecx |
- ; Round 7 |
- mov ecx,DWORD [28+esi] |
- mov edx,DWORD [28+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [28+ebx],ecx |
- ; |
- add esi,32 |
- add edi,32 |
- add ebx,32 |
- sub ebp,8 |
- jnz NEAR L$024aw_loop |
-L$023aw_finish: |
- mov ebp,DWORD [32+esp] |
- and ebp,7 |
- jz NEAR L$025aw_end |
- ; Tail Round 0 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [ebx],ecx |
- jz NEAR L$025aw_end |
- ; Tail Round 1 |
- mov ecx,DWORD [4+esi] |
- mov edx,DWORD [4+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [4+ebx],ecx |
- jz NEAR L$025aw_end |
- ; Tail Round 2 |
- mov ecx,DWORD [8+esi] |
- mov edx,DWORD [8+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [8+ebx],ecx |
- jz NEAR L$025aw_end |
- ; Tail Round 3 |
- mov ecx,DWORD [12+esi] |
- mov edx,DWORD [12+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [12+ebx],ecx |
- jz NEAR L$025aw_end |
- ; Tail Round 4 |
- mov ecx,DWORD [16+esi] |
- mov edx,DWORD [16+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [16+ebx],ecx |
- jz NEAR L$025aw_end |
- ; Tail Round 5 |
- mov ecx,DWORD [20+esi] |
- mov edx,DWORD [20+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [20+ebx],ecx |
- jz NEAR L$025aw_end |
- ; Tail Round 6 |
- mov ecx,DWORD [24+esi] |
- mov edx,DWORD [24+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [24+ebx],ecx |
-L$025aw_end: |
- pop edi |
- pop esi |
- pop ebx |
- pop ebp |
- ret |
-global _bn_sub_part_words |
-align 16 |
-_bn_sub_part_words: |
-L$_bn_sub_part_words_begin: |
- push ebp |
- push ebx |
- push esi |
- push edi |
- ; |
- mov ebx,DWORD [20+esp] |
- mov esi,DWORD [24+esp] |
- mov edi,DWORD [28+esp] |
- mov ebp,DWORD [32+esp] |
- xor eax,eax |
- and ebp,4294967288 |
- jz NEAR L$026aw_finish |
-L$027aw_loop: |
- ; Round 0 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- ; Round 1 |
- mov ecx,DWORD [4+esi] |
- mov edx,DWORD [4+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [4+ebx],ecx |
- ; Round 2 |
- mov ecx,DWORD [8+esi] |
- mov edx,DWORD [8+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [8+ebx],ecx |
- ; Round 3 |
- mov ecx,DWORD [12+esi] |
- mov edx,DWORD [12+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [12+ebx],ecx |
- ; Round 4 |
- mov ecx,DWORD [16+esi] |
- mov edx,DWORD [16+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [16+ebx],ecx |
- ; Round 5 |
- mov ecx,DWORD [20+esi] |
- mov edx,DWORD [20+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [20+ebx],ecx |
- ; Round 6 |
- mov ecx,DWORD [24+esi] |
- mov edx,DWORD [24+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [24+ebx],ecx |
- ; Round 7 |
- mov ecx,DWORD [28+esi] |
- mov edx,DWORD [28+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [28+ebx],ecx |
- ; |
- add esi,32 |
- add edi,32 |
- add ebx,32 |
- sub ebp,8 |
- jnz NEAR L$027aw_loop |
-L$026aw_finish: |
- mov ebp,DWORD [32+esp] |
- and ebp,7 |
- jz NEAR L$028aw_end |
- ; Tail Round 0 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- add esi,4 |
- add edi,4 |
- add ebx,4 |
- dec ebp |
- jz NEAR L$028aw_end |
- ; Tail Round 1 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- add esi,4 |
- add edi,4 |
- add ebx,4 |
- dec ebp |
- jz NEAR L$028aw_end |
- ; Tail Round 2 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- add esi,4 |
- add edi,4 |
- add ebx,4 |
- dec ebp |
- jz NEAR L$028aw_end |
- ; Tail Round 3 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- add esi,4 |
- add edi,4 |
- add ebx,4 |
- dec ebp |
- jz NEAR L$028aw_end |
- ; Tail Round 4 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- add esi,4 |
- add edi,4 |
- add ebx,4 |
- dec ebp |
- jz NEAR L$028aw_end |
- ; Tail Round 5 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- add esi,4 |
- add edi,4 |
- add ebx,4 |
- dec ebp |
- jz NEAR L$028aw_end |
- ; Tail Round 6 |
- mov ecx,DWORD [esi] |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- add esi,4 |
- add edi,4 |
- add ebx,4 |
-L$028aw_end: |
- cmp DWORD [36+esp],0 |
- je NEAR L$029pw_end |
- mov ebp,DWORD [36+esp] |
- cmp ebp,0 |
- je NEAR L$029pw_end |
- jge NEAR L$030pw_pos |
- ; pw_neg |
- mov edx,0 |
- sub edx,ebp |
- mov ebp,edx |
- and ebp,4294967288 |
- jz NEAR L$031pw_neg_finish |
-L$032pw_neg_loop: |
- ; dl<0 Round 0 |
- mov ecx,0 |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [ebx],ecx |
- ; dl<0 Round 1 |
- mov ecx,0 |
- mov edx,DWORD [4+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [4+ebx],ecx |
- ; dl<0 Round 2 |
- mov ecx,0 |
- mov edx,DWORD [8+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [8+ebx],ecx |
- ; dl<0 Round 3 |
- mov ecx,0 |
- mov edx,DWORD [12+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [12+ebx],ecx |
- ; dl<0 Round 4 |
- mov ecx,0 |
- mov edx,DWORD [16+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [16+ebx],ecx |
- ; dl<0 Round 5 |
- mov ecx,0 |
- mov edx,DWORD [20+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [20+ebx],ecx |
- ; dl<0 Round 6 |
- mov ecx,0 |
- mov edx,DWORD [24+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [24+ebx],ecx |
- ; dl<0 Round 7 |
- mov ecx,0 |
- mov edx,DWORD [28+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [28+ebx],ecx |
- ; |
- add edi,32 |
- add ebx,32 |
- sub ebp,8 |
- jnz NEAR L$032pw_neg_loop |
-L$031pw_neg_finish: |
- mov edx,DWORD [36+esp] |
- mov ebp,0 |
- sub ebp,edx |
- and ebp,7 |
- jz NEAR L$029pw_end |
- ; dl<0 Tail Round 0 |
- mov ecx,0 |
- mov edx,DWORD [edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [ebx],ecx |
- jz NEAR L$029pw_end |
- ; dl<0 Tail Round 1 |
- mov ecx,0 |
- mov edx,DWORD [4+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [4+ebx],ecx |
- jz NEAR L$029pw_end |
- ; dl<0 Tail Round 2 |
- mov ecx,0 |
- mov edx,DWORD [8+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [8+ebx],ecx |
- jz NEAR L$029pw_end |
- ; dl<0 Tail Round 3 |
- mov ecx,0 |
- mov edx,DWORD [12+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [12+ebx],ecx |
- jz NEAR L$029pw_end |
- ; dl<0 Tail Round 4 |
- mov ecx,0 |
- mov edx,DWORD [16+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [16+ebx],ecx |
- jz NEAR L$029pw_end |
- ; dl<0 Tail Round 5 |
- mov ecx,0 |
- mov edx,DWORD [20+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- dec ebp |
- mov DWORD [20+ebx],ecx |
- jz NEAR L$029pw_end |
- ; dl<0 Tail Round 6 |
- mov ecx,0 |
- mov edx,DWORD [24+edi] |
- sub ecx,eax |
- mov eax,0 |
- adc eax,eax |
- sub ecx,edx |
- adc eax,0 |
- mov DWORD [24+ebx],ecx |
- jmp NEAR L$029pw_end |
-L$030pw_pos: |
- and ebp,4294967288 |
- jz NEAR L$033pw_pos_finish |
-L$034pw_pos_loop: |
- ; dl>0 Round 0 |
- mov ecx,DWORD [esi] |
- sub ecx,eax |
- mov DWORD [ebx],ecx |
- jnc NEAR L$035pw_nc0 |
- ; dl>0 Round 1 |
- mov ecx,DWORD [4+esi] |
- sub ecx,eax |
- mov DWORD [4+ebx],ecx |
- jnc NEAR L$036pw_nc1 |
- ; dl>0 Round 2 |
- mov ecx,DWORD [8+esi] |
- sub ecx,eax |
- mov DWORD [8+ebx],ecx |
- jnc NEAR L$037pw_nc2 |
- ; dl>0 Round 3 |
- mov ecx,DWORD [12+esi] |
- sub ecx,eax |
- mov DWORD [12+ebx],ecx |
- jnc NEAR L$038pw_nc3 |
- ; dl>0 Round 4 |
- mov ecx,DWORD [16+esi] |
- sub ecx,eax |
- mov DWORD [16+ebx],ecx |
- jnc NEAR L$039pw_nc4 |
- ; dl>0 Round 5 |
- mov ecx,DWORD [20+esi] |
- sub ecx,eax |
- mov DWORD [20+ebx],ecx |
- jnc NEAR L$040pw_nc5 |
- ; dl>0 Round 6 |
- mov ecx,DWORD [24+esi] |
- sub ecx,eax |
- mov DWORD [24+ebx],ecx |
- jnc NEAR L$041pw_nc6 |
- ; dl>0 Round 7 |
- mov ecx,DWORD [28+esi] |
- sub ecx,eax |
- mov DWORD [28+ebx],ecx |
- jnc NEAR L$042pw_nc7 |
- ; |
- add esi,32 |
- add ebx,32 |
- sub ebp,8 |
- jnz NEAR L$034pw_pos_loop |
-L$033pw_pos_finish: |
- mov ebp,DWORD [36+esp] |
- and ebp,7 |
- jz NEAR L$029pw_end |
- ; dl>0 Tail Round 0 |
- mov ecx,DWORD [esi] |
- sub ecx,eax |
- mov DWORD [ebx],ecx |
- jnc NEAR L$043pw_tail_nc0 |
- dec ebp |
- jz NEAR L$029pw_end |
- ; dl>0 Tail Round 1 |
- mov ecx,DWORD [4+esi] |
- sub ecx,eax |
- mov DWORD [4+ebx],ecx |
- jnc NEAR L$044pw_tail_nc1 |
- dec ebp |
- jz NEAR L$029pw_end |
- ; dl>0 Tail Round 2 |
- mov ecx,DWORD [8+esi] |
- sub ecx,eax |
- mov DWORD [8+ebx],ecx |
- jnc NEAR L$045pw_tail_nc2 |
- dec ebp |
- jz NEAR L$029pw_end |
- ; dl>0 Tail Round 3 |
- mov ecx,DWORD [12+esi] |
- sub ecx,eax |
- mov DWORD [12+ebx],ecx |
- jnc NEAR L$046pw_tail_nc3 |
- dec ebp |
- jz NEAR L$029pw_end |
- ; dl>0 Tail Round 4 |
- mov ecx,DWORD [16+esi] |
- sub ecx,eax |
- mov DWORD [16+ebx],ecx |
- jnc NEAR L$047pw_tail_nc4 |
- dec ebp |
- jz NEAR L$029pw_end |
- ; dl>0 Tail Round 5 |
- mov ecx,DWORD [20+esi] |
- sub ecx,eax |
- mov DWORD [20+ebx],ecx |
- jnc NEAR L$048pw_tail_nc5 |
- dec ebp |
- jz NEAR L$029pw_end |
- ; dl>0 Tail Round 6 |
- mov ecx,DWORD [24+esi] |
- sub ecx,eax |
- mov DWORD [24+ebx],ecx |
- jnc NEAR L$049pw_tail_nc6 |
- mov eax,1 |
- jmp NEAR L$029pw_end |
-L$050pw_nc_loop: |
- mov ecx,DWORD [esi] |
- mov DWORD [ebx],ecx |
-L$035pw_nc0: |
- mov ecx,DWORD [4+esi] |
- mov DWORD [4+ebx],ecx |
-L$036pw_nc1: |
- mov ecx,DWORD [8+esi] |
- mov DWORD [8+ebx],ecx |
-L$037pw_nc2: |
- mov ecx,DWORD [12+esi] |
- mov DWORD [12+ebx],ecx |
-L$038pw_nc3: |
- mov ecx,DWORD [16+esi] |
- mov DWORD [16+ebx],ecx |
-L$039pw_nc4: |
- mov ecx,DWORD [20+esi] |
- mov DWORD [20+ebx],ecx |
-L$040pw_nc5: |
- mov ecx,DWORD [24+esi] |
- mov DWORD [24+ebx],ecx |
-L$041pw_nc6: |
- mov ecx,DWORD [28+esi] |
- mov DWORD [28+ebx],ecx |
-L$042pw_nc7: |
- ; |
- add esi,32 |
- add ebx,32 |
- sub ebp,8 |
- jnz NEAR L$050pw_nc_loop |
- mov ebp,DWORD [36+esp] |
- and ebp,7 |
- jz NEAR L$051pw_nc_end |
- mov ecx,DWORD [esi] |
- mov DWORD [ebx],ecx |
-L$043pw_tail_nc0: |
- dec ebp |
- jz NEAR L$051pw_nc_end |
- mov ecx,DWORD [4+esi] |
- mov DWORD [4+ebx],ecx |
-L$044pw_tail_nc1: |
- dec ebp |
- jz NEAR L$051pw_nc_end |
- mov ecx,DWORD [8+esi] |
- mov DWORD [8+ebx],ecx |
-L$045pw_tail_nc2: |
- dec ebp |
- jz NEAR L$051pw_nc_end |
- mov ecx,DWORD [12+esi] |
- mov DWORD [12+ebx],ecx |
-L$046pw_tail_nc3: |
- dec ebp |
- jz NEAR L$051pw_nc_end |
- mov ecx,DWORD [16+esi] |
- mov DWORD [16+ebx],ecx |
-L$047pw_tail_nc4: |
- dec ebp |
- jz NEAR L$051pw_nc_end |
- mov ecx,DWORD [20+esi] |
- mov DWORD [20+ebx],ecx |
-L$048pw_tail_nc5: |
- dec ebp |
- jz NEAR L$051pw_nc_end |
- mov ecx,DWORD [24+esi] |
- mov DWORD [24+ebx],ecx |
-L$049pw_tail_nc6: |
-L$051pw_nc_end: |
- mov eax,0 |
-L$029pw_end: |
- pop edi |
- pop esi |
- pop ebx |
- pop ebp |
- ret |
-segment .bss |
-common _OPENSSL_ia32cap_P 16 |