| Index: third_party/boringssl/win-x86/crypto/sha/sha512-586.asm
|
| diff --git a/third_party/boringssl/win-x86/crypto/sha/sha512-586.asm b/third_party/boringssl/win-x86/crypto/sha/sha512-586.asm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fc688d78411f2845aa56c01efb95bb6cfbdc403e
|
| --- /dev/null
|
| +++ b/third_party/boringssl/win-x86/crypto/sha/sha512-586.asm
|
| @@ -0,0 +1,577 @@
|
| +%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
|
| +global _sha512_block_data_order
|
| +align 16
|
| +_sha512_block_data_order:
|
| +L$_sha512_block_data_order_begin:
|
| + push ebp
|
| + push ebx
|
| + push esi
|
| + push edi
|
| + mov esi,DWORD [20+esp]
|
| + mov edi,DWORD [24+esp]
|
| + mov eax,DWORD [28+esp]
|
| + mov ebx,esp
|
| + call L$000pic_point
|
| +L$000pic_point:
|
| + pop ebp
|
| + lea ebp,[(L$001K512-L$000pic_point)+ebp]
|
| + sub esp,16
|
| + and esp,-64
|
| + shl eax,7
|
| + add eax,edi
|
| + mov DWORD [esp],esi
|
| + mov DWORD [4+esp],edi
|
| + mov DWORD [8+esp],eax
|
| + mov DWORD [12+esp],ebx
|
| +align 16
|
| +L$002loop_x86:
|
| + mov eax,DWORD [edi]
|
| + mov ebx,DWORD [4+edi]
|
| + mov ecx,DWORD [8+edi]
|
| + mov edx,DWORD [12+edi]
|
| + bswap eax
|
| + bswap ebx
|
| + bswap ecx
|
| + bswap edx
|
| + push eax
|
| + push ebx
|
| + push ecx
|
| + push edx
|
| + mov eax,DWORD [16+edi]
|
| + mov ebx,DWORD [20+edi]
|
| + mov ecx,DWORD [24+edi]
|
| + mov edx,DWORD [28+edi]
|
| + bswap eax
|
| + bswap ebx
|
| + bswap ecx
|
| + bswap edx
|
| + push eax
|
| + push ebx
|
| + push ecx
|
| + push edx
|
| + mov eax,DWORD [32+edi]
|
| + mov ebx,DWORD [36+edi]
|
| + mov ecx,DWORD [40+edi]
|
| + mov edx,DWORD [44+edi]
|
| + bswap eax
|
| + bswap ebx
|
| + bswap ecx
|
| + bswap edx
|
| + push eax
|
| + push ebx
|
| + push ecx
|
| + push edx
|
| + mov eax,DWORD [48+edi]
|
| + mov ebx,DWORD [52+edi]
|
| + mov ecx,DWORD [56+edi]
|
| + mov edx,DWORD [60+edi]
|
| + bswap eax
|
| + bswap ebx
|
| + bswap ecx
|
| + bswap edx
|
| + push eax
|
| + push ebx
|
| + push ecx
|
| + push edx
|
| + mov eax,DWORD [64+edi]
|
| + mov ebx,DWORD [68+edi]
|
| + mov ecx,DWORD [72+edi]
|
| + mov edx,DWORD [76+edi]
|
| + bswap eax
|
| + bswap ebx
|
| + bswap ecx
|
| + bswap edx
|
| + push eax
|
| + push ebx
|
| + push ecx
|
| + push edx
|
| + mov eax,DWORD [80+edi]
|
| + mov ebx,DWORD [84+edi]
|
| + mov ecx,DWORD [88+edi]
|
| + mov edx,DWORD [92+edi]
|
| + bswap eax
|
| + bswap ebx
|
| + bswap ecx
|
| + bswap edx
|
| + push eax
|
| + push ebx
|
| + push ecx
|
| + push edx
|
| + mov eax,DWORD [96+edi]
|
| + mov ebx,DWORD [100+edi]
|
| + mov ecx,DWORD [104+edi]
|
| + mov edx,DWORD [108+edi]
|
| + bswap eax
|
| + bswap ebx
|
| + bswap ecx
|
| + bswap edx
|
| + push eax
|
| + push ebx
|
| + push ecx
|
| + push edx
|
| + mov eax,DWORD [112+edi]
|
| + mov ebx,DWORD [116+edi]
|
| + mov ecx,DWORD [120+edi]
|
| + mov edx,DWORD [124+edi]
|
| + bswap eax
|
| + bswap ebx
|
| + bswap ecx
|
| + bswap edx
|
| + push eax
|
| + push ebx
|
| + push ecx
|
| + push edx
|
| + add edi,128
|
| + sub esp,72
|
| + mov DWORD [204+esp],edi
|
| + lea edi,[8+esp]
|
| + mov ecx,16
|
| +dd 2784229001
|
| +align 16
|
| +L$00300_15_x86:
|
| + mov ecx,DWORD [40+esp]
|
| + mov edx,DWORD [44+esp]
|
| + mov esi,ecx
|
| + shr ecx,9
|
| + mov edi,edx
|
| + shr edx,9
|
| + mov ebx,ecx
|
| + shl esi,14
|
| + mov eax,edx
|
| + shl edi,14
|
| + xor ebx,esi
|
| + shr ecx,5
|
| + xor eax,edi
|
| + shr edx,5
|
| + xor eax,ecx
|
| + shl esi,4
|
| + xor ebx,edx
|
| + shl edi,4
|
| + xor ebx,esi
|
| + shr ecx,4
|
| + xor eax,edi
|
| + shr edx,4
|
| + xor eax,ecx
|
| + shl esi,5
|
| + xor ebx,edx
|
| + shl edi,5
|
| + xor eax,esi
|
| + xor ebx,edi
|
| + mov ecx,DWORD [48+esp]
|
| + mov edx,DWORD [52+esp]
|
| + mov esi,DWORD [56+esp]
|
| + mov edi,DWORD [60+esp]
|
| + add eax,DWORD [64+esp]
|
| + adc ebx,DWORD [68+esp]
|
| + xor ecx,esi
|
| + xor edx,edi
|
| + and ecx,DWORD [40+esp]
|
| + and edx,DWORD [44+esp]
|
| + add eax,DWORD [192+esp]
|
| + adc ebx,DWORD [196+esp]
|
| + xor ecx,esi
|
| + xor edx,edi
|
| + mov esi,DWORD [ebp]
|
| + mov edi,DWORD [4+ebp]
|
| + add eax,ecx
|
| + adc ebx,edx
|
| + mov ecx,DWORD [32+esp]
|
| + mov edx,DWORD [36+esp]
|
| + add eax,esi
|
| + adc ebx,edi
|
| + mov DWORD [esp],eax
|
| + mov DWORD [4+esp],ebx
|
| + add eax,ecx
|
| + adc ebx,edx
|
| + mov ecx,DWORD [8+esp]
|
| + mov edx,DWORD [12+esp]
|
| + mov DWORD [32+esp],eax
|
| + mov DWORD [36+esp],ebx
|
| + mov esi,ecx
|
| + shr ecx,2
|
| + mov edi,edx
|
| + shr edx,2
|
| + mov ebx,ecx
|
| + shl esi,4
|
| + mov eax,edx
|
| + shl edi,4
|
| + xor ebx,esi
|
| + shr ecx,5
|
| + xor eax,edi
|
| + shr edx,5
|
| + xor ebx,ecx
|
| + shl esi,21
|
| + xor eax,edx
|
| + shl edi,21
|
| + xor eax,esi
|
| + shr ecx,21
|
| + xor ebx,edi
|
| + shr edx,21
|
| + xor eax,ecx
|
| + shl esi,5
|
| + xor ebx,edx
|
| + shl edi,5
|
| + xor eax,esi
|
| + xor ebx,edi
|
| + mov ecx,DWORD [8+esp]
|
| + mov edx,DWORD [12+esp]
|
| + mov esi,DWORD [16+esp]
|
| + mov edi,DWORD [20+esp]
|
| + add eax,DWORD [esp]
|
| + adc ebx,DWORD [4+esp]
|
| + or ecx,esi
|
| + or edx,edi
|
| + and ecx,DWORD [24+esp]
|
| + and edx,DWORD [28+esp]
|
| + and esi,DWORD [8+esp]
|
| + and edi,DWORD [12+esp]
|
| + or ecx,esi
|
| + or edx,edi
|
| + add eax,ecx
|
| + adc ebx,edx
|
| + mov DWORD [esp],eax
|
| + mov DWORD [4+esp],ebx
|
| + mov dl,BYTE [ebp]
|
| + sub esp,8
|
| + lea ebp,[8+ebp]
|
| + cmp dl,148
|
| + jne NEAR L$00300_15_x86
|
| +align 16
|
| +L$00416_79_x86:
|
| + mov ecx,DWORD [312+esp]
|
| + mov edx,DWORD [316+esp]
|
| + mov esi,ecx
|
| + shr ecx,1
|
| + mov edi,edx
|
| + shr edx,1
|
| + mov eax,ecx
|
| + shl esi,24
|
| + mov ebx,edx
|
| + shl edi,24
|
| + xor ebx,esi
|
| + shr ecx,6
|
| + xor eax,edi
|
| + shr edx,6
|
| + xor eax,ecx
|
| + shl esi,7
|
| + xor ebx,edx
|
| + shl edi,1
|
| + xor ebx,esi
|
| + shr ecx,1
|
| + xor eax,edi
|
| + shr edx,1
|
| + xor eax,ecx
|
| + shl edi,6
|
| + xor ebx,edx
|
| + xor eax,edi
|
| + mov DWORD [esp],eax
|
| + mov DWORD [4+esp],ebx
|
| + mov ecx,DWORD [208+esp]
|
| + mov edx,DWORD [212+esp]
|
| + mov esi,ecx
|
| + shr ecx,6
|
| + mov edi,edx
|
| + shr edx,6
|
| + mov eax,ecx
|
| + shl esi,3
|
| + mov ebx,edx
|
| + shl edi,3
|
| + xor eax,esi
|
| + shr ecx,13
|
| + xor ebx,edi
|
| + shr edx,13
|
| + xor eax,ecx
|
| + shl esi,10
|
| + xor ebx,edx
|
| + shl edi,10
|
| + xor ebx,esi
|
| + shr ecx,10
|
| + xor eax,edi
|
| + shr edx,10
|
| + xor ebx,ecx
|
| + shl edi,13
|
| + xor eax,edx
|
| + xor eax,edi
|
| + mov ecx,DWORD [320+esp]
|
| + mov edx,DWORD [324+esp]
|
| + add eax,DWORD [esp]
|
| + adc ebx,DWORD [4+esp]
|
| + mov esi,DWORD [248+esp]
|
| + mov edi,DWORD [252+esp]
|
| + add eax,ecx
|
| + adc ebx,edx
|
| + add eax,esi
|
| + adc ebx,edi
|
| + mov DWORD [192+esp],eax
|
| + mov DWORD [196+esp],ebx
|
| + mov ecx,DWORD [40+esp]
|
| + mov edx,DWORD [44+esp]
|
| + mov esi,ecx
|
| + shr ecx,9
|
| + mov edi,edx
|
| + shr edx,9
|
| + mov ebx,ecx
|
| + shl esi,14
|
| + mov eax,edx
|
| + shl edi,14
|
| + xor ebx,esi
|
| + shr ecx,5
|
| + xor eax,edi
|
| + shr edx,5
|
| + xor eax,ecx
|
| + shl esi,4
|
| + xor ebx,edx
|
| + shl edi,4
|
| + xor ebx,esi
|
| + shr ecx,4
|
| + xor eax,edi
|
| + shr edx,4
|
| + xor eax,ecx
|
| + shl esi,5
|
| + xor ebx,edx
|
| + shl edi,5
|
| + xor eax,esi
|
| + xor ebx,edi
|
| + mov ecx,DWORD [48+esp]
|
| + mov edx,DWORD [52+esp]
|
| + mov esi,DWORD [56+esp]
|
| + mov edi,DWORD [60+esp]
|
| + add eax,DWORD [64+esp]
|
| + adc ebx,DWORD [68+esp]
|
| + xor ecx,esi
|
| + xor edx,edi
|
| + and ecx,DWORD [40+esp]
|
| + and edx,DWORD [44+esp]
|
| + add eax,DWORD [192+esp]
|
| + adc ebx,DWORD [196+esp]
|
| + xor ecx,esi
|
| + xor edx,edi
|
| + mov esi,DWORD [ebp]
|
| + mov edi,DWORD [4+ebp]
|
| + add eax,ecx
|
| + adc ebx,edx
|
| + mov ecx,DWORD [32+esp]
|
| + mov edx,DWORD [36+esp]
|
| + add eax,esi
|
| + adc ebx,edi
|
| + mov DWORD [esp],eax
|
| + mov DWORD [4+esp],ebx
|
| + add eax,ecx
|
| + adc ebx,edx
|
| + mov ecx,DWORD [8+esp]
|
| + mov edx,DWORD [12+esp]
|
| + mov DWORD [32+esp],eax
|
| + mov DWORD [36+esp],ebx
|
| + mov esi,ecx
|
| + shr ecx,2
|
| + mov edi,edx
|
| + shr edx,2
|
| + mov ebx,ecx
|
| + shl esi,4
|
| + mov eax,edx
|
| + shl edi,4
|
| + xor ebx,esi
|
| + shr ecx,5
|
| + xor eax,edi
|
| + shr edx,5
|
| + xor ebx,ecx
|
| + shl esi,21
|
| + xor eax,edx
|
| + shl edi,21
|
| + xor eax,esi
|
| + shr ecx,21
|
| + xor ebx,edi
|
| + shr edx,21
|
| + xor eax,ecx
|
| + shl esi,5
|
| + xor ebx,edx
|
| + shl edi,5
|
| + xor eax,esi
|
| + xor ebx,edi
|
| + mov ecx,DWORD [8+esp]
|
| + mov edx,DWORD [12+esp]
|
| + mov esi,DWORD [16+esp]
|
| + mov edi,DWORD [20+esp]
|
| + add eax,DWORD [esp]
|
| + adc ebx,DWORD [4+esp]
|
| + or ecx,esi
|
| + or edx,edi
|
| + and ecx,DWORD [24+esp]
|
| + and edx,DWORD [28+esp]
|
| + and esi,DWORD [8+esp]
|
| + and edi,DWORD [12+esp]
|
| + or ecx,esi
|
| + or edx,edi
|
| + add eax,ecx
|
| + adc ebx,edx
|
| + mov DWORD [esp],eax
|
| + mov DWORD [4+esp],ebx
|
| + mov dl,BYTE [ebp]
|
| + sub esp,8
|
| + lea ebp,[8+ebp]
|
| + cmp dl,23
|
| + jne NEAR L$00416_79_x86
|
| + mov esi,DWORD [840+esp]
|
| + mov edi,DWORD [844+esp]
|
| + mov eax,DWORD [esi]
|
| + mov ebx,DWORD [4+esi]
|
| + mov ecx,DWORD [8+esi]
|
| + mov edx,DWORD [12+esi]
|
| + add eax,DWORD [8+esp]
|
| + adc ebx,DWORD [12+esp]
|
| + mov DWORD [esi],eax
|
| + mov DWORD [4+esi],ebx
|
| + add ecx,DWORD [16+esp]
|
| + adc edx,DWORD [20+esp]
|
| + mov DWORD [8+esi],ecx
|
| + mov DWORD [12+esi],edx
|
| + mov eax,DWORD [16+esi]
|
| + mov ebx,DWORD [20+esi]
|
| + mov ecx,DWORD [24+esi]
|
| + mov edx,DWORD [28+esi]
|
| + add eax,DWORD [24+esp]
|
| + adc ebx,DWORD [28+esp]
|
| + mov DWORD [16+esi],eax
|
| + mov DWORD [20+esi],ebx
|
| + add ecx,DWORD [32+esp]
|
| + adc edx,DWORD [36+esp]
|
| + mov DWORD [24+esi],ecx
|
| + mov DWORD [28+esi],edx
|
| + mov eax,DWORD [32+esi]
|
| + mov ebx,DWORD [36+esi]
|
| + mov ecx,DWORD [40+esi]
|
| + mov edx,DWORD [44+esi]
|
| + add eax,DWORD [40+esp]
|
| + adc ebx,DWORD [44+esp]
|
| + mov DWORD [32+esi],eax
|
| + mov DWORD [36+esi],ebx
|
| + add ecx,DWORD [48+esp]
|
| + adc edx,DWORD [52+esp]
|
| + mov DWORD [40+esi],ecx
|
| + mov DWORD [44+esi],edx
|
| + mov eax,DWORD [48+esi]
|
| + mov ebx,DWORD [52+esi]
|
| + mov ecx,DWORD [56+esi]
|
| + mov edx,DWORD [60+esi]
|
| + add eax,DWORD [56+esp]
|
| + adc ebx,DWORD [60+esp]
|
| + mov DWORD [48+esi],eax
|
| + mov DWORD [52+esi],ebx
|
| + add ecx,DWORD [64+esp]
|
| + adc edx,DWORD [68+esp]
|
| + mov DWORD [56+esi],ecx
|
| + mov DWORD [60+esi],edx
|
| + add esp,840
|
| + sub ebp,640
|
| + cmp edi,DWORD [8+esp]
|
| + jb NEAR L$002loop_x86
|
| + mov esp,DWORD [12+esp]
|
| + pop edi
|
| + pop esi
|
| + pop ebx
|
| + pop ebp
|
| + ret
|
| +align 64
|
| +L$001K512:
|
| +dd 3609767458,1116352408
|
| +dd 602891725,1899447441
|
| +dd 3964484399,3049323471
|
| +dd 2173295548,3921009573
|
| +dd 4081628472,961987163
|
| +dd 3053834265,1508970993
|
| +dd 2937671579,2453635748
|
| +dd 3664609560,2870763221
|
| +dd 2734883394,3624381080
|
| +dd 1164996542,310598401
|
| +dd 1323610764,607225278
|
| +dd 3590304994,1426881987
|
| +dd 4068182383,1925078388
|
| +dd 991336113,2162078206
|
| +dd 633803317,2614888103
|
| +dd 3479774868,3248222580
|
| +dd 2666613458,3835390401
|
| +dd 944711139,4022224774
|
| +dd 2341262773,264347078
|
| +dd 2007800933,604807628
|
| +dd 1495990901,770255983
|
| +dd 1856431235,1249150122
|
| +dd 3175218132,1555081692
|
| +dd 2198950837,1996064986
|
| +dd 3999719339,2554220882
|
| +dd 766784016,2821834349
|
| +dd 2566594879,2952996808
|
| +dd 3203337956,3210313671
|
| +dd 1034457026,3336571891
|
| +dd 2466948901,3584528711
|
| +dd 3758326383,113926993
|
| +dd 168717936,338241895
|
| +dd 1188179964,666307205
|
| +dd 1546045734,773529912
|
| +dd 1522805485,1294757372
|
| +dd 2643833823,1396182291
|
| +dd 2343527390,1695183700
|
| +dd 1014477480,1986661051
|
| +dd 1206759142,2177026350
|
| +dd 344077627,2456956037
|
| +dd 1290863460,2730485921
|
| +dd 3158454273,2820302411
|
| +dd 3505952657,3259730800
|
| +dd 106217008,3345764771
|
| +dd 3606008344,3516065817
|
| +dd 1432725776,3600352804
|
| +dd 1467031594,4094571909
|
| +dd 851169720,275423344
|
| +dd 3100823752,430227734
|
| +dd 1363258195,506948616
|
| +dd 3750685593,659060556
|
| +dd 3785050280,883997877
|
| +dd 3318307427,958139571
|
| +dd 3812723403,1322822218
|
| +dd 2003034995,1537002063
|
| +dd 3602036899,1747873779
|
| +dd 1575990012,1955562222
|
| +dd 1125592928,2024104815
|
| +dd 2716904306,2227730452
|
| +dd 442776044,2361852424
|
| +dd 593698344,2428436474
|
| +dd 3733110249,2756734187
|
| +dd 2999351573,3204031479
|
| +dd 3815920427,3329325298
|
| +dd 3928383900,3391569614
|
| +dd 566280711,3515267271
|
| +dd 3454069534,3940187606
|
| +dd 4000239992,4118630271
|
| +dd 1914138554,116418474
|
| +dd 2731055270,174292421
|
| +dd 3203993006,289380356
|
| +dd 320620315,460393269
|
| +dd 587496836,685471733
|
| +dd 1086792851,852142971
|
| +dd 365543100,1017036298
|
| +dd 2618297676,1126000580
|
| +dd 3409855158,1288033470
|
| +dd 4234509866,1501505948
|
| +dd 987167468,1607167915
|
| +dd 1246189591,1816402316
|
| +dd 67438087,66051
|
| +dd 202182159,134810123
|
| +db 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
|
| +db 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
|
| +db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
|
| +db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
|
| +db 62,0
|
|
|