summaryrefslogtreecommitdiff
path: root/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2013-04-26 14:49:54 +0200
committerBen Noordhuis <info@bnoordhuis.nl>2013-04-29 12:12:33 +0200
commit4fdb8acdaef4c3cb1d855e992ada0e63fee520a6 (patch)
tree4b2a796fadb3060c6952c5521c292da209b4adfb /deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm
parent626d7abdb43b672a6153510561afdd8856b7770f (diff)
downloadandroid-node-v8-4fdb8acdaef4c3cb1d855e992ada0e63fee520a6.tar.gz
android-node-v8-4fdb8acdaef4c3cb1d855e992ada0e63fee520a6.tar.bz2
android-node-v8-4fdb8acdaef4c3cb1d855e992ada0e63fee520a6.zip
deps: downgrade openssl to v1.0.0f
Several people have reported issues with IIS and Resin servers (or maybe SSL terminators sitting in front of those servers) that are fixed by downgrading OpenSSL. The AESNI performance improvements were nice but stability is more important. Downgrade OpenSSL from 1.0.1e to 1.0.0f. Fixes #5360 (and others).
Diffstat (limited to 'deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm')
-rw-r--r--deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm225
1 files changed, 38 insertions, 187 deletions
diff --git a/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm b/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm
index d179090911..3eb66f7350 100644
--- a/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm
+++ b/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm
@@ -2,14 +2,7 @@ TITLE rc4-586.asm
IF @Version LT 800
ECHO MASM version 8.00 or later is strongly recommended.
ENDIF
-.686
-.XMM
-IF @Version LT 800
-XMMWORD STRUCT 16
-DQ 2 dup (?)
-XMMWORD ENDS
-ENDIF
-
+.586
.MODEL FLAT
OPTION DOTNAME
IF @Version LT 800
@@ -17,7 +10,6 @@ IF @Version LT 800
ELSE
.text$ SEGMENT ALIGN(64) 'CODE'
ENDIF
-;EXTERN _OPENSSL_ia32cap_P:NEAR
ALIGN 16
_RC4 PROC PUBLIC
$L_RC4_begin::
@@ -45,146 +37,11 @@ $L_RC4_begin::
mov ecx,DWORD PTR [eax*4+edi]
and edx,-4
jz $L002loop1
- test edx,-8
- mov DWORD PTR 32[esp],ebp
- jz $L003go4loop4
- lea ebp,DWORD PTR _OPENSSL_ia32cap_P
- bt DWORD PTR [ebp],26
- jnc $L003go4loop4
- mov ebp,DWORD PTR 32[esp]
- and edx,-8
- lea edx,DWORD PTR [edx*1+esi-8]
- mov DWORD PTR [edi-4],edx
- add bl,cl
- mov edx,DWORD PTR [ebx*4+edi]
- mov DWORD PTR [ebx*4+edi],ecx
- mov DWORD PTR [eax*4+edi],edx
- inc eax
- add edx,ecx
- movzx eax,al
- movzx edx,dl
- movq mm0,QWORD PTR [esi]
- mov ecx,DWORD PTR [eax*4+edi]
- movd mm2,DWORD PTR [edx*4+edi]
- jmp $L004loop_mmx_enter
-ALIGN 16
-$L005loop_mmx:
- add bl,cl
- psllq mm1,56
- mov edx,DWORD PTR [ebx*4+edi]
- mov DWORD PTR [ebx*4+edi],ecx
- mov DWORD PTR [eax*4+edi],edx
- inc eax
- add edx,ecx
- movzx eax,al
- movzx edx,dl
- pxor mm2,mm1
- movq mm0,QWORD PTR [esi]
- movq QWORD PTR [esi*1+ebp-8],mm2
- mov ecx,DWORD PTR [eax*4+edi]
- movd mm2,DWORD PTR [edx*4+edi]
-$L004loop_mmx_enter:
- add bl,cl
- mov edx,DWORD PTR [ebx*4+edi]
- mov DWORD PTR [ebx*4+edi],ecx
- mov DWORD PTR [eax*4+edi],edx
- inc eax
- add edx,ecx
- movzx eax,al
- movzx edx,dl
- pxor mm2,mm0
- mov ecx,DWORD PTR [eax*4+edi]
- movd mm1,DWORD PTR [edx*4+edi]
- add bl,cl
- psllq mm1,8
- mov edx,DWORD PTR [ebx*4+edi]
- mov DWORD PTR [ebx*4+edi],ecx
- mov DWORD PTR [eax*4+edi],edx
- inc eax
- add edx,ecx
- movzx eax,al
- movzx edx,dl
- pxor mm2,mm1
- mov ecx,DWORD PTR [eax*4+edi]
- movd mm1,DWORD PTR [edx*4+edi]
- add bl,cl
- psllq mm1,16
- mov edx,DWORD PTR [ebx*4+edi]
- mov DWORD PTR [ebx*4+edi],ecx
- mov DWORD PTR [eax*4+edi],edx
- inc eax
- add edx,ecx
- movzx eax,al
- movzx edx,dl
- pxor mm2,mm1
- mov ecx,DWORD PTR [eax*4+edi]
- movd mm1,DWORD PTR [edx*4+edi]
- add bl,cl
- psllq mm1,24
- mov edx,DWORD PTR [ebx*4+edi]
- mov DWORD PTR [ebx*4+edi],ecx
- mov DWORD PTR [eax*4+edi],edx
- inc eax
- add edx,ecx
- movzx eax,al
- movzx edx,dl
- pxor mm2,mm1
- mov ecx,DWORD PTR [eax*4+edi]
- movd mm1,DWORD PTR [edx*4+edi]
- add bl,cl
- psllq mm1,32
- mov edx,DWORD PTR [ebx*4+edi]
- mov DWORD PTR [ebx*4+edi],ecx
- mov DWORD PTR [eax*4+edi],edx
- inc eax
- add edx,ecx
- movzx eax,al
- movzx edx,dl
- pxor mm2,mm1
- mov ecx,DWORD PTR [eax*4+edi]
- movd mm1,DWORD PTR [edx*4+edi]
- add bl,cl
- psllq mm1,40
- mov edx,DWORD PTR [ebx*4+edi]
- mov DWORD PTR [ebx*4+edi],ecx
- mov DWORD PTR [eax*4+edi],edx
- inc eax
- add edx,ecx
- movzx eax,al
- movzx edx,dl
- pxor mm2,mm1
- mov ecx,DWORD PTR [eax*4+edi]
- movd mm1,DWORD PTR [edx*4+edi]
- add bl,cl
- psllq mm1,48
- mov edx,DWORD PTR [ebx*4+edi]
- mov DWORD PTR [ebx*4+edi],ecx
- mov DWORD PTR [eax*4+edi],edx
- inc eax
- add edx,ecx
- movzx eax,al
- movzx edx,dl
- pxor mm2,mm1
- mov ecx,DWORD PTR [eax*4+edi]
- movd mm1,DWORD PTR [edx*4+edi]
- mov edx,ebx
- xor ebx,ebx
- mov bl,dl
- cmp esi,DWORD PTR [edi-4]
- lea esi,DWORD PTR 8[esi]
- jb $L005loop_mmx
- psllq mm1,56
- pxor mm2,mm1
- movq QWORD PTR [esi*1+ebp-8],mm2
- emms
- cmp esi,DWORD PTR 24[esp]
- je $L006done
- jmp $L002loop1
-ALIGN 16
-$L003go4loop4:
lea edx,DWORD PTR [edx*1+esi-4]
mov DWORD PTR 28[esp],edx
-$L007loop4:
+ mov DWORD PTR 32[esp],ebp
+ALIGN 16
+$L003loop4:
add bl,cl
mov edx,DWORD PTR [ebx*4+edi]
mov DWORD PTR [ebx*4+edi],ecx
@@ -230,9 +87,9 @@ $L007loop4:
mov DWORD PTR [esi*1+ecx],ebp
lea esi,DWORD PTR 4[esi]
mov ecx,DWORD PTR [eax*4+edi]
- jb $L007loop4
+ jb $L003loop4
cmp esi,DWORD PTR 24[esp]
- je $L006done
+ je $L004done
mov ebp,DWORD PTR 32[esp]
ALIGN 16
$L002loop1:
@@ -250,11 +107,11 @@ $L002loop1:
cmp esi,DWORD PTR 24[esp]
mov BYTE PTR [esi*1+ebp-1],dl
jb $L002loop1
- jmp $L006done
+ jmp $L004done
ALIGN 16
$L001RC4_CHAR:
movzx ecx,BYTE PTR [eax*1+edi]
-$L008cloop1:
+$L005cloop1:
add bl,cl
movzx edx,BYTE PTR [ebx*1+edi]
mov BYTE PTR [ebx*1+edi],cl
@@ -267,10 +124,10 @@ $L008cloop1:
movzx ecx,BYTE PTR [eax*1+edi]
cmp esi,DWORD PTR 24[esp]
mov BYTE PTR [esi*1+ebp-1],dl
- jb $L008cloop1
-$L006done:
+ jb $L005cloop1
+$L004done:
dec al
- mov DWORD PTR [edi-4],ebx
+ mov BYTE PTR [edi-4],bl
mov BYTE PTR [edi-8],al
$L000abort:
pop edi
@@ -279,9 +136,10 @@ $L000abort:
pop ebp
ret
_RC4 ENDP
+;EXTERN _OPENSSL_ia32cap_P:NEAR
ALIGN 16
-_private_RC4_set_key PROC PUBLIC
-$L_private_RC4_set_key_begin::
+_RC4_set_key PROC PUBLIC
+$L_RC4_set_key_begin::
push ebp
push ebx
push esi
@@ -296,53 +154,53 @@ $L_private_RC4_set_key_begin::
xor eax,eax
mov DWORD PTR [edi-4],ebp
bt DWORD PTR [edx],20
- jc $L009c1stloop
+ jc $L006c1stloop
ALIGN 16
-$L010w1stloop:
+$L007w1stloop:
mov DWORD PTR [eax*4+edi],eax
add al,1
- jnc $L010w1stloop
+ jnc $L007w1stloop
xor ecx,ecx
xor edx,edx
ALIGN 16
-$L011w2ndloop:
+$L008w2ndloop:
mov eax,DWORD PTR [ecx*4+edi]
add dl,BYTE PTR [ebp*1+esi]
add dl,al
add ebp,1
mov ebx,DWORD PTR [edx*4+edi]
- jnz $L012wnowrap
+ jnz $L009wnowrap
mov ebp,DWORD PTR [edi-4]
-$L012wnowrap:
+$L009wnowrap:
mov DWORD PTR [edx*4+edi],eax
mov DWORD PTR [ecx*4+edi],ebx
add cl,1
- jnc $L011w2ndloop
- jmp $L013exit
+ jnc $L008w2ndloop
+ jmp $L010exit
ALIGN 16
-$L009c1stloop:
+$L006c1stloop:
mov BYTE PTR [eax*1+edi],al
add al,1
- jnc $L009c1stloop
+ jnc $L006c1stloop
xor ecx,ecx
xor edx,edx
xor ebx,ebx
ALIGN 16
-$L014c2ndloop:
+$L011c2ndloop:
mov al,BYTE PTR [ecx*1+edi]
add dl,BYTE PTR [ebp*1+esi]
add dl,al
add ebp,1
mov bl,BYTE PTR [edx*1+edi]
- jnz $L015cnowrap
+ jnz $L012cnowrap
mov ebp,DWORD PTR [edi-4]
-$L015cnowrap:
+$L012cnowrap:
mov BYTE PTR [edx*1+edi],al
mov BYTE PTR [ecx*1+edi],bl
add cl,1
- jnc $L014c2ndloop
+ jnc $L011c2ndloop
mov DWORD PTR 256[edi],-1
-$L013exit:
+$L010exit:
xor eax,eax
mov DWORD PTR [edi-8],eax
mov DWORD PTR [edi-4],eax
@@ -351,31 +209,24 @@ $L013exit:
pop ebx
pop ebp
ret
-_private_RC4_set_key ENDP
+_RC4_set_key ENDP
ALIGN 16
_RC4_options PROC PUBLIC
$L_RC4_options_begin::
- call $L016pic_point
-$L016pic_point:
+ call $L013pic_point
+$L013pic_point:
pop eax
- lea eax,DWORD PTR ($L017opts-$L016pic_point)[eax]
+ lea eax,DWORD PTR ($L014opts-$L013pic_point)[eax]
lea edx,DWORD PTR _OPENSSL_ia32cap_P
- mov edx,DWORD PTR [edx]
- bt edx,20
- jc $L0181xchar
- bt edx,26
- jnc $L019ret
- add eax,25
- ret
-$L0181xchar:
+ bt DWORD PTR [edx],20
+ jnc $L015skip
add eax,12
-$L019ret:
+$L015skip:
ret
ALIGN 64
-$L017opts:
+$L014opts:
DB 114,99,52,40,52,120,44,105,110,116,41,0
DB 114,99,52,40,49,120,44,99,104,97,114,41,0
-DB 114,99,52,40,56,120,44,109,109,120,41,0
DB 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
DB 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
DB 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
@@ -383,6 +234,6 @@ ALIGN 64
_RC4_options ENDP
.text$ ENDS
.bss SEGMENT 'BSS'
-COMM _OPENSSL_ia32cap_P:QWORD
+COMM _OPENSSL_ia32cap_P:DWORD
.bss ENDS
END