diff options
Diffstat (limited to 'src/lib/libcrypto/rc4/asm/rc4-586.pl')
-rw-r--r-- | src/lib/libcrypto/rc4/asm/rc4-586.pl | 11 |
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"); |