OLD | NEW |
| (Empty) |
1 #if defined(__x86_64__) | |
2 .text | |
3 .extern OPENSSL_ia32cap_P | |
4 .hidden OPENSSL_ia32cap_P | |
5 | |
6 .globl asm_RC4 | |
7 .hidden asm_RC4 | |
8 .type asm_RC4,@function | |
9 .align 16 | |
10 asm_RC4: | |
11 orq %rsi,%rsi | |
12 jne .Lentry | |
13 .byte 0xf3,0xc3 | |
14 .Lentry: | |
15 pushq %rbx | |
16 pushq %r12 | |
17 pushq %r13 | |
18 .Lprologue: | |
19 movq %rsi,%r11 | |
20 movq %rdx,%r12 | |
21 movq %rcx,%r13 | |
22 xorq %r10,%r10 | |
23 xorq %rcx,%rcx | |
24 | |
25 leaq 8(%rdi),%rdi | |
26 movb -8(%rdi),%r10b | |
27 movb -4(%rdi),%cl | |
28 cmpl $-1,256(%rdi) | |
29 je .LRC4_CHAR | |
30 movl OPENSSL_ia32cap_P(%rip),%r8d | |
31 xorq %rbx,%rbx | |
32 incb %r10b | |
33 subq %r10,%rbx | |
34 subq %r12,%r13 | |
35 movl (%rdi,%r10,4),%eax | |
36 testq $-16,%r11 | |
37 jz .Lloop1 | |
38 btl $30,%r8d | |
39 jc .Lintel | |
40 andq $7,%rbx | |
41 leaq 1(%r10),%rsi | |
42 jz .Loop8 | |
43 subq %rbx,%r11 | |
44 .Loop8_warmup: | |
45 addb %al,%cl | |
46 movl (%rdi,%rcx,4),%edx | |
47 movl %eax,(%rdi,%rcx,4) | |
48 movl %edx,(%rdi,%r10,4) | |
49 addb %dl,%al | |
50 incb %r10b | |
51 movl (%rdi,%rax,4),%edx | |
52 movl (%rdi,%r10,4),%eax | |
53 xorb (%r12),%dl | |
54 movb %dl,(%r12,%r13,1) | |
55 leaq 1(%r12),%r12 | |
56 decq %rbx | |
57 jnz .Loop8_warmup | |
58 | |
59 leaq 1(%r10),%rsi | |
60 jmp .Loop8 | |
61 .align 16 | |
62 .Loop8: | |
63 addb %al,%cl | |
64 movl (%rdi,%rcx,4),%edx | |
65 movl %eax,(%rdi,%rcx,4) | |
66 movl 0(%rdi,%rsi,4),%ebx | |
67 rorq $8,%r8 | |
68 movl %edx,0(%rdi,%r10,4) | |
69 addb %al,%dl | |
70 movb (%rdi,%rdx,4),%r8b | |
71 addb %bl,%cl | |
72 movl (%rdi,%rcx,4),%edx | |
73 movl %ebx,(%rdi,%rcx,4) | |
74 movl 4(%rdi,%rsi,4),%eax | |
75 rorq $8,%r8 | |
76 movl %edx,4(%rdi,%r10,4) | |
77 addb %bl,%dl | |
78 movb (%rdi,%rdx,4),%r8b | |
79 addb %al,%cl | |
80 movl (%rdi,%rcx,4),%edx | |
81 movl %eax,(%rdi,%rcx,4) | |
82 movl 8(%rdi,%rsi,4),%ebx | |
83 rorq $8,%r8 | |
84 movl %edx,8(%rdi,%r10,4) | |
85 addb %al,%dl | |
86 movb (%rdi,%rdx,4),%r8b | |
87 addb %bl,%cl | |
88 movl (%rdi,%rcx,4),%edx | |
89 movl %ebx,(%rdi,%rcx,4) | |
90 movl 12(%rdi,%rsi,4),%eax | |
91 rorq $8,%r8 | |
92 movl %edx,12(%rdi,%r10,4) | |
93 addb %bl,%dl | |
94 movb (%rdi,%rdx,4),%r8b | |
95 addb %al,%cl | |
96 movl (%rdi,%rcx,4),%edx | |
97 movl %eax,(%rdi,%rcx,4) | |
98 movl 16(%rdi,%rsi,4),%ebx | |
99 rorq $8,%r8 | |
100 movl %edx,16(%rdi,%r10,4) | |
101 addb %al,%dl | |
102 movb (%rdi,%rdx,4),%r8b | |
103 addb %bl,%cl | |
104 movl (%rdi,%rcx,4),%edx | |
105 movl %ebx,(%rdi,%rcx,4) | |
106 movl 20(%rdi,%rsi,4),%eax | |
107 rorq $8,%r8 | |
108 movl %edx,20(%rdi,%r10,4) | |
109 addb %bl,%dl | |
110 movb (%rdi,%rdx,4),%r8b | |
111 addb %al,%cl | |
112 movl (%rdi,%rcx,4),%edx | |
113 movl %eax,(%rdi,%rcx,4) | |
114 movl 24(%rdi,%rsi,4),%ebx | |
115 rorq $8,%r8 | |
116 movl %edx,24(%rdi,%r10,4) | |
117 addb %al,%dl | |
118 movb (%rdi,%rdx,4),%r8b | |
119 addb $8,%sil | |
120 addb %bl,%cl | |
121 movl (%rdi,%rcx,4),%edx | |
122 movl %ebx,(%rdi,%rcx,4) | |
123 movl -4(%rdi,%rsi,4),%eax | |
124 rorq $8,%r8 | |
125 movl %edx,28(%rdi,%r10,4) | |
126 addb %bl,%dl | |
127 movb (%rdi,%rdx,4),%r8b | |
128 addb $8,%r10b | |
129 rorq $8,%r8 | |
130 subq $8,%r11 | |
131 | |
132 xorq (%r12),%r8 | |
133 movq %r8,(%r12,%r13,1) | |
134 leaq 8(%r12),%r12 | |
135 | |
136 testq $-8,%r11 | |
137 jnz .Loop8 | |
138 cmpq $0,%r11 | |
139 jne .Lloop1 | |
140 jmp .Lexit | |
141 | |
142 .align 16 | |
143 .Lintel: | |
144 testq $-32,%r11 | |
145 jz .Lloop1 | |
146 andq $15,%rbx | |
147 jz .Loop16_is_hot | |
148 subq %rbx,%r11 | |
149 .Loop16_warmup: | |
150 addb %al,%cl | |
151 movl (%rdi,%rcx,4),%edx | |
152 movl %eax,(%rdi,%rcx,4) | |
153 movl %edx,(%rdi,%r10,4) | |
154 addb %dl,%al | |
155 incb %r10b | |
156 movl (%rdi,%rax,4),%edx | |
157 movl (%rdi,%r10,4),%eax | |
158 xorb (%r12),%dl | |
159 movb %dl,(%r12,%r13,1) | |
160 leaq 1(%r12),%r12 | |
161 decq %rbx | |
162 jnz .Loop16_warmup | |
163 | |
164 movq %rcx,%rbx | |
165 xorq %rcx,%rcx | |
166 movb %bl,%cl | |
167 | |
168 .Loop16_is_hot: | |
169 leaq (%rdi,%r10,4),%rsi | |
170 addb %al,%cl | |
171 movl (%rdi,%rcx,4),%edx | |
172 pxor %xmm0,%xmm0 | |
173 movl %eax,(%rdi,%rcx,4) | |
174 addb %dl,%al | |
175 movl 4(%rsi),%ebx | |
176 movzbl %al,%eax | |
177 movl %edx,0(%rsi) | |
178 addb %bl,%cl | |
179 pinsrw $0,(%rdi,%rax,4),%xmm0 | |
180 jmp .Loop16_enter | |
181 .align 16 | |
182 .Loop16: | |
183 addb %al,%cl | |
184 movl (%rdi,%rcx,4),%edx | |
185 pxor %xmm0,%xmm2 | |
186 psllq $8,%xmm1 | |
187 pxor %xmm0,%xmm0 | |
188 movl %eax,(%rdi,%rcx,4) | |
189 addb %dl,%al | |
190 movl 4(%rsi),%ebx | |
191 movzbl %al,%eax | |
192 movl %edx,0(%rsi) | |
193 pxor %xmm1,%xmm2 | |
194 addb %bl,%cl | |
195 pinsrw $0,(%rdi,%rax,4),%xmm0 | |
196 movdqu %xmm2,(%r12,%r13,1) | |
197 leaq 16(%r12),%r12 | |
198 .Loop16_enter: | |
199 movl (%rdi,%rcx,4),%edx | |
200 pxor %xmm1,%xmm1 | |
201 movl %ebx,(%rdi,%rcx,4) | |
202 addb %dl,%bl | |
203 movl 8(%rsi),%eax | |
204 movzbl %bl,%ebx | |
205 movl %edx,4(%rsi) | |
206 addb %al,%cl | |
207 pinsrw $0,(%rdi,%rbx,4),%xmm1 | |
208 movl (%rdi,%rcx,4),%edx | |
209 movl %eax,(%rdi,%rcx,4) | |
210 addb %dl,%al | |
211 movl 12(%rsi),%ebx | |
212 movzbl %al,%eax | |
213 movl %edx,8(%rsi) | |
214 addb %bl,%cl | |
215 pinsrw $1,(%rdi,%rax,4),%xmm0 | |
216 movl (%rdi,%rcx,4),%edx | |
217 movl %ebx,(%rdi,%rcx,4) | |
218 addb %dl,%bl | |
219 movl 16(%rsi),%eax | |
220 movzbl %bl,%ebx | |
221 movl %edx,12(%rsi) | |
222 addb %al,%cl | |
223 pinsrw $1,(%rdi,%rbx,4),%xmm1 | |
224 movl (%rdi,%rcx,4),%edx | |
225 movl %eax,(%rdi,%rcx,4) | |
226 addb %dl,%al | |
227 movl 20(%rsi),%ebx | |
228 movzbl %al,%eax | |
229 movl %edx,16(%rsi) | |
230 addb %bl,%cl | |
231 pinsrw $2,(%rdi,%rax,4),%xmm0 | |
232 movl (%rdi,%rcx,4),%edx | |
233 movl %ebx,(%rdi,%rcx,4) | |
234 addb %dl,%bl | |
235 movl 24(%rsi),%eax | |
236 movzbl %bl,%ebx | |
237 movl %edx,20(%rsi) | |
238 addb %al,%cl | |
239 pinsrw $2,(%rdi,%rbx,4),%xmm1 | |
240 movl (%rdi,%rcx,4),%edx | |
241 movl %eax,(%rdi,%rcx,4) | |
242 addb %dl,%al | |
243 movl 28(%rsi),%ebx | |
244 movzbl %al,%eax | |
245 movl %edx,24(%rsi) | |
246 addb %bl,%cl | |
247 pinsrw $3,(%rdi,%rax,4),%xmm0 | |
248 movl (%rdi,%rcx,4),%edx | |
249 movl %ebx,(%rdi,%rcx,4) | |
250 addb %dl,%bl | |
251 movl 32(%rsi),%eax | |
252 movzbl %bl,%ebx | |
253 movl %edx,28(%rsi) | |
254 addb %al,%cl | |
255 pinsrw $3,(%rdi,%rbx,4),%xmm1 | |
256 movl (%rdi,%rcx,4),%edx | |
257 movl %eax,(%rdi,%rcx,4) | |
258 addb %dl,%al | |
259 movl 36(%rsi),%ebx | |
260 movzbl %al,%eax | |
261 movl %edx,32(%rsi) | |
262 addb %bl,%cl | |
263 pinsrw $4,(%rdi,%rax,4),%xmm0 | |
264 movl (%rdi,%rcx,4),%edx | |
265 movl %ebx,(%rdi,%rcx,4) | |
266 addb %dl,%bl | |
267 movl 40(%rsi),%eax | |
268 movzbl %bl,%ebx | |
269 movl %edx,36(%rsi) | |
270 addb %al,%cl | |
271 pinsrw $4,(%rdi,%rbx,4),%xmm1 | |
272 movl (%rdi,%rcx,4),%edx | |
273 movl %eax,(%rdi,%rcx,4) | |
274 addb %dl,%al | |
275 movl 44(%rsi),%ebx | |
276 movzbl %al,%eax | |
277 movl %edx,40(%rsi) | |
278 addb %bl,%cl | |
279 pinsrw $5,(%rdi,%rax,4),%xmm0 | |
280 movl (%rdi,%rcx,4),%edx | |
281 movl %ebx,(%rdi,%rcx,4) | |
282 addb %dl,%bl | |
283 movl 48(%rsi),%eax | |
284 movzbl %bl,%ebx | |
285 movl %edx,44(%rsi) | |
286 addb %al,%cl | |
287 pinsrw $5,(%rdi,%rbx,4),%xmm1 | |
288 movl (%rdi,%rcx,4),%edx | |
289 movl %eax,(%rdi,%rcx,4) | |
290 addb %dl,%al | |
291 movl 52(%rsi),%ebx | |
292 movzbl %al,%eax | |
293 movl %edx,48(%rsi) | |
294 addb %bl,%cl | |
295 pinsrw $6,(%rdi,%rax,4),%xmm0 | |
296 movl (%rdi,%rcx,4),%edx | |
297 movl %ebx,(%rdi,%rcx,4) | |
298 addb %dl,%bl | |
299 movl 56(%rsi),%eax | |
300 movzbl %bl,%ebx | |
301 movl %edx,52(%rsi) | |
302 addb %al,%cl | |
303 pinsrw $6,(%rdi,%rbx,4),%xmm1 | |
304 movl (%rdi,%rcx,4),%edx | |
305 movl %eax,(%rdi,%rcx,4) | |
306 addb %dl,%al | |
307 movl 60(%rsi),%ebx | |
308 movzbl %al,%eax | |
309 movl %edx,56(%rsi) | |
310 addb %bl,%cl | |
311 pinsrw $7,(%rdi,%rax,4),%xmm0 | |
312 addb $16,%r10b | |
313 movdqu (%r12),%xmm2 | |
314 movl (%rdi,%rcx,4),%edx | |
315 movl %ebx,(%rdi,%rcx,4) | |
316 addb %dl,%bl | |
317 movzbl %bl,%ebx | |
318 movl %edx,60(%rsi) | |
319 leaq (%rdi,%r10,4),%rsi | |
320 pinsrw $7,(%rdi,%rbx,4),%xmm1 | |
321 movl (%rsi),%eax | |
322 movq %rcx,%rbx | |
323 xorq %rcx,%rcx | |
324 subq $16,%r11 | |
325 movb %bl,%cl | |
326 testq $-16,%r11 | |
327 jnz .Loop16 | |
328 | |
329 psllq $8,%xmm1 | |
330 pxor %xmm0,%xmm2 | |
331 pxor %xmm1,%xmm2 | |
332 movdqu %xmm2,(%r12,%r13,1) | |
333 leaq 16(%r12),%r12 | |
334 | |
335 cmpq $0,%r11 | |
336 jne .Lloop1 | |
337 jmp .Lexit | |
338 | |
339 .align 16 | |
340 .Lloop1: | |
341 addb %al,%cl | |
342 movl (%rdi,%rcx,4),%edx | |
343 movl %eax,(%rdi,%rcx,4) | |
344 movl %edx,(%rdi,%r10,4) | |
345 addb %dl,%al | |
346 incb %r10b | |
347 movl (%rdi,%rax,4),%edx | |
348 movl (%rdi,%r10,4),%eax | |
349 xorb (%r12),%dl | |
350 movb %dl,(%r12,%r13,1) | |
351 leaq 1(%r12),%r12 | |
352 decq %r11 | |
353 jnz .Lloop1 | |
354 jmp .Lexit | |
355 | |
356 .align 16 | |
357 .LRC4_CHAR: | |
358 addb $1,%r10b | |
359 movzbl (%rdi,%r10,1),%eax | |
360 testq $-8,%r11 | |
361 jz .Lcloop1 | |
362 jmp .Lcloop8 | |
363 .align 16 | |
364 .Lcloop8: | |
365 movl (%r12),%r8d | |
366 movl 4(%r12),%r9d | |
367 addb %al,%cl | |
368 leaq 1(%r10),%rsi | |
369 movzbl (%rdi,%rcx,1),%edx | |
370 movzbl %sil,%esi | |
371 movzbl (%rdi,%rsi,1),%ebx | |
372 movb %al,(%rdi,%rcx,1) | |
373 cmpq %rsi,%rcx | |
374 movb %dl,(%rdi,%r10,1) | |
375 jne .Lcmov0 | |
376 movq %rax,%rbx | |
377 .Lcmov0: | |
378 addb %al,%dl | |
379 xorb (%rdi,%rdx,1),%r8b | |
380 rorl $8,%r8d | |
381 addb %bl,%cl | |
382 leaq 1(%rsi),%r10 | |
383 movzbl (%rdi,%rcx,1),%edx | |
384 movzbl %r10b,%r10d | |
385 movzbl (%rdi,%r10,1),%eax | |
386 movb %bl,(%rdi,%rcx,1) | |
387 cmpq %r10,%rcx | |
388 movb %dl,(%rdi,%rsi,1) | |
389 jne .Lcmov1 | |
390 movq %rbx,%rax | |
391 .Lcmov1: | |
392 addb %bl,%dl | |
393 xorb (%rdi,%rdx,1),%r8b | |
394 rorl $8,%r8d | |
395 addb %al,%cl | |
396 leaq 1(%r10),%rsi | |
397 movzbl (%rdi,%rcx,1),%edx | |
398 movzbl %sil,%esi | |
399 movzbl (%rdi,%rsi,1),%ebx | |
400 movb %al,(%rdi,%rcx,1) | |
401 cmpq %rsi,%rcx | |
402 movb %dl,(%rdi,%r10,1) | |
403 jne .Lcmov2 | |
404 movq %rax,%rbx | |
405 .Lcmov2: | |
406 addb %al,%dl | |
407 xorb (%rdi,%rdx,1),%r8b | |
408 rorl $8,%r8d | |
409 addb %bl,%cl | |
410 leaq 1(%rsi),%r10 | |
411 movzbl (%rdi,%rcx,1),%edx | |
412 movzbl %r10b,%r10d | |
413 movzbl (%rdi,%r10,1),%eax | |
414 movb %bl,(%rdi,%rcx,1) | |
415 cmpq %r10,%rcx | |
416 movb %dl,(%rdi,%rsi,1) | |
417 jne .Lcmov3 | |
418 movq %rbx,%rax | |
419 .Lcmov3: | |
420 addb %bl,%dl | |
421 xorb (%rdi,%rdx,1),%r8b | |
422 rorl $8,%r8d | |
423 addb %al,%cl | |
424 leaq 1(%r10),%rsi | |
425 movzbl (%rdi,%rcx,1),%edx | |
426 movzbl %sil,%esi | |
427 movzbl (%rdi,%rsi,1),%ebx | |
428 movb %al,(%rdi,%rcx,1) | |
429 cmpq %rsi,%rcx | |
430 movb %dl,(%rdi,%r10,1) | |
431 jne .Lcmov4 | |
432 movq %rax,%rbx | |
433 .Lcmov4: | |
434 addb %al,%dl | |
435 xorb (%rdi,%rdx,1),%r9b | |
436 rorl $8,%r9d | |
437 addb %bl,%cl | |
438 leaq 1(%rsi),%r10 | |
439 movzbl (%rdi,%rcx,1),%edx | |
440 movzbl %r10b,%r10d | |
441 movzbl (%rdi,%r10,1),%eax | |
442 movb %bl,(%rdi,%rcx,1) | |
443 cmpq %r10,%rcx | |
444 movb %dl,(%rdi,%rsi,1) | |
445 jne .Lcmov5 | |
446 movq %rbx,%rax | |
447 .Lcmov5: | |
448 addb %bl,%dl | |
449 xorb (%rdi,%rdx,1),%r9b | |
450 rorl $8,%r9d | |
451 addb %al,%cl | |
452 leaq 1(%r10),%rsi | |
453 movzbl (%rdi,%rcx,1),%edx | |
454 movzbl %sil,%esi | |
455 movzbl (%rdi,%rsi,1),%ebx | |
456 movb %al,(%rdi,%rcx,1) | |
457 cmpq %rsi,%rcx | |
458 movb %dl,(%rdi,%r10,1) | |
459 jne .Lcmov6 | |
460 movq %rax,%rbx | |
461 .Lcmov6: | |
462 addb %al,%dl | |
463 xorb (%rdi,%rdx,1),%r9b | |
464 rorl $8,%r9d | |
465 addb %bl,%cl | |
466 leaq 1(%rsi),%r10 | |
467 movzbl (%rdi,%rcx,1),%edx | |
468 movzbl %r10b,%r10d | |
469 movzbl (%rdi,%r10,1),%eax | |
470 movb %bl,(%rdi,%rcx,1) | |
471 cmpq %r10,%rcx | |
472 movb %dl,(%rdi,%rsi,1) | |
473 jne .Lcmov7 | |
474 movq %rbx,%rax | |
475 .Lcmov7: | |
476 addb %bl,%dl | |
477 xorb (%rdi,%rdx,1),%r9b | |
478 rorl $8,%r9d | |
479 leaq -8(%r11),%r11 | |
480 movl %r8d,(%r13) | |
481 leaq 8(%r12),%r12 | |
482 movl %r9d,4(%r13) | |
483 leaq 8(%r13),%r13 | |
484 | |
485 testq $-8,%r11 | |
486 jnz .Lcloop8 | |
487 cmpq $0,%r11 | |
488 jne .Lcloop1 | |
489 jmp .Lexit | |
490 .align 16 | |
491 .Lcloop1: | |
492 addb %al,%cl | |
493 movzbl %cl,%ecx | |
494 movzbl (%rdi,%rcx,1),%edx | |
495 movb %al,(%rdi,%rcx,1) | |
496 movb %dl,(%rdi,%r10,1) | |
497 addb %al,%dl | |
498 addb $1,%r10b | |
499 movzbl %dl,%edx | |
500 movzbl %r10b,%r10d | |
501 movzbl (%rdi,%rdx,1),%edx | |
502 movzbl (%rdi,%r10,1),%eax | |
503 xorb (%r12),%dl | |
504 leaq 1(%r12),%r12 | |
505 movb %dl,(%r13) | |
506 leaq 1(%r13),%r13 | |
507 subq $1,%r11 | |
508 jnz .Lcloop1 | |
509 jmp .Lexit | |
510 | |
511 .align 16 | |
512 .Lexit: | |
513 subb $1,%r10b | |
514 movl %r10d,-8(%rdi) | |
515 movl %ecx,-4(%rdi) | |
516 | |
517 movq (%rsp),%r13 | |
518 movq 8(%rsp),%r12 | |
519 movq 16(%rsp),%rbx | |
520 addq $24,%rsp | |
521 .Lepilogue: | |
522 .byte 0xf3,0xc3 | |
523 .size asm_RC4,.-asm_RC4 | |
524 .globl asm_RC4_set_key | |
525 .hidden asm_RC4_set_key | |
526 .type asm_RC4_set_key,@function | |
527 .align 16 | |
528 asm_RC4_set_key: | |
529 leaq 8(%rdi),%rdi | |
530 leaq (%rdx,%rsi,1),%rdx | |
531 negq %rsi | |
532 movq %rsi,%rcx | |
533 xorl %eax,%eax | |
534 xorq %r9,%r9 | |
535 xorq %r10,%r10 | |
536 xorq %r11,%r11 | |
537 | |
538 movl OPENSSL_ia32cap_P(%rip),%r8d | |
539 btl $20,%r8d | |
540 jc .Lc1stloop | |
541 jmp .Lw1stloop | |
542 | |
543 .align 16 | |
544 .Lw1stloop: | |
545 movl %eax,(%rdi,%rax,4) | |
546 addb $1,%al | |
547 jnc .Lw1stloop | |
548 | |
549 xorq %r9,%r9 | |
550 xorq %r8,%r8 | |
551 .align 16 | |
552 .Lw2ndloop: | |
553 movl (%rdi,%r9,4),%r10d | |
554 addb (%rdx,%rsi,1),%r8b | |
555 addb %r10b,%r8b | |
556 addq $1,%rsi | |
557 movl (%rdi,%r8,4),%r11d | |
558 cmovzq %rcx,%rsi | |
559 movl %r10d,(%rdi,%r8,4) | |
560 movl %r11d,(%rdi,%r9,4) | |
561 addb $1,%r9b | |
562 jnc .Lw2ndloop | |
563 jmp .Lexit_key | |
564 | |
565 .align 16 | |
566 .Lc1stloop: | |
567 movb %al,(%rdi,%rax,1) | |
568 addb $1,%al | |
569 jnc .Lc1stloop | |
570 | |
571 xorq %r9,%r9 | |
572 xorq %r8,%r8 | |
573 .align 16 | |
574 .Lc2ndloop: | |
575 movb (%rdi,%r9,1),%r10b | |
576 addb (%rdx,%rsi,1),%r8b | |
577 addb %r10b,%r8b | |
578 addq $1,%rsi | |
579 movb (%rdi,%r8,1),%r11b | |
580 jnz .Lcnowrap | |
581 movq %rcx,%rsi | |
582 .Lcnowrap: | |
583 movb %r10b,(%rdi,%r8,1) | |
584 movb %r11b,(%rdi,%r9,1) | |
585 addb $1,%r9b | |
586 jnc .Lc2ndloop | |
587 movl $-1,256(%rdi) | |
588 | |
589 .align 16 | |
590 .Lexit_key: | |
591 xorl %eax,%eax | |
592 movl %eax,-8(%rdi) | |
593 movl %eax,-4(%rdi) | |
594 .byte 0xf3,0xc3 | |
595 .size asm_RC4_set_key,.-asm_RC4_set_key | |
596 #endif | |
OLD | NEW |