summaryrefslogtreecommitdiffstats
path: root/win-x86/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'win-x86/crypto')
-rw-r--r--win-x86/crypto/sha/sha1-586.asm182
-rw-r--r--win-x86/crypto/sha/sha256-586.asm236
2 files changed, 24 insertions, 394 deletions
diff --git a/win-x86/crypto/sha/sha1-586.asm b/win-x86/crypto/sha/sha1-586.asm
index e24449d..43bf964 100644
--- a/win-x86/crypto/sha/sha1-586.asm
+++ b/win-x86/crypto/sha/sha1-586.asm
@@ -35,8 +35,6 @@ L$000pic_point:
mov ecx,DWORD [8+esi]
test eax,16777216
jz NEAR L$001x86
- test ecx,536870912
- jnz NEAR L$shaext_shortcut
jmp NEAR L$ssse3_shortcut
align 16
L$001x86:
@@ -1405,7 +1403,7 @@ L$002loop:
pop ebp
ret
align 16
-__sha1_block_data_order_shaext:
+__sha1_block_data_order_ssse3:
push ebp
push ebx
push esi
@@ -1414,174 +1412,6 @@ __sha1_block_data_order_shaext:
L$003pic_point:
pop ebp
lea ebp,[(L$K_XX_XX-L$003pic_point)+ebp]
-L$shaext_shortcut:
- mov edi,DWORD [20+esp]
- mov ebx,esp
- mov esi,DWORD [24+esp]
- mov ecx,DWORD [28+esp]
- sub esp,32
- movdqu xmm0,[edi]
- movd xmm1,DWORD [16+edi]
- and esp,-32
- movdqa xmm3,[80+ebp]
- movdqu xmm4,[esi]
- pshufd xmm0,xmm0,27
- movdqu xmm5,[16+esi]
- pshufd xmm1,xmm1,27
- movdqu xmm6,[32+esi]
-db 102,15,56,0,227
- movdqu xmm7,[48+esi]
-db 102,15,56,0,235
-db 102,15,56,0,243
-db 102,15,56,0,251
- jmp NEAR L$004loop_shaext
-align 16
-L$004loop_shaext:
- dec ecx
- lea eax,[64+esi]
- movdqa [esp],xmm1
- paddd xmm1,xmm4
- cmovne esi,eax
- movdqa [16+esp],xmm0
-db 15,56,201,229
- movdqa xmm2,xmm0
-db 15,58,204,193,0
-db 15,56,200,213
- pxor xmm4,xmm6
-db 15,56,201,238
-db 15,56,202,231
- movdqa xmm1,xmm0
-db 15,58,204,194,0
-db 15,56,200,206
- pxor xmm5,xmm7
-db 15,56,202,236
-db 15,56,201,247
- movdqa xmm2,xmm0
-db 15,58,204,193,0
-db 15,56,200,215
- pxor xmm6,xmm4
-db 15,56,201,252
-db 15,56,202,245
- movdqa xmm1,xmm0
-db 15,58,204,194,0
-db 15,56,200,204
- pxor xmm7,xmm5
-db 15,56,202,254
-db 15,56,201,229
- movdqa xmm2,xmm0
-db 15,58,204,193,0
-db 15,56,200,213
- pxor xmm4,xmm6
-db 15,56,201,238
-db 15,56,202,231
- movdqa xmm1,xmm0
-db 15,58,204,194,1
-db 15,56,200,206
- pxor xmm5,xmm7
-db 15,56,202,236
-db 15,56,201,247
- movdqa xmm2,xmm0
-db 15,58,204,193,1
-db 15,56,200,215
- pxor xmm6,xmm4
-db 15,56,201,252
-db 15,56,202,245
- movdqa xmm1,xmm0
-db 15,58,204,194,1
-db 15,56,200,204
- pxor xmm7,xmm5
-db 15,56,202,254
-db 15,56,201,229
- movdqa xmm2,xmm0
-db 15,58,204,193,1
-db 15,56,200,213
- pxor xmm4,xmm6
-db 15,56,201,238
-db 15,56,202,231
- movdqa xmm1,xmm0
-db 15,58,204,194,1
-db 15,56,200,206
- pxor xmm5,xmm7
-db 15,56,202,236
-db 15,56,201,247
- movdqa xmm2,xmm0
-db 15,58,204,193,2
-db 15,56,200,215
- pxor xmm6,xmm4
-db 15,56,201,252
-db 15,56,202,245
- movdqa xmm1,xmm0
-db 15,58,204,194,2
-db 15,56,200,204
- pxor xmm7,xmm5
-db 15,56,202,254
-db 15,56,201,229
- movdqa xmm2,xmm0
-db 15,58,204,193,2
-db 15,56,200,213
- pxor xmm4,xmm6
-db 15,56,201,238
-db 15,56,202,231
- movdqa xmm1,xmm0
-db 15,58,204,194,2
-db 15,56,200,206
- pxor xmm5,xmm7
-db 15,56,202,236
-db 15,56,201,247
- movdqa xmm2,xmm0
-db 15,58,204,193,2
-db 15,56,200,215
- pxor xmm6,xmm4
-db 15,56,201,252
-db 15,56,202,245
- movdqa xmm1,xmm0
-db 15,58,204,194,3
-db 15,56,200,204
- pxor xmm7,xmm5
-db 15,56,202,254
- movdqu xmm4,[esi]
- movdqa xmm2,xmm0
-db 15,58,204,193,3
-db 15,56,200,213
- movdqu xmm5,[16+esi]
-db 102,15,56,0,227
- movdqa xmm1,xmm0
-db 15,58,204,194,3
-db 15,56,200,206
- movdqu xmm6,[32+esi]
-db 102,15,56,0,235
- movdqa xmm2,xmm0
-db 15,58,204,193,3
-db 15,56,200,215
- movdqu xmm7,[48+esi]
-db 102,15,56,0,243
- movdqa xmm1,xmm0
-db 15,58,204,194,3
- movdqa xmm2,[esp]
-db 102,15,56,0,251
-db 15,56,200,202
- paddd xmm0,[16+esp]
- jnz NEAR L$004loop_shaext
- pshufd xmm0,xmm0,27
- pshufd xmm1,xmm1,27
- movdqu [edi],xmm0
- movd DWORD [16+edi],xmm1
- mov esp,ebx
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-align 16
-__sha1_block_data_order_ssse3:
- push ebp
- push ebx
- push esi
- push edi
- call L$005pic_point
-L$005pic_point:
- pop ebp
- lea ebp,[(L$K_XX_XX-L$005pic_point)+ebp]
L$ssse3_shortcut:
movdqa xmm7,[ebp]
movdqa xmm0,[16+ebp]
@@ -1634,9 +1464,9 @@ db 102,15,56,0,222
xor ebp,edx
pshufd xmm4,xmm0,238
and esi,ebp
- jmp NEAR L$006loop
+ jmp NEAR L$004loop
align 16
-L$006loop:
+L$004loop:
ror ebx,2
xor esi,edx
mov ebp,eax
@@ -2539,7 +2369,7 @@ L$006loop:
add ecx,edx
mov ebp,DWORD [196+esp]
cmp ebp,DWORD [200+esp]
- je NEAR L$007done
+ je NEAR L$005done
movdqa xmm7,[160+esp]
movdqa xmm6,[176+esp]
movdqu xmm0,[ebp]
@@ -2674,9 +2504,9 @@ db 102,15,56,0,222
pshufd xmm4,xmm0,238
and esi,ebx
mov ebx,ebp
- jmp NEAR L$006loop
+ jmp NEAR L$004loop
align 16
-L$007done:
+L$005done:
add ebx,DWORD [16+esp]
xor esi,edi
mov ebp,ecx
diff --git a/win-x86/crypto/sha/sha256-586.asm b/win-x86/crypto/sha/sha256-586.asm
index fe36bc5..d03558c 100644
--- a/win-x86/crypto/sha/sha256-586.asm
+++ b/win-x86/crypto/sha/sha256-586.asm
@@ -49,17 +49,15 @@ L$000pic_point:
jz NEAR L$003no_xmm
and ecx,1073741824
and ebx,268435968
- test edx,536870912
- jnz NEAR L$004shaext
or ecx,ebx
and ecx,1342177280
cmp ecx,1342177280
test ebx,512
- jnz NEAR L$005SSSE3
+ jnz NEAR L$004SSSE3
L$003no_xmm:
sub eax,edi
cmp eax,256
- jae NEAR L$006unrolled
+ jae NEAR L$005unrolled
jmp NEAR L$002loop
align 16
L$002loop:
@@ -131,7 +129,7 @@ L$002loop:
mov DWORD [28+esp],ecx
mov DWORD [32+esp],edi
align 16
-L$00700_15:
+L$00600_15:
mov ecx,edx
mov esi,DWORD [24+esp]
ror ecx,14
@@ -169,11 +167,11 @@ L$00700_15:
add ebp,4
add eax,ebx
cmp esi,3248222580
- jne NEAR L$00700_15
+ jne NEAR L$00600_15
mov ecx,DWORD [156+esp]
- jmp NEAR L$00816_63
+ jmp NEAR L$00716_63
align 16
-L$00816_63:
+L$00716_63:
mov ebx,ecx
mov esi,DWORD [104+esp]
ror ecx,11
@@ -228,7 +226,7 @@ L$00816_63:
add ebp,4
add eax,ebx
cmp esi,3329325298
- jne NEAR L$00816_63
+ jne NEAR L$00716_63
mov esi,DWORD [356+esp]
mov ebx,DWORD [8+esp]
mov ecx,DWORD [16+esp]
@@ -272,7 +270,7 @@ 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
align 16
-L$006unrolled:
+L$005unrolled:
lea esp,[esp-96]
mov eax,DWORD [esi]
mov ebp,DWORD [4+esi]
@@ -289,9 +287,9 @@ L$006unrolled:
mov DWORD [20+esp],ebx
mov DWORD [24+esp],ecx
mov DWORD [28+esp],esi
- jmp NEAR L$009grand_loop
+ jmp NEAR L$008grand_loop
align 16
-L$009grand_loop:
+L$008grand_loop:
mov ebx,DWORD [edi]
mov ecx,DWORD [4+edi]
bswap ebx
@@ -3171,7 +3169,7 @@ L$009grand_loop:
mov DWORD [24+esp],ebx
mov DWORD [28+esp],ecx
cmp edi,DWORD [104+esp]
- jb NEAR L$009grand_loop
+ jb NEAR L$008grand_loop
mov esp,DWORD [108+esp]
pop edi
pop esi
@@ -3179,205 +3177,7 @@ L$009grand_loop:
pop ebp
ret
align 32
-L$004shaext:
- sub esp,32
- movdqu xmm1,[esi]
- lea ebp,[128+ebp]
- movdqu xmm2,[16+esi]
- movdqa xmm7,[128+ebp]
- pshufd xmm0,xmm1,27
- pshufd xmm1,xmm1,177
- pshufd xmm2,xmm2,27
-db 102,15,58,15,202,8
- punpcklqdq xmm2,xmm0
- jmp NEAR L$010loop_shaext
-align 16
-L$010loop_shaext:
- movdqu xmm3,[edi]
- movdqu xmm4,[16+edi]
- movdqu xmm5,[32+edi]
-db 102,15,56,0,223
- movdqu xmm6,[48+edi]
- movdqa [16+esp],xmm2
- movdqa xmm0,[ebp-128]
- paddd xmm0,xmm3
-db 102,15,56,0,231
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- nop
- movdqa [esp],xmm1
-db 15,56,203,202
- movdqa xmm0,[ebp-112]
- paddd xmm0,xmm4
-db 102,15,56,0,239
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- lea edi,[64+edi]
-db 15,56,204,220
-db 15,56,203,202
- movdqa xmm0,[ebp-96]
- paddd xmm0,xmm5
-db 102,15,56,0,247
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm6
-db 102,15,58,15,253,4
- nop
- paddd xmm3,xmm7
-db 15,56,204,229
-db 15,56,203,202
- movdqa xmm0,[ebp-80]
- paddd xmm0,xmm6
-db 15,56,205,222
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm3
-db 102,15,58,15,254,4
- nop
- paddd xmm4,xmm7
-db 15,56,204,238
-db 15,56,203,202
- movdqa xmm0,[ebp-64]
- paddd xmm0,xmm3
-db 15,56,205,227
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm4
-db 102,15,58,15,251,4
- nop
- paddd xmm5,xmm7
-db 15,56,204,243
-db 15,56,203,202
- movdqa xmm0,[ebp-48]
- paddd xmm0,xmm4
-db 15,56,205,236
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm5
-db 102,15,58,15,252,4
- nop
- paddd xmm6,xmm7
-db 15,56,204,220
-db 15,56,203,202
- movdqa xmm0,[ebp-32]
- paddd xmm0,xmm5
-db 15,56,205,245
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm6
-db 102,15,58,15,253,4
- nop
- paddd xmm3,xmm7
-db 15,56,204,229
-db 15,56,203,202
- movdqa xmm0,[ebp-16]
- paddd xmm0,xmm6
-db 15,56,205,222
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm3
-db 102,15,58,15,254,4
- nop
- paddd xmm4,xmm7
-db 15,56,204,238
-db 15,56,203,202
- movdqa xmm0,[ebp]
- paddd xmm0,xmm3
-db 15,56,205,227
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm4
-db 102,15,58,15,251,4
- nop
- paddd xmm5,xmm7
-db 15,56,204,243
-db 15,56,203,202
- movdqa xmm0,[16+ebp]
- paddd xmm0,xmm4
-db 15,56,205,236
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm5
-db 102,15,58,15,252,4
- nop
- paddd xmm6,xmm7
-db 15,56,204,220
-db 15,56,203,202
- movdqa xmm0,[32+ebp]
- paddd xmm0,xmm5
-db 15,56,205,245
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm6
-db 102,15,58,15,253,4
- nop
- paddd xmm3,xmm7
-db 15,56,204,229
-db 15,56,203,202
- movdqa xmm0,[48+ebp]
- paddd xmm0,xmm6
-db 15,56,205,222
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm3
-db 102,15,58,15,254,4
- nop
- paddd xmm4,xmm7
-db 15,56,204,238
-db 15,56,203,202
- movdqa xmm0,[64+ebp]
- paddd xmm0,xmm3
-db 15,56,205,227
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm4
-db 102,15,58,15,251,4
- nop
- paddd xmm5,xmm7
-db 15,56,204,243
-db 15,56,203,202
- movdqa xmm0,[80+ebp]
- paddd xmm0,xmm4
-db 15,56,205,236
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- movdqa xmm7,xmm5
-db 102,15,58,15,252,4
-db 15,56,203,202
- paddd xmm6,xmm7
- movdqa xmm0,[96+ebp]
- paddd xmm0,xmm5
-db 15,56,203,209
- pshufd xmm0,xmm0,14
-db 15,56,205,245
- movdqa xmm7,[128+ebp]
-db 15,56,203,202
- movdqa xmm0,[112+ebp]
- paddd xmm0,xmm6
- nop
-db 15,56,203,209
- pshufd xmm0,xmm0,14
- cmp eax,edi
- nop
-db 15,56,203,202
- paddd xmm2,[16+esp]
- paddd xmm1,[esp]
- jnz NEAR L$010loop_shaext
- pshufd xmm2,xmm2,177
- pshufd xmm7,xmm1,27
- pshufd xmm1,xmm1,177
- punpckhqdq xmm1,xmm2
-db 102,15,58,15,215,8
- mov esp,DWORD [44+esp]
- movdqu [esi],xmm1
- movdqu [16+esi],xmm2
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-align 32
-L$005SSSE3:
+L$004SSSE3:
lea esp,[esp-96]
mov eax,DWORD [esi]
mov ebx,DWORD [4+esi]
@@ -3396,9 +3196,9 @@ L$005SSSE3:
mov DWORD [24+esp],ecx
mov DWORD [28+esp],esi
movdqa xmm7,[256+ebp]
- jmp NEAR L$011grand_ssse3
+ jmp NEAR L$009grand_ssse3
align 16
-L$011grand_ssse3:
+L$009grand_ssse3:
movdqu xmm0,[edi]
movdqu xmm1,[16+edi]
movdqu xmm2,[32+edi]
@@ -3421,9 +3221,9 @@ db 102,15,56,0,223
paddd xmm7,xmm3
movdqa [64+esp],xmm6
movdqa [80+esp],xmm7
- jmp NEAR L$012ssse3_00_47
+ jmp NEAR L$010ssse3_00_47
align 16
-L$012ssse3_00_47:
+L$010ssse3_00_47:
add ebp,64
mov ecx,edx
movdqa xmm4,xmm1
@@ -4066,7 +3866,7 @@ db 102,15,58,15,249,4
add eax,ecx
movdqa [80+esp],xmm6
cmp DWORD [64+ebp],66051
- jne NEAR L$012ssse3_00_47
+ jne NEAR L$010ssse3_00_47
mov ecx,edx
ror edx,14
mov esi,DWORD [20+esp]
@@ -4580,7 +4380,7 @@ db 102,15,58,15,249,4
movdqa xmm7,[64+ebp]
sub ebp,192
cmp edi,DWORD [104+esp]
- jb NEAR L$011grand_ssse3
+ jb NEAR L$009grand_ssse3
mov esp,DWORD [108+esp]
pop edi
pop esi