summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/rc4/asm/rc4-586.pl
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/rc4/asm/rc4-586.pl')
-rw-r--r--src/lib/libcrypto/rc4/asm/rc4-586.pl11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/lib/libcrypto/rc4/asm/rc4-586.pl b/src/lib/libcrypto/rc4/asm/rc4-586.pl
index ef7eee766c..d6e98f0811 100644
--- a/src/lib/libcrypto/rc4/asm/rc4-586.pl
+++ b/src/lib/libcrypto/rc4/asm/rc4-586.pl
@@ -200,23 +200,22 @@ sub RC4
200 200
201 &lea ($ty,&DWP(0,$in,$ty)); 201 &lea ($ty,&DWP(0,$in,$ty));
202 &mov (&swtmp(2),$ty); 202 &mov (&swtmp(2),$ty);
203 &movz ($tx,&BP(0,$d,$x));
204 203
205 # strangely enough unrolled loop performs over 20% slower... 204 # strangely enough unrolled loop performs over 20% slower...
206 &set_label("RC4_CHAR_loop"); 205 &set_label("RC4_CHAR_loop");
206 &movz ($tx,&BP(0,$d,$x));
207 &add (&LB($y),&LB($tx)); 207 &add (&LB($y),&LB($tx));
208 &movz ($ty,&BP(0,$d,$y)); 208 &movz ($ty,&BP(0,$d,$y));
209 &movb (&BP(0,$d,$y),&LB($tx)); 209 &movb (&BP(0,$d,$y),&LB($tx));
210 &movb (&BP(0,$d,$x),&LB($ty)); 210 &movb (&BP(0,$d,$x),&LB($ty));
211 &add (&LB($ty),&LB($tx)); 211 &add (&LB($ty),&LB($tx));
212 &movz ($ty,&BP(0,$d,$ty)); 212 &movz ($ty,&BP(0,$d,$ty));
213 &add (&LB($x),1);
214 &xorb (&LB($ty),&BP(0,$in)); 213 &xorb (&LB($ty),&BP(0,$in));
215 &lea ($in,&DWP(1,$in));
216 &movz ($tx,&BP(0,$d,$x));
217 &cmp ($in,&swtmp(2));
218 &movb (&BP(0,$out),&LB($ty)); 214 &movb (&BP(0,$out),&LB($ty));
219 &lea ($out,&DWP(1,$out)); 215 &inc (&LB($x));
216 &inc ($in);
217 &inc ($out);
218 &cmp ($in,&swtmp(2));
220 &jb (&label("RC4_CHAR_loop")); 219 &jb (&label("RC4_CHAR_loop"));
221 220
222 &set_label("finished"); 221 &set_label("finished");