OLD | NEW |
1 #if defined(__x86_64__) | 1 #if defined(__x86_64__) |
2 .text | 2 .text |
3 | 3 |
4 .globl _aesni_encrypt | 4 .globl _aesni_encrypt |
5 .private_extern _aesni_encrypt | 5 .private_extern _aesni_encrypt |
6 | 6 |
7 .p2align 4 | 7 .p2align 4 |
8 _aesni_encrypt: | 8 _aesni_encrypt: |
9 movups (%rdi),%xmm2 | 9 movups (%rdi),%xmm2 |
10 movl 240(%rdx),%eax | 10 movl 240(%rdx),%eax |
11 movups (%rdx),%xmm0 | 11 movups (%rdx),%xmm0 |
12 movups 16(%rdx),%xmm1 | 12 movups 16(%rdx),%xmm1 |
13 leaq 32(%rdx),%rdx | 13 leaq 32(%rdx),%rdx |
14 xorps %xmm0,%xmm2 | 14 xorps %xmm0,%xmm2 |
15 L$oop_enc1_1: | 15 L$oop_enc1_1: |
16 .byte 102,15,56,220,209 | 16 .byte 102,15,56,220,209 |
17 decl %eax | 17 decl %eax |
18 movups (%rdx),%xmm1 | 18 movups (%rdx),%xmm1 |
19 leaq 16(%rdx),%rdx | 19 leaq 16(%rdx),%rdx |
20 jnz L$oop_enc1_1 | 20 jnz L$oop_enc1_1 |
21 .byte 102,15,56,221,209 | 21 .byte 102,15,56,221,209 |
22 pxor %xmm0,%xmm0 | |
23 pxor %xmm1,%xmm1 | |
24 movups %xmm2,(%rsi) | 22 movups %xmm2,(%rsi) |
25 pxor %xmm2,%xmm2 | |
26 .byte 0xf3,0xc3 | 23 .byte 0xf3,0xc3 |
27 | 24 |
28 | 25 |
29 .globl _aesni_decrypt | 26 .globl _aesni_decrypt |
30 .private_extern _aesni_decrypt | 27 .private_extern _aesni_decrypt |
31 | 28 |
32 .p2align 4 | 29 .p2align 4 |
33 _aesni_decrypt: | 30 _aesni_decrypt: |
34 movups (%rdi),%xmm2 | 31 movups (%rdi),%xmm2 |
35 movl 240(%rdx),%eax | 32 movl 240(%rdx),%eax |
36 movups (%rdx),%xmm0 | 33 movups (%rdx),%xmm0 |
37 movups 16(%rdx),%xmm1 | 34 movups 16(%rdx),%xmm1 |
38 leaq 32(%rdx),%rdx | 35 leaq 32(%rdx),%rdx |
39 xorps %xmm0,%xmm2 | 36 xorps %xmm0,%xmm2 |
40 L$oop_dec1_2: | 37 L$oop_dec1_2: |
41 .byte 102,15,56,222,209 | 38 .byte 102,15,56,222,209 |
42 decl %eax | 39 decl %eax |
43 movups (%rdx),%xmm1 | 40 movups (%rdx),%xmm1 |
44 leaq 16(%rdx),%rdx | 41 leaq 16(%rdx),%rdx |
45 jnz L$oop_dec1_2 | 42 jnz L$oop_dec1_2 |
46 .byte 102,15,56,223,209 | 43 .byte 102,15,56,223,209 |
47 pxor %xmm0,%xmm0 | |
48 pxor %xmm1,%xmm1 | |
49 movups %xmm2,(%rsi) | 44 movups %xmm2,(%rsi) |
50 pxor %xmm2,%xmm2 | |
51 .byte 0xf3,0xc3 | 45 .byte 0xf3,0xc3 |
52 | 46 |
53 | 47 |
54 .p2align 4 | 48 .p2align 4 |
55 _aesni_encrypt2: | 49 _aesni_encrypt2: |
56 movups (%rcx),%xmm0 | 50 movups (%rcx),%xmm0 |
57 shll $4,%eax | 51 shll $4,%eax |
58 movups 16(%rcx),%xmm1 | 52 movups 16(%rcx),%xmm1 |
59 xorps %xmm0,%xmm2 | 53 xorps %xmm0,%xmm2 |
60 xorps %xmm0,%xmm3 | 54 xorps %xmm0,%xmm3 |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 pxor %xmm0,%xmm3 | 260 pxor %xmm0,%xmm3 |
267 pxor %xmm0,%xmm4 | 261 pxor %xmm0,%xmm4 |
268 .byte 102,15,56,220,209 | 262 .byte 102,15,56,220,209 |
269 leaq 32(%rcx,%rax,1),%rcx | 263 leaq 32(%rcx,%rax,1),%rcx |
270 negq %rax | 264 negq %rax |
271 .byte 102,15,56,220,217 | 265 .byte 102,15,56,220,217 |
272 pxor %xmm0,%xmm5 | 266 pxor %xmm0,%xmm5 |
273 pxor %xmm0,%xmm6 | 267 pxor %xmm0,%xmm6 |
274 .byte 102,15,56,220,225 | 268 .byte 102,15,56,220,225 |
275 pxor %xmm0,%xmm7 | 269 pxor %xmm0,%xmm7 |
276 movups (%rcx,%rax,1),%xmm0 | |
277 addq $16,%rax | 270 addq $16,%rax |
| 271 .byte 102,15,56,220,233 |
| 272 .byte 102,15,56,220,241 |
| 273 .byte 102,15,56,220,249 |
| 274 movups -16(%rcx,%rax,1),%xmm0 |
278 jmp L$enc_loop6_enter | 275 jmp L$enc_loop6_enter |
279 .p2align 4 | 276 .p2align 4 |
280 L$enc_loop6: | 277 L$enc_loop6: |
281 .byte 102,15,56,220,209 | 278 .byte 102,15,56,220,209 |
282 .byte 102,15,56,220,217 | 279 .byte 102,15,56,220,217 |
283 .byte 102,15,56,220,225 | 280 .byte 102,15,56,220,225 |
284 L$enc_loop6_enter: | |
285 .byte 102,15,56,220,233 | 281 .byte 102,15,56,220,233 |
286 .byte 102,15,56,220,241 | 282 .byte 102,15,56,220,241 |
287 .byte 102,15,56,220,249 | 283 .byte 102,15,56,220,249 |
| 284 L$enc_loop6_enter: |
288 movups (%rcx,%rax,1),%xmm1 | 285 movups (%rcx,%rax,1),%xmm1 |
289 addq $32,%rax | 286 addq $32,%rax |
290 .byte 102,15,56,220,208 | 287 .byte 102,15,56,220,208 |
291 .byte 102,15,56,220,216 | 288 .byte 102,15,56,220,216 |
292 .byte 102,15,56,220,224 | 289 .byte 102,15,56,220,224 |
293 .byte 102,15,56,220,232 | 290 .byte 102,15,56,220,232 |
294 .byte 102,15,56,220,240 | 291 .byte 102,15,56,220,240 |
295 .byte 102,15,56,220,248 | 292 .byte 102,15,56,220,248 |
296 movups -16(%rcx,%rax,1),%xmm0 | 293 movups -16(%rcx,%rax,1),%xmm0 |
297 jnz L$enc_loop6 | 294 jnz L$enc_loop6 |
(...skipping 22 matching lines...) Expand all Loading... |
320 pxor %xmm0,%xmm3 | 317 pxor %xmm0,%xmm3 |
321 pxor %xmm0,%xmm4 | 318 pxor %xmm0,%xmm4 |
322 .byte 102,15,56,222,209 | 319 .byte 102,15,56,222,209 |
323 leaq 32(%rcx,%rax,1),%rcx | 320 leaq 32(%rcx,%rax,1),%rcx |
324 negq %rax | 321 negq %rax |
325 .byte 102,15,56,222,217 | 322 .byte 102,15,56,222,217 |
326 pxor %xmm0,%xmm5 | 323 pxor %xmm0,%xmm5 |
327 pxor %xmm0,%xmm6 | 324 pxor %xmm0,%xmm6 |
328 .byte 102,15,56,222,225 | 325 .byte 102,15,56,222,225 |
329 pxor %xmm0,%xmm7 | 326 pxor %xmm0,%xmm7 |
330 movups (%rcx,%rax,1),%xmm0 | |
331 addq $16,%rax | 327 addq $16,%rax |
| 328 .byte 102,15,56,222,233 |
| 329 .byte 102,15,56,222,241 |
| 330 .byte 102,15,56,222,249 |
| 331 movups -16(%rcx,%rax,1),%xmm0 |
332 jmp L$dec_loop6_enter | 332 jmp L$dec_loop6_enter |
333 .p2align 4 | 333 .p2align 4 |
334 L$dec_loop6: | 334 L$dec_loop6: |
335 .byte 102,15,56,222,209 | 335 .byte 102,15,56,222,209 |
336 .byte 102,15,56,222,217 | 336 .byte 102,15,56,222,217 |
337 .byte 102,15,56,222,225 | 337 .byte 102,15,56,222,225 |
338 L$dec_loop6_enter: | |
339 .byte 102,15,56,222,233 | 338 .byte 102,15,56,222,233 |
340 .byte 102,15,56,222,241 | 339 .byte 102,15,56,222,241 |
341 .byte 102,15,56,222,249 | 340 .byte 102,15,56,222,249 |
| 341 L$dec_loop6_enter: |
342 movups (%rcx,%rax,1),%xmm1 | 342 movups (%rcx,%rax,1),%xmm1 |
343 addq $32,%rax | 343 addq $32,%rax |
344 .byte 102,15,56,222,208 | 344 .byte 102,15,56,222,208 |
345 .byte 102,15,56,222,216 | 345 .byte 102,15,56,222,216 |
346 .byte 102,15,56,222,224 | 346 .byte 102,15,56,222,224 |
347 .byte 102,15,56,222,232 | 347 .byte 102,15,56,222,232 |
348 .byte 102,15,56,222,240 | 348 .byte 102,15,56,222,240 |
349 .byte 102,15,56,222,248 | 349 .byte 102,15,56,222,248 |
350 movups -16(%rcx,%rax,1),%xmm0 | 350 movups -16(%rcx,%rax,1),%xmm0 |
351 jnz L$dec_loop6 | 351 jnz L$dec_loop6 |
(...skipping 19 matching lines...) Expand all Loading... |
371 shll $4,%eax | 371 shll $4,%eax |
372 movups 16(%rcx),%xmm1 | 372 movups 16(%rcx),%xmm1 |
373 xorps %xmm0,%xmm2 | 373 xorps %xmm0,%xmm2 |
374 xorps %xmm0,%xmm3 | 374 xorps %xmm0,%xmm3 |
375 pxor %xmm0,%xmm4 | 375 pxor %xmm0,%xmm4 |
376 pxor %xmm0,%xmm5 | 376 pxor %xmm0,%xmm5 |
377 pxor %xmm0,%xmm6 | 377 pxor %xmm0,%xmm6 |
378 leaq 32(%rcx,%rax,1),%rcx | 378 leaq 32(%rcx,%rax,1),%rcx |
379 negq %rax | 379 negq %rax |
380 .byte 102,15,56,220,209 | 380 .byte 102,15,56,220,209 |
| 381 addq $16,%rax |
381 pxor %xmm0,%xmm7 | 382 pxor %xmm0,%xmm7 |
| 383 .byte 102,15,56,220,217 |
382 pxor %xmm0,%xmm8 | 384 pxor %xmm0,%xmm8 |
383 .byte 102,15,56,220,217 | |
384 pxor %xmm0,%xmm9 | 385 pxor %xmm0,%xmm9 |
385 » movups» (%rcx,%rax,1),%xmm0 | 386 .byte» 102,15,56,220,225 |
386 » addq» $16,%rax | 387 .byte» 102,15,56,220,233 |
387 » jmp» L$enc_loop8_inner | 388 .byte» 102,15,56,220,241 |
| 389 .byte» 102,15,56,220,249 |
| 390 .byte» 102,68,15,56,220,193 |
| 391 .byte» 102,68,15,56,220,201 |
| 392 » movups» -16(%rcx,%rax,1),%xmm0 |
| 393 » jmp» L$enc_loop8_enter |
388 .p2align 4 | 394 .p2align 4 |
389 L$enc_loop8: | 395 L$enc_loop8: |
390 .byte 102,15,56,220,209 | 396 .byte 102,15,56,220,209 |
391 .byte 102,15,56,220,217 | 397 .byte 102,15,56,220,217 |
392 L$enc_loop8_inner: | |
393 .byte 102,15,56,220,225 | 398 .byte 102,15,56,220,225 |
394 .byte 102,15,56,220,233 | 399 .byte 102,15,56,220,233 |
395 .byte 102,15,56,220,241 | 400 .byte 102,15,56,220,241 |
396 .byte 102,15,56,220,249 | 401 .byte 102,15,56,220,249 |
397 .byte 102,68,15,56,220,193 | 402 .byte 102,68,15,56,220,193 |
398 .byte 102,68,15,56,220,201 | 403 .byte 102,68,15,56,220,201 |
399 L$enc_loop8_enter: | 404 L$enc_loop8_enter: |
400 movups (%rcx,%rax,1),%xmm1 | 405 movups (%rcx,%rax,1),%xmm1 |
401 addq $32,%rax | 406 addq $32,%rax |
402 .byte 102,15,56,220,208 | 407 .byte 102,15,56,220,208 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 shll $4,%eax | 440 shll $4,%eax |
436 movups 16(%rcx),%xmm1 | 441 movups 16(%rcx),%xmm1 |
437 xorps %xmm0,%xmm2 | 442 xorps %xmm0,%xmm2 |
438 xorps %xmm0,%xmm3 | 443 xorps %xmm0,%xmm3 |
439 pxor %xmm0,%xmm4 | 444 pxor %xmm0,%xmm4 |
440 pxor %xmm0,%xmm5 | 445 pxor %xmm0,%xmm5 |
441 pxor %xmm0,%xmm6 | 446 pxor %xmm0,%xmm6 |
442 leaq 32(%rcx,%rax,1),%rcx | 447 leaq 32(%rcx,%rax,1),%rcx |
443 negq %rax | 448 negq %rax |
444 .byte 102,15,56,222,209 | 449 .byte 102,15,56,222,209 |
| 450 addq $16,%rax |
445 pxor %xmm0,%xmm7 | 451 pxor %xmm0,%xmm7 |
| 452 .byte 102,15,56,222,217 |
446 pxor %xmm0,%xmm8 | 453 pxor %xmm0,%xmm8 |
447 .byte 102,15,56,222,217 | |
448 pxor %xmm0,%xmm9 | 454 pxor %xmm0,%xmm9 |
449 » movups» (%rcx,%rax,1),%xmm0 | 455 .byte» 102,15,56,222,225 |
450 » addq» $16,%rax | 456 .byte» 102,15,56,222,233 |
451 » jmp» L$dec_loop8_inner | 457 .byte» 102,15,56,222,241 |
| 458 .byte» 102,15,56,222,249 |
| 459 .byte» 102,68,15,56,222,193 |
| 460 .byte» 102,68,15,56,222,201 |
| 461 » movups» -16(%rcx,%rax,1),%xmm0 |
| 462 » jmp» L$dec_loop8_enter |
452 .p2align 4 | 463 .p2align 4 |
453 L$dec_loop8: | 464 L$dec_loop8: |
454 .byte 102,15,56,222,209 | 465 .byte 102,15,56,222,209 |
455 .byte 102,15,56,222,217 | 466 .byte 102,15,56,222,217 |
456 L$dec_loop8_inner: | |
457 .byte 102,15,56,222,225 | 467 .byte 102,15,56,222,225 |
458 .byte 102,15,56,222,233 | 468 .byte 102,15,56,222,233 |
459 .byte 102,15,56,222,241 | 469 .byte 102,15,56,222,241 |
460 .byte 102,15,56,222,249 | 470 .byte 102,15,56,222,249 |
461 .byte 102,68,15,56,222,193 | 471 .byte 102,68,15,56,222,193 |
462 .byte 102,68,15,56,222,201 | 472 .byte 102,68,15,56,222,201 |
463 L$dec_loop8_enter: | 473 L$dec_loop8_enter: |
464 movups (%rcx,%rax,1),%xmm1 | 474 movups (%rcx,%rax,1),%xmm1 |
465 addq $32,%rax | 475 addq $32,%rax |
466 .byte 102,15,56,222,208 | 476 .byte 102,15,56,222,208 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
574 cmpq $64,%rdx | 584 cmpq $64,%rdx |
575 jb L$ecb_enc_three | 585 jb L$ecb_enc_three |
576 movups 48(%rdi),%xmm5 | 586 movups 48(%rdi),%xmm5 |
577 je L$ecb_enc_four | 587 je L$ecb_enc_four |
578 movups 64(%rdi),%xmm6 | 588 movups 64(%rdi),%xmm6 |
579 cmpq $96,%rdx | 589 cmpq $96,%rdx |
580 jb L$ecb_enc_five | 590 jb L$ecb_enc_five |
581 movups 80(%rdi),%xmm7 | 591 movups 80(%rdi),%xmm7 |
582 je L$ecb_enc_six | 592 je L$ecb_enc_six |
583 movdqu 96(%rdi),%xmm8 | 593 movdqu 96(%rdi),%xmm8 |
584 xorps %xmm9,%xmm9 | |
585 call _aesni_encrypt8 | 594 call _aesni_encrypt8 |
586 movups %xmm2,(%rsi) | 595 movups %xmm2,(%rsi) |
587 movups %xmm3,16(%rsi) | 596 movups %xmm3,16(%rsi) |
588 movups %xmm4,32(%rsi) | 597 movups %xmm4,32(%rsi) |
589 movups %xmm5,48(%rsi) | 598 movups %xmm5,48(%rsi) |
590 movups %xmm6,64(%rsi) | 599 movups %xmm6,64(%rsi) |
591 movups %xmm7,80(%rsi) | 600 movups %xmm7,80(%rsi) |
592 movups %xmm8,96(%rsi) | 601 movups %xmm8,96(%rsi) |
593 jmp L$ecb_ret | 602 jmp L$ecb_ret |
594 .p2align 4 | 603 .p2align 4 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
688 leaq 128(%rdi),%rdi | 697 leaq 128(%rdi),%rdi |
689 L$ecb_dec_loop8_enter: | 698 L$ecb_dec_loop8_enter: |
690 | 699 |
691 call _aesni_decrypt8 | 700 call _aesni_decrypt8 |
692 | 701 |
693 movups (%r11),%xmm0 | 702 movups (%r11),%xmm0 |
694 subq $128,%rdx | 703 subq $128,%rdx |
695 jnc L$ecb_dec_loop8 | 704 jnc L$ecb_dec_loop8 |
696 | 705 |
697 movups %xmm2,(%rsi) | 706 movups %xmm2,(%rsi) |
698 pxor %xmm2,%xmm2 | |
699 movq %r11,%rcx | 707 movq %r11,%rcx |
700 movups %xmm3,16(%rsi) | 708 movups %xmm3,16(%rsi) |
701 pxor %xmm3,%xmm3 | |
702 movl %r10d,%eax | 709 movl %r10d,%eax |
703 movups %xmm4,32(%rsi) | 710 movups %xmm4,32(%rsi) |
704 pxor %xmm4,%xmm4 | |
705 movups %xmm5,48(%rsi) | 711 movups %xmm5,48(%rsi) |
706 pxor %xmm5,%xmm5 | |
707 movups %xmm6,64(%rsi) | 712 movups %xmm6,64(%rsi) |
708 pxor %xmm6,%xmm6 | |
709 movups %xmm7,80(%rsi) | 713 movups %xmm7,80(%rsi) |
710 pxor %xmm7,%xmm7 | |
711 movups %xmm8,96(%rsi) | 714 movups %xmm8,96(%rsi) |
712 pxor %xmm8,%xmm8 | |
713 movups %xmm9,112(%rsi) | 715 movups %xmm9,112(%rsi) |
714 pxor %xmm9,%xmm9 | |
715 leaq 128(%rsi),%rsi | 716 leaq 128(%rsi),%rsi |
716 addq $128,%rdx | 717 addq $128,%rdx |
717 jz L$ecb_ret | 718 jz L$ecb_ret |
718 | 719 |
719 L$ecb_dec_tail: | 720 L$ecb_dec_tail: |
720 movups (%rdi),%xmm2 | 721 movups (%rdi),%xmm2 |
721 cmpq $32,%rdx | 722 cmpq $32,%rdx |
722 jb L$ecb_dec_one | 723 jb L$ecb_dec_one |
723 movups 16(%rdi),%xmm3 | 724 movups 16(%rdi),%xmm3 |
724 je L$ecb_dec_two | 725 je L$ecb_dec_two |
725 movups 32(%rdi),%xmm4 | 726 movups 32(%rdi),%xmm4 |
726 cmpq $64,%rdx | 727 cmpq $64,%rdx |
727 jb L$ecb_dec_three | 728 jb L$ecb_dec_three |
728 movups 48(%rdi),%xmm5 | 729 movups 48(%rdi),%xmm5 |
729 je L$ecb_dec_four | 730 je L$ecb_dec_four |
730 movups 64(%rdi),%xmm6 | 731 movups 64(%rdi),%xmm6 |
731 cmpq $96,%rdx | 732 cmpq $96,%rdx |
732 jb L$ecb_dec_five | 733 jb L$ecb_dec_five |
733 movups 80(%rdi),%xmm7 | 734 movups 80(%rdi),%xmm7 |
734 je L$ecb_dec_six | 735 je L$ecb_dec_six |
735 movups 96(%rdi),%xmm8 | 736 movups 96(%rdi),%xmm8 |
736 movups (%rcx),%xmm0 | 737 movups (%rcx),%xmm0 |
737 xorps %xmm9,%xmm9 | |
738 call _aesni_decrypt8 | 738 call _aesni_decrypt8 |
739 movups %xmm2,(%rsi) | 739 movups %xmm2,(%rsi) |
740 pxor %xmm2,%xmm2 | |
741 movups %xmm3,16(%rsi) | 740 movups %xmm3,16(%rsi) |
742 pxor %xmm3,%xmm3 | |
743 movups %xmm4,32(%rsi) | 741 movups %xmm4,32(%rsi) |
744 pxor %xmm4,%xmm4 | |
745 movups %xmm5,48(%rsi) | 742 movups %xmm5,48(%rsi) |
746 pxor %xmm5,%xmm5 | |
747 movups %xmm6,64(%rsi) | 743 movups %xmm6,64(%rsi) |
748 pxor %xmm6,%xmm6 | |
749 movups %xmm7,80(%rsi) | 744 movups %xmm7,80(%rsi) |
750 pxor %xmm7,%xmm7 | |
751 movups %xmm8,96(%rsi) | 745 movups %xmm8,96(%rsi) |
752 pxor %xmm8,%xmm8 | |
753 pxor %xmm9,%xmm9 | |
754 jmp L$ecb_ret | 746 jmp L$ecb_ret |
755 .p2align 4 | 747 .p2align 4 |
756 L$ecb_dec_one: | 748 L$ecb_dec_one: |
757 movups (%rcx),%xmm0 | 749 movups (%rcx),%xmm0 |
758 movups 16(%rcx),%xmm1 | 750 movups 16(%rcx),%xmm1 |
759 leaq 32(%rcx),%rcx | 751 leaq 32(%rcx),%rcx |
760 xorps %xmm0,%xmm2 | 752 xorps %xmm0,%xmm2 |
761 L$oop_dec1_4: | 753 L$oop_dec1_4: |
762 .byte 102,15,56,222,209 | 754 .byte 102,15,56,222,209 |
763 decl %eax | 755 decl %eax |
764 movups (%rcx),%xmm1 | 756 movups (%rcx),%xmm1 |
765 leaq 16(%rcx),%rcx | 757 leaq 16(%rcx),%rcx |
766 jnz L$oop_dec1_4 | 758 jnz L$oop_dec1_4 |
767 .byte 102,15,56,223,209 | 759 .byte 102,15,56,223,209 |
768 movups %xmm2,(%rsi) | 760 movups %xmm2,(%rsi) |
769 pxor %xmm2,%xmm2 | |
770 jmp L$ecb_ret | 761 jmp L$ecb_ret |
771 .p2align 4 | 762 .p2align 4 |
772 L$ecb_dec_two: | 763 L$ecb_dec_two: |
773 call _aesni_decrypt2 | 764 call _aesni_decrypt2 |
774 movups %xmm2,(%rsi) | 765 movups %xmm2,(%rsi) |
775 pxor %xmm2,%xmm2 | |
776 movups %xmm3,16(%rsi) | 766 movups %xmm3,16(%rsi) |
777 pxor %xmm3,%xmm3 | |
778 jmp L$ecb_ret | 767 jmp L$ecb_ret |
779 .p2align 4 | 768 .p2align 4 |
780 L$ecb_dec_three: | 769 L$ecb_dec_three: |
781 call _aesni_decrypt3 | 770 call _aesni_decrypt3 |
782 movups %xmm2,(%rsi) | 771 movups %xmm2,(%rsi) |
783 pxor %xmm2,%xmm2 | |
784 movups %xmm3,16(%rsi) | 772 movups %xmm3,16(%rsi) |
785 pxor %xmm3,%xmm3 | |
786 movups %xmm4,32(%rsi) | 773 movups %xmm4,32(%rsi) |
787 pxor %xmm4,%xmm4 | |
788 jmp L$ecb_ret | 774 jmp L$ecb_ret |
789 .p2align 4 | 775 .p2align 4 |
790 L$ecb_dec_four: | 776 L$ecb_dec_four: |
791 call _aesni_decrypt4 | 777 call _aesni_decrypt4 |
792 movups %xmm2,(%rsi) | 778 movups %xmm2,(%rsi) |
793 pxor %xmm2,%xmm2 | |
794 movups %xmm3,16(%rsi) | 779 movups %xmm3,16(%rsi) |
795 pxor %xmm3,%xmm3 | |
796 movups %xmm4,32(%rsi) | 780 movups %xmm4,32(%rsi) |
797 pxor %xmm4,%xmm4 | |
798 movups %xmm5,48(%rsi) | 781 movups %xmm5,48(%rsi) |
799 pxor %xmm5,%xmm5 | |
800 jmp L$ecb_ret | 782 jmp L$ecb_ret |
801 .p2align 4 | 783 .p2align 4 |
802 L$ecb_dec_five: | 784 L$ecb_dec_five: |
803 xorps %xmm7,%xmm7 | 785 xorps %xmm7,%xmm7 |
804 call _aesni_decrypt6 | 786 call _aesni_decrypt6 |
805 movups %xmm2,(%rsi) | 787 movups %xmm2,(%rsi) |
806 pxor %xmm2,%xmm2 | |
807 movups %xmm3,16(%rsi) | 788 movups %xmm3,16(%rsi) |
808 pxor %xmm3,%xmm3 | |
809 movups %xmm4,32(%rsi) | 789 movups %xmm4,32(%rsi) |
810 pxor %xmm4,%xmm4 | |
811 movups %xmm5,48(%rsi) | 790 movups %xmm5,48(%rsi) |
812 pxor %xmm5,%xmm5 | |
813 movups %xmm6,64(%rsi) | 791 movups %xmm6,64(%rsi) |
814 pxor %xmm6,%xmm6 | |
815 pxor %xmm7,%xmm7 | |
816 jmp L$ecb_ret | 792 jmp L$ecb_ret |
817 .p2align 4 | 793 .p2align 4 |
818 L$ecb_dec_six: | 794 L$ecb_dec_six: |
819 call _aesni_decrypt6 | 795 call _aesni_decrypt6 |
820 movups %xmm2,(%rsi) | 796 movups %xmm2,(%rsi) |
821 pxor %xmm2,%xmm2 | |
822 movups %xmm3,16(%rsi) | 797 movups %xmm3,16(%rsi) |
823 pxor %xmm3,%xmm3 | |
824 movups %xmm4,32(%rsi) | 798 movups %xmm4,32(%rsi) |
825 pxor %xmm4,%xmm4 | |
826 movups %xmm5,48(%rsi) | 799 movups %xmm5,48(%rsi) |
827 pxor %xmm5,%xmm5 | |
828 movups %xmm6,64(%rsi) | 800 movups %xmm6,64(%rsi) |
829 pxor %xmm6,%xmm6 | |
830 movups %xmm7,80(%rsi) | 801 movups %xmm7,80(%rsi) |
831 pxor %xmm7,%xmm7 | |
832 | 802 |
833 L$ecb_ret: | 803 L$ecb_ret: |
834 xorps %xmm0,%xmm0 | |
835 pxor %xmm1,%xmm1 | |
836 .byte 0xf3,0xc3 | 804 .byte 0xf3,0xc3 |
837 | 805 |
838 .globl _aesni_ccm64_encrypt_blocks | 806 .globl _aesni_ccm64_encrypt_blocks |
839 .private_extern _aesni_ccm64_encrypt_blocks | 807 .private_extern _aesni_ccm64_encrypt_blocks |
840 | 808 |
841 .p2align 4 | 809 .p2align 4 |
842 _aesni_ccm64_encrypt_blocks: | 810 _aesni_ccm64_encrypt_blocks: |
843 movl 240(%rcx),%eax | 811 movl 240(%rcx),%eax |
844 movdqu (%r8),%xmm6 | 812 movdqu (%r8),%xmm6 |
845 movdqa L$increment64(%rip),%xmm9 | 813 movdqa L$increment64(%rip),%xmm9 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
883 .byte 102,15,56,221,216 | 851 .byte 102,15,56,221,216 |
884 | 852 |
885 leaq 16(%rdi),%rdi | 853 leaq 16(%rdi),%rdi |
886 xorps %xmm2,%xmm8 | 854 xorps %xmm2,%xmm8 |
887 movdqa %xmm6,%xmm2 | 855 movdqa %xmm6,%xmm2 |
888 movups %xmm8,(%rsi) | 856 movups %xmm8,(%rsi) |
889 .byte 102,15,56,0,215 | 857 .byte 102,15,56,0,215 |
890 leaq 16(%rsi),%rsi | 858 leaq 16(%rsi),%rsi |
891 jnz L$ccm64_enc_outer | 859 jnz L$ccm64_enc_outer |
892 | 860 |
893 pxor %xmm0,%xmm0 | |
894 pxor %xmm1,%xmm1 | |
895 pxor %xmm2,%xmm2 | |
896 movups %xmm3,(%r9) | 861 movups %xmm3,(%r9) |
897 pxor %xmm3,%xmm3 | |
898 pxor %xmm8,%xmm8 | |
899 pxor %xmm6,%xmm6 | |
900 .byte 0xf3,0xc3 | 862 .byte 0xf3,0xc3 |
901 | 863 |
902 .globl _aesni_ccm64_decrypt_blocks | 864 .globl _aesni_ccm64_decrypt_blocks |
903 .private_extern _aesni_ccm64_decrypt_blocks | 865 .private_extern _aesni_ccm64_decrypt_blocks |
904 | 866 |
905 .p2align 4 | 867 .p2align 4 |
906 _aesni_ccm64_decrypt_blocks: | 868 _aesni_ccm64_decrypt_blocks: |
907 movl 240(%rcx),%eax | 869 movl 240(%rcx),%eax |
908 movups (%r8),%xmm6 | 870 movups (%r8),%xmm6 |
909 movdqu (%r9),%xmm3 | 871 movdqu (%r9),%xmm3 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
981 xorps %xmm0,%xmm8 | 943 xorps %xmm0,%xmm8 |
982 leaq 32(%r11),%r11 | 944 leaq 32(%r11),%r11 |
983 xorps %xmm8,%xmm3 | 945 xorps %xmm8,%xmm3 |
984 L$oop_enc1_6: | 946 L$oop_enc1_6: |
985 .byte 102,15,56,220,217 | 947 .byte 102,15,56,220,217 |
986 decl %eax | 948 decl %eax |
987 movups (%r11),%xmm1 | 949 movups (%r11),%xmm1 |
988 leaq 16(%r11),%r11 | 950 leaq 16(%r11),%r11 |
989 jnz L$oop_enc1_6 | 951 jnz L$oop_enc1_6 |
990 .byte 102,15,56,221,217 | 952 .byte 102,15,56,221,217 |
991 pxor %xmm0,%xmm0 | |
992 pxor %xmm1,%xmm1 | |
993 pxor %xmm2,%xmm2 | |
994 movups %xmm3,(%r9) | 953 movups %xmm3,(%r9) |
995 pxor %xmm3,%xmm3 | |
996 pxor %xmm8,%xmm8 | |
997 pxor %xmm6,%xmm6 | |
998 .byte 0xf3,0xc3 | 954 .byte 0xf3,0xc3 |
999 | 955 |
1000 .globl _aesni_ctr32_encrypt_blocks | 956 .globl _aesni_ctr32_encrypt_blocks |
1001 .private_extern _aesni_ctr32_encrypt_blocks | 957 .private_extern _aesni_ctr32_encrypt_blocks |
1002 | 958 |
1003 .p2align 4 | 959 .p2align 4 |
1004 _aesni_ctr32_encrypt_blocks: | 960 _aesni_ctr32_encrypt_blocks: |
1005 cmpq $1,%rdx | |
1006 jne L$ctr32_bulk | |
1007 | |
1008 | |
1009 | |
1010 movups (%r8),%xmm2 | |
1011 movups (%rdi),%xmm3 | |
1012 movl 240(%rcx),%edx | |
1013 movups (%rcx),%xmm0 | |
1014 movups 16(%rcx),%xmm1 | |
1015 leaq 32(%rcx),%rcx | |
1016 xorps %xmm0,%xmm2 | |
1017 L$oop_enc1_7: | |
1018 .byte 102,15,56,220,209 | |
1019 decl %edx | |
1020 movups (%rcx),%xmm1 | |
1021 leaq 16(%rcx),%rcx | |
1022 jnz L$oop_enc1_7 | |
1023 .byte 102,15,56,221,209 | |
1024 pxor %xmm0,%xmm0 | |
1025 pxor %xmm1,%xmm1 | |
1026 xorps %xmm3,%xmm2 | |
1027 pxor %xmm3,%xmm3 | |
1028 movups %xmm2,(%rsi) | |
1029 xorps %xmm2,%xmm2 | |
1030 jmp L$ctr32_epilogue | |
1031 | |
1032 .p2align 4 | |
1033 L$ctr32_bulk: | |
1034 leaq (%rsp),%rax | 961 leaq (%rsp),%rax |
1035 pushq %rbp | 962 pushq %rbp |
1036 subq $128,%rsp | 963 subq $128,%rsp |
1037 andq $-16,%rsp | 964 andq $-16,%rsp |
1038 leaq -8(%rax),%rbp | 965 leaq -8(%rax),%rbp |
1039 | 966 |
1040 | 967 » cmpq» $1,%rdx |
1041 | 968 » je» L$ctr32_one_shortcut |
1042 | 969 |
1043 movdqu (%r8),%xmm2 | 970 movdqu (%r8),%xmm2 |
1044 movdqu (%rcx),%xmm0 | 971 movdqu (%rcx),%xmm0 |
1045 movl 12(%r8),%r8d | 972 movl 12(%r8),%r8d |
1046 pxor %xmm0,%xmm2 | 973 pxor %xmm0,%xmm2 |
1047 movl 12(%rcx),%r11d | 974 movl 12(%rcx),%r11d |
1048 movdqa %xmm2,0(%rsp) | 975 movdqa %xmm2,0(%rsp) |
1049 bswapl %r8d | 976 bswapl %r8d |
1050 movdqa %xmm2,%xmm3 | 977 movdqa %xmm2,%xmm3 |
1051 movdqa %xmm2,%xmm4 | 978 movdqa %xmm2,%xmm4 |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1422 leaq 128(%rsi),%rsi | 1349 leaq 128(%rsi),%rsi |
1423 | 1350 |
1424 subq $8,%rdx | 1351 subq $8,%rdx |
1425 jnc L$ctr32_loop8 | 1352 jnc L$ctr32_loop8 |
1426 | 1353 |
1427 addq $8,%rdx | 1354 addq $8,%rdx |
1428 jz L$ctr32_done | 1355 jz L$ctr32_done |
1429 leaq -128(%rcx),%rcx | 1356 leaq -128(%rcx),%rcx |
1430 | 1357 |
1431 L$ctr32_tail: | 1358 L$ctr32_tail: |
1432 | |
1433 | |
1434 leaq 16(%rcx),%rcx | 1359 leaq 16(%rcx),%rcx |
1435 cmpq $4,%rdx | 1360 cmpq $4,%rdx |
1436 jb L$ctr32_loop3 | 1361 jb L$ctr32_loop3 |
1437 je L$ctr32_loop4 | 1362 je L$ctr32_loop4 |
1438 | 1363 |
1439 | |
1440 shll $4,%eax | 1364 shll $4,%eax |
1441 movdqa 96(%rsp),%xmm8 | 1365 movdqa 96(%rsp),%xmm8 |
1442 pxor %xmm9,%xmm9 | 1366 pxor %xmm9,%xmm9 |
1443 | 1367 |
1444 movups 16(%rcx),%xmm0 | 1368 movups 16(%rcx),%xmm0 |
1445 .byte 102,15,56,220,209 | 1369 .byte 102,15,56,220,209 |
1446 .byte 102,15,56,220,217 | 1370 .byte 102,15,56,220,217 |
1447 leaq 32-16(%rcx,%rax,1),%rcx | 1371 leaq 32-16(%rcx,%rax,1),%rcx |
1448 negq %rax | 1372 negq %rax |
1449 .byte 102,15,56,220,225 | 1373 .byte 102,15,56,220,225 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1532 jb L$ctr32_done | 1456 jb L$ctr32_done |
1533 | 1457 |
1534 movups 16(%rdi),%xmm11 | 1458 movups 16(%rdi),%xmm11 |
1535 xorps %xmm11,%xmm3 | 1459 xorps %xmm11,%xmm3 |
1536 movups %xmm3,16(%rsi) | 1460 movups %xmm3,16(%rsi) |
1537 je L$ctr32_done | 1461 je L$ctr32_done |
1538 | 1462 |
1539 movups 32(%rdi),%xmm12 | 1463 movups 32(%rdi),%xmm12 |
1540 xorps %xmm12,%xmm4 | 1464 xorps %xmm12,%xmm4 |
1541 movups %xmm4,32(%rsi) | 1465 movups %xmm4,32(%rsi) |
| 1466 jmp L$ctr32_done |
1542 | 1467 |
| 1468 .p2align 4 |
| 1469 L$ctr32_one_shortcut: |
| 1470 movups (%r8),%xmm2 |
| 1471 movups (%rdi),%xmm10 |
| 1472 movl 240(%rcx),%eax |
| 1473 movups (%rcx),%xmm0 |
| 1474 movups 16(%rcx),%xmm1 |
| 1475 leaq 32(%rcx),%rcx |
| 1476 xorps %xmm0,%xmm2 |
| 1477 L$oop_enc1_7: |
| 1478 .byte 102,15,56,220,209 |
| 1479 decl %eax |
| 1480 movups (%rcx),%xmm1 |
| 1481 leaq 16(%rcx),%rcx |
| 1482 jnz L$oop_enc1_7 |
| 1483 .byte 102,15,56,221,209 |
| 1484 xorps %xmm10,%xmm2 |
| 1485 movups %xmm2,(%rsi) |
| 1486 jmp L$ctr32_done |
| 1487 |
| 1488 .p2align 4 |
1543 L$ctr32_done: | 1489 L$ctr32_done: |
1544 xorps %xmm0,%xmm0 | |
1545 xorl %r11d,%r11d | |
1546 pxor %xmm1,%xmm1 | |
1547 pxor %xmm2,%xmm2 | |
1548 pxor %xmm3,%xmm3 | |
1549 pxor %xmm4,%xmm4 | |
1550 pxor %xmm5,%xmm5 | |
1551 pxor %xmm6,%xmm6 | |
1552 pxor %xmm7,%xmm7 | |
1553 movaps %xmm0,0(%rsp) | |
1554 pxor %xmm8,%xmm8 | |
1555 movaps %xmm0,16(%rsp) | |
1556 pxor %xmm9,%xmm9 | |
1557 movaps %xmm0,32(%rsp) | |
1558 pxor %xmm10,%xmm10 | |
1559 movaps %xmm0,48(%rsp) | |
1560 pxor %xmm11,%xmm11 | |
1561 movaps %xmm0,64(%rsp) | |
1562 pxor %xmm12,%xmm12 | |
1563 movaps %xmm0,80(%rsp) | |
1564 pxor %xmm13,%xmm13 | |
1565 movaps %xmm0,96(%rsp) | |
1566 pxor %xmm14,%xmm14 | |
1567 movaps %xmm0,112(%rsp) | |
1568 pxor %xmm15,%xmm15 | |
1569 leaq (%rbp),%rsp | 1490 leaq (%rbp),%rsp |
1570 popq %rbp | 1491 popq %rbp |
1571 L$ctr32_epilogue: | 1492 L$ctr32_epilogue: |
1572 .byte 0xf3,0xc3 | 1493 .byte 0xf3,0xc3 |
1573 | 1494 |
1574 .globl _aesni_xts_encrypt | 1495 .globl _aesni_xts_encrypt |
1575 .private_extern _aesni_xts_encrypt | 1496 .private_extern _aesni_xts_encrypt |
1576 | 1497 |
1577 .p2align 4 | 1498 .p2align 4 |
1578 _aesni_xts_encrypt: | 1499 _aesni_xts_encrypt: |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1830 movups %xmm7,-16(%rsi) | 1751 movups %xmm7,-16(%rsi) |
1831 subq $96,%rdx | 1752 subq $96,%rdx |
1832 jnc L$xts_enc_grandloop | 1753 jnc L$xts_enc_grandloop |
1833 | 1754 |
1834 movl $16+96,%eax | 1755 movl $16+96,%eax |
1835 subl %r10d,%eax | 1756 subl %r10d,%eax |
1836 movq %r11,%rcx | 1757 movq %r11,%rcx |
1837 shrl $4,%eax | 1758 shrl $4,%eax |
1838 | 1759 |
1839 L$xts_enc_short: | 1760 L$xts_enc_short: |
1840 | |
1841 movl %eax,%r10d | 1761 movl %eax,%r10d |
1842 pxor %xmm0,%xmm10 | 1762 pxor %xmm0,%xmm10 |
1843 addq $96,%rdx | 1763 addq $96,%rdx |
1844 jz L$xts_enc_done | 1764 jz L$xts_enc_done |
1845 | 1765 |
1846 pxor %xmm0,%xmm11 | 1766 pxor %xmm0,%xmm11 |
1847 cmpq $32,%rdx | 1767 cmpq $32,%rdx |
1848 jb L$xts_enc_one | 1768 jb L$xts_enc_one |
1849 pxor %xmm0,%xmm12 | 1769 pxor %xmm0,%xmm12 |
1850 je L$xts_enc_two | 1770 je L$xts_enc_two |
1851 | 1771 |
1852 pxor %xmm0,%xmm13 | 1772 pxor %xmm0,%xmm13 |
1853 cmpq $64,%rdx | 1773 cmpq $64,%rdx |
1854 jb L$xts_enc_three | 1774 jb L$xts_enc_three |
1855 pxor %xmm0,%xmm14 | 1775 pxor %xmm0,%xmm14 |
1856 je L$xts_enc_four | 1776 je L$xts_enc_four |
1857 | 1777 |
1858 movdqu (%rdi),%xmm2 | 1778 movdqu (%rdi),%xmm2 |
1859 movdqu 16(%rdi),%xmm3 | 1779 movdqu 16(%rdi),%xmm3 |
1860 movdqu 32(%rdi),%xmm4 | 1780 movdqu 32(%rdi),%xmm4 |
1861 pxor %xmm10,%xmm2 | 1781 pxor %xmm10,%xmm2 |
1862 movdqu 48(%rdi),%xmm5 | 1782 movdqu 48(%rdi),%xmm5 |
1863 pxor %xmm11,%xmm3 | 1783 pxor %xmm11,%xmm3 |
1864 movdqu 64(%rdi),%xmm6 | 1784 movdqu 64(%rdi),%xmm6 |
1865 leaq 80(%rdi),%rdi | 1785 leaq 80(%rdi),%rdi |
1866 pxor %xmm12,%xmm4 | 1786 pxor %xmm12,%xmm4 |
1867 pxor %xmm13,%xmm5 | 1787 pxor %xmm13,%xmm5 |
1868 pxor %xmm14,%xmm6 | 1788 pxor %xmm14,%xmm6 |
1869 pxor %xmm7,%xmm7 | |
1870 | 1789 |
1871 call _aesni_encrypt6 | 1790 call _aesni_encrypt6 |
1872 | 1791 |
1873 xorps %xmm10,%xmm2 | 1792 xorps %xmm10,%xmm2 |
1874 movdqa %xmm15,%xmm10 | 1793 movdqa %xmm15,%xmm10 |
1875 xorps %xmm11,%xmm3 | 1794 xorps %xmm11,%xmm3 |
1876 xorps %xmm12,%xmm4 | 1795 xorps %xmm12,%xmm4 |
1877 movdqu %xmm2,(%rsi) | 1796 movdqu %xmm2,(%rsi) |
1878 xorps %xmm13,%xmm5 | 1797 xorps %xmm13,%xmm5 |
1879 movdqu %xmm3,16(%rsi) | 1798 movdqu %xmm3,16(%rsi) |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2002 .byte 102,15,56,220,209 | 1921 .byte 102,15,56,220,209 |
2003 decl %eax | 1922 decl %eax |
2004 movups (%rcx),%xmm1 | 1923 movups (%rcx),%xmm1 |
2005 leaq 16(%rcx),%rcx | 1924 leaq 16(%rcx),%rcx |
2006 jnz L$oop_enc1_10 | 1925 jnz L$oop_enc1_10 |
2007 .byte 102,15,56,221,209 | 1926 .byte 102,15,56,221,209 |
2008 xorps %xmm10,%xmm2 | 1927 xorps %xmm10,%xmm2 |
2009 movups %xmm2,-16(%rsi) | 1928 movups %xmm2,-16(%rsi) |
2010 | 1929 |
2011 L$xts_enc_ret: | 1930 L$xts_enc_ret: |
2012 xorps %xmm0,%xmm0 | |
2013 pxor %xmm1,%xmm1 | |
2014 pxor %xmm2,%xmm2 | |
2015 pxor %xmm3,%xmm3 | |
2016 pxor %xmm4,%xmm4 | |
2017 pxor %xmm5,%xmm5 | |
2018 pxor %xmm6,%xmm6 | |
2019 pxor %xmm7,%xmm7 | |
2020 movaps %xmm0,0(%rsp) | |
2021 pxor %xmm8,%xmm8 | |
2022 movaps %xmm0,16(%rsp) | |
2023 pxor %xmm9,%xmm9 | |
2024 movaps %xmm0,32(%rsp) | |
2025 pxor %xmm10,%xmm10 | |
2026 movaps %xmm0,48(%rsp) | |
2027 pxor %xmm11,%xmm11 | |
2028 movaps %xmm0,64(%rsp) | |
2029 pxor %xmm12,%xmm12 | |
2030 movaps %xmm0,80(%rsp) | |
2031 pxor %xmm13,%xmm13 | |
2032 movaps %xmm0,96(%rsp) | |
2033 pxor %xmm14,%xmm14 | |
2034 pxor %xmm15,%xmm15 | |
2035 leaq (%rbp),%rsp | 1931 leaq (%rbp),%rsp |
2036 popq %rbp | 1932 popq %rbp |
2037 L$xts_enc_epilogue: | 1933 L$xts_enc_epilogue: |
2038 .byte 0xf3,0xc3 | 1934 .byte 0xf3,0xc3 |
2039 | 1935 |
2040 .globl _aesni_xts_decrypt | 1936 .globl _aesni_xts_decrypt |
2041 .private_extern _aesni_xts_decrypt | 1937 .private_extern _aesni_xts_decrypt |
2042 | 1938 |
2043 .p2align 4 | 1939 .p2align 4 |
2044 _aesni_xts_decrypt: | 1940 _aesni_xts_decrypt: |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2302 movups %xmm7,-16(%rsi) | 2198 movups %xmm7,-16(%rsi) |
2303 subq $96,%rdx | 2199 subq $96,%rdx |
2304 jnc L$xts_dec_grandloop | 2200 jnc L$xts_dec_grandloop |
2305 | 2201 |
2306 movl $16+96,%eax | 2202 movl $16+96,%eax |
2307 subl %r10d,%eax | 2203 subl %r10d,%eax |
2308 movq %r11,%rcx | 2204 movq %r11,%rcx |
2309 shrl $4,%eax | 2205 shrl $4,%eax |
2310 | 2206 |
2311 L$xts_dec_short: | 2207 L$xts_dec_short: |
2312 | |
2313 movl %eax,%r10d | 2208 movl %eax,%r10d |
2314 pxor %xmm0,%xmm10 | 2209 pxor %xmm0,%xmm10 |
2315 pxor %xmm0,%xmm11 | 2210 pxor %xmm0,%xmm11 |
2316 addq $96,%rdx | 2211 addq $96,%rdx |
2317 jz L$xts_dec_done | 2212 jz L$xts_dec_done |
2318 | 2213 |
2319 pxor %xmm0,%xmm12 | 2214 pxor %xmm0,%xmm12 |
2320 cmpq $32,%rdx | 2215 cmpq $32,%rdx |
2321 jb L$xts_dec_one | 2216 jb L$xts_dec_one |
2322 pxor %xmm0,%xmm13 | 2217 pxor %xmm0,%xmm13 |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2505 .byte 102,15,56,222,209 | 2400 .byte 102,15,56,222,209 |
2506 decl %eax | 2401 decl %eax |
2507 movups (%rcx),%xmm1 | 2402 movups (%rcx),%xmm1 |
2508 leaq 16(%rcx),%rcx | 2403 leaq 16(%rcx),%rcx |
2509 jnz L$oop_dec1_14 | 2404 jnz L$oop_dec1_14 |
2510 .byte 102,15,56,223,209 | 2405 .byte 102,15,56,223,209 |
2511 xorps %xmm10,%xmm2 | 2406 xorps %xmm10,%xmm2 |
2512 movups %xmm2,(%rsi) | 2407 movups %xmm2,(%rsi) |
2513 | 2408 |
2514 L$xts_dec_ret: | 2409 L$xts_dec_ret: |
2515 xorps %xmm0,%xmm0 | |
2516 pxor %xmm1,%xmm1 | |
2517 pxor %xmm2,%xmm2 | |
2518 pxor %xmm3,%xmm3 | |
2519 pxor %xmm4,%xmm4 | |
2520 pxor %xmm5,%xmm5 | |
2521 pxor %xmm6,%xmm6 | |
2522 pxor %xmm7,%xmm7 | |
2523 movaps %xmm0,0(%rsp) | |
2524 pxor %xmm8,%xmm8 | |
2525 movaps %xmm0,16(%rsp) | |
2526 pxor %xmm9,%xmm9 | |
2527 movaps %xmm0,32(%rsp) | |
2528 pxor %xmm10,%xmm10 | |
2529 movaps %xmm0,48(%rsp) | |
2530 pxor %xmm11,%xmm11 | |
2531 movaps %xmm0,64(%rsp) | |
2532 pxor %xmm12,%xmm12 | |
2533 movaps %xmm0,80(%rsp) | |
2534 pxor %xmm13,%xmm13 | |
2535 movaps %xmm0,96(%rsp) | |
2536 pxor %xmm14,%xmm14 | |
2537 pxor %xmm15,%xmm15 | |
2538 leaq (%rbp),%rsp | 2410 leaq (%rbp),%rsp |
2539 popq %rbp | 2411 popq %rbp |
2540 L$xts_dec_epilogue: | 2412 L$xts_dec_epilogue: |
2541 .byte 0xf3,0xc3 | 2413 .byte 0xf3,0xc3 |
2542 | 2414 |
2543 .globl _aesni_cbc_encrypt | 2415 .globl _aesni_cbc_encrypt |
2544 .private_extern _aesni_cbc_encrypt | 2416 .private_extern _aesni_cbc_encrypt |
2545 | 2417 |
2546 .p2align 4 | 2418 .p2align 4 |
2547 _aesni_cbc_encrypt: | 2419 _aesni_cbc_encrypt: |
(...skipping 29 matching lines...) Expand all Loading... |
2577 jnz L$oop_enc1_15 | 2449 jnz L$oop_enc1_15 |
2578 .byte 102,15,56,221,209 | 2450 .byte 102,15,56,221,209 |
2579 movl %r10d,%eax | 2451 movl %r10d,%eax |
2580 movq %r11,%rcx | 2452 movq %r11,%rcx |
2581 movups %xmm2,0(%rsi) | 2453 movups %xmm2,0(%rsi) |
2582 leaq 16(%rsi),%rsi | 2454 leaq 16(%rsi),%rsi |
2583 subq $16,%rdx | 2455 subq $16,%rdx |
2584 jnc L$cbc_enc_loop | 2456 jnc L$cbc_enc_loop |
2585 addq $16,%rdx | 2457 addq $16,%rdx |
2586 jnz L$cbc_enc_tail | 2458 jnz L$cbc_enc_tail |
2587 pxor %xmm0,%xmm0 | |
2588 pxor %xmm1,%xmm1 | |
2589 movups %xmm2,(%r8) | 2459 movups %xmm2,(%r8) |
2590 pxor %xmm2,%xmm2 | |
2591 pxor %xmm3,%xmm3 | |
2592 jmp L$cbc_ret | 2460 jmp L$cbc_ret |
2593 | 2461 |
2594 L$cbc_enc_tail: | 2462 L$cbc_enc_tail: |
2595 movq %rdx,%rcx | 2463 movq %rdx,%rcx |
2596 xchgq %rdi,%rsi | 2464 xchgq %rdi,%rsi |
2597 .long 0x9066A4F3 | 2465 .long 0x9066A4F3 |
2598 movl $16,%ecx | 2466 movl $16,%ecx |
2599 subq %rdx,%rcx | 2467 subq %rdx,%rcx |
2600 xorl %eax,%eax | 2468 xorl %eax,%eax |
2601 .long 0x9066AAF3 | 2469 .long 0x9066AAF3 |
2602 leaq -16(%rdi),%rdi | 2470 leaq -16(%rdi),%rdi |
2603 movl %r10d,%eax | 2471 movl %r10d,%eax |
2604 movq %rdi,%rsi | 2472 movq %rdi,%rsi |
2605 movq %r11,%rcx | 2473 movq %r11,%rcx |
2606 xorq %rdx,%rdx | 2474 xorq %rdx,%rdx |
2607 jmp L$cbc_enc_loop | 2475 jmp L$cbc_enc_loop |
2608 | 2476 |
2609 .p2align 4 | 2477 .p2align 4 |
2610 L$cbc_decrypt: | 2478 L$cbc_decrypt: |
2611 cmpq $16,%rdx | |
2612 jne L$cbc_decrypt_bulk | |
2613 | |
2614 | |
2615 | |
2616 movdqu (%rdi),%xmm2 | |
2617 movdqu (%r8),%xmm3 | |
2618 movdqa %xmm2,%xmm4 | |
2619 movups (%rcx),%xmm0 | |
2620 movups 16(%rcx),%xmm1 | |
2621 leaq 32(%rcx),%rcx | |
2622 xorps %xmm0,%xmm2 | |
2623 L$oop_dec1_16: | |
2624 .byte 102,15,56,222,209 | |
2625 decl %r10d | |
2626 movups (%rcx),%xmm1 | |
2627 leaq 16(%rcx),%rcx | |
2628 jnz L$oop_dec1_16 | |
2629 .byte 102,15,56,223,209 | |
2630 pxor %xmm0,%xmm0 | |
2631 pxor %xmm1,%xmm1 | |
2632 movdqu %xmm4,(%r8) | |
2633 xorps %xmm3,%xmm2 | |
2634 pxor %xmm3,%xmm3 | |
2635 movups %xmm2,(%rsi) | |
2636 pxor %xmm2,%xmm2 | |
2637 jmp L$cbc_ret | |
2638 .p2align 4 | |
2639 L$cbc_decrypt_bulk: | |
2640 leaq (%rsp),%rax | 2479 leaq (%rsp),%rax |
2641 pushq %rbp | 2480 pushq %rbp |
2642 subq $16,%rsp | 2481 subq $16,%rsp |
2643 andq $-16,%rsp | 2482 andq $-16,%rsp |
2644 leaq -8(%rax),%rbp | 2483 leaq -8(%rax),%rbp |
2645 movups (%r8),%xmm10 | 2484 movups (%r8),%xmm10 |
2646 movl %r10d,%eax | 2485 movl %r10d,%eax |
2647 cmpq $80,%rdx | 2486 cmpq $80,%rdx |
2648 jbe L$cbc_dec_tail | 2487 jbe L$cbc_dec_tail |
2649 | 2488 |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2866 movdqa %xmm1,%xmm7 | 2705 movdqa %xmm1,%xmm7 |
2867 movups %xmm8,96(%rsi) | 2706 movups %xmm8,96(%rsi) |
2868 leaq 112(%rsi),%rsi | 2707 leaq 112(%rsi),%rsi |
2869 | 2708 |
2870 subq $128,%rdx | 2709 subq $128,%rdx |
2871 ja L$cbc_dec_loop8 | 2710 ja L$cbc_dec_loop8 |
2872 | 2711 |
2873 movaps %xmm9,%xmm2 | 2712 movaps %xmm9,%xmm2 |
2874 leaq -112(%rcx),%rcx | 2713 leaq -112(%rcx),%rcx |
2875 addq $112,%rdx | 2714 addq $112,%rdx |
2876 » jle» L$cbc_dec_clear_tail_collected | 2715 » jle» L$cbc_dec_tail_collected |
2877 movups %xmm9,(%rsi) | 2716 movups %xmm9,(%rsi) |
2878 leaq 16(%rsi),%rsi | 2717 leaq 16(%rsi),%rsi |
2879 cmpq $80,%rdx | 2718 cmpq $80,%rdx |
2880 jbe L$cbc_dec_tail | 2719 jbe L$cbc_dec_tail |
2881 | 2720 |
2882 movaps %xmm11,%xmm2 | 2721 movaps %xmm11,%xmm2 |
2883 L$cbc_dec_six_or_seven: | 2722 L$cbc_dec_six_or_seven: |
2884 cmpq $96,%rdx | 2723 cmpq $96,%rdx |
2885 ja L$cbc_dec_seven | 2724 ja L$cbc_dec_seven |
2886 | 2725 |
2887 movaps %xmm7,%xmm8 | 2726 movaps %xmm7,%xmm8 |
2888 call _aesni_decrypt6 | 2727 call _aesni_decrypt6 |
2889 pxor %xmm10,%xmm2 | 2728 pxor %xmm10,%xmm2 |
2890 movaps %xmm8,%xmm10 | 2729 movaps %xmm8,%xmm10 |
2891 pxor %xmm11,%xmm3 | 2730 pxor %xmm11,%xmm3 |
2892 movdqu %xmm2,(%rsi) | 2731 movdqu %xmm2,(%rsi) |
2893 pxor %xmm12,%xmm4 | 2732 pxor %xmm12,%xmm4 |
2894 movdqu %xmm3,16(%rsi) | 2733 movdqu %xmm3,16(%rsi) |
2895 pxor %xmm3,%xmm3 | |
2896 pxor %xmm13,%xmm5 | 2734 pxor %xmm13,%xmm5 |
2897 movdqu %xmm4,32(%rsi) | 2735 movdqu %xmm4,32(%rsi) |
2898 pxor %xmm4,%xmm4 | |
2899 pxor %xmm14,%xmm6 | 2736 pxor %xmm14,%xmm6 |
2900 movdqu %xmm5,48(%rsi) | 2737 movdqu %xmm5,48(%rsi) |
2901 pxor %xmm5,%xmm5 | |
2902 pxor %xmm15,%xmm7 | 2738 pxor %xmm15,%xmm7 |
2903 movdqu %xmm6,64(%rsi) | 2739 movdqu %xmm6,64(%rsi) |
2904 pxor %xmm6,%xmm6 | |
2905 leaq 80(%rsi),%rsi | 2740 leaq 80(%rsi),%rsi |
2906 movdqa %xmm7,%xmm2 | 2741 movdqa %xmm7,%xmm2 |
2907 pxor %xmm7,%xmm7 | |
2908 jmp L$cbc_dec_tail_collected | 2742 jmp L$cbc_dec_tail_collected |
2909 | 2743 |
2910 .p2align 4 | 2744 .p2align 4 |
2911 L$cbc_dec_seven: | 2745 L$cbc_dec_seven: |
2912 movups 96(%rdi),%xmm8 | 2746 movups 96(%rdi),%xmm8 |
2913 xorps %xmm9,%xmm9 | 2747 xorps %xmm9,%xmm9 |
2914 call _aesni_decrypt8 | 2748 call _aesni_decrypt8 |
2915 movups 80(%rdi),%xmm9 | 2749 movups 80(%rdi),%xmm9 |
2916 pxor %xmm10,%xmm2 | 2750 pxor %xmm10,%xmm2 |
2917 movups 96(%rdi),%xmm10 | 2751 movups 96(%rdi),%xmm10 |
2918 pxor %xmm11,%xmm3 | 2752 pxor %xmm11,%xmm3 |
2919 movdqu %xmm2,(%rsi) | 2753 movdqu %xmm2,(%rsi) |
2920 pxor %xmm12,%xmm4 | 2754 pxor %xmm12,%xmm4 |
2921 movdqu %xmm3,16(%rsi) | 2755 movdqu %xmm3,16(%rsi) |
2922 pxor %xmm3,%xmm3 | |
2923 pxor %xmm13,%xmm5 | 2756 pxor %xmm13,%xmm5 |
2924 movdqu %xmm4,32(%rsi) | 2757 movdqu %xmm4,32(%rsi) |
2925 pxor %xmm4,%xmm4 | |
2926 pxor %xmm14,%xmm6 | 2758 pxor %xmm14,%xmm6 |
2927 movdqu %xmm5,48(%rsi) | 2759 movdqu %xmm5,48(%rsi) |
2928 pxor %xmm5,%xmm5 | |
2929 pxor %xmm15,%xmm7 | 2760 pxor %xmm15,%xmm7 |
2930 movdqu %xmm6,64(%rsi) | 2761 movdqu %xmm6,64(%rsi) |
2931 pxor %xmm6,%xmm6 | |
2932 pxor %xmm9,%xmm8 | 2762 pxor %xmm9,%xmm8 |
2933 movdqu %xmm7,80(%rsi) | 2763 movdqu %xmm7,80(%rsi) |
2934 pxor %xmm7,%xmm7 | |
2935 leaq 96(%rsi),%rsi | 2764 leaq 96(%rsi),%rsi |
2936 movdqa %xmm8,%xmm2 | 2765 movdqa %xmm8,%xmm2 |
2937 pxor %xmm8,%xmm8 | |
2938 pxor %xmm9,%xmm9 | |
2939 jmp L$cbc_dec_tail_collected | 2766 jmp L$cbc_dec_tail_collected |
2940 | 2767 |
2941 .p2align 4 | 2768 .p2align 4 |
2942 L$cbc_dec_loop6: | 2769 L$cbc_dec_loop6: |
2943 movups %xmm7,(%rsi) | 2770 movups %xmm7,(%rsi) |
2944 leaq 16(%rsi),%rsi | 2771 leaq 16(%rsi),%rsi |
2945 movdqu 0(%rdi),%xmm2 | 2772 movdqu 0(%rdi),%xmm2 |
2946 movdqu 16(%rdi),%xmm3 | 2773 movdqu 16(%rdi),%xmm3 |
2947 movdqa %xmm2,%xmm11 | 2774 movdqa %xmm2,%xmm11 |
2948 movdqu 32(%rdi),%xmm4 | 2775 movdqu 32(%rdi),%xmm4 |
(...skipping 23 matching lines...) Expand all Loading... |
2972 movdqu %xmm5,48(%rsi) | 2799 movdqu %xmm5,48(%rsi) |
2973 pxor %xmm15,%xmm7 | 2800 pxor %xmm15,%xmm7 |
2974 movl %r10d,%eax | 2801 movl %r10d,%eax |
2975 movdqu %xmm6,64(%rsi) | 2802 movdqu %xmm6,64(%rsi) |
2976 leaq 80(%rsi),%rsi | 2803 leaq 80(%rsi),%rsi |
2977 subq $96,%rdx | 2804 subq $96,%rdx |
2978 ja L$cbc_dec_loop6 | 2805 ja L$cbc_dec_loop6 |
2979 | 2806 |
2980 movdqa %xmm7,%xmm2 | 2807 movdqa %xmm7,%xmm2 |
2981 addq $80,%rdx | 2808 addq $80,%rdx |
2982 » jle» L$cbc_dec_clear_tail_collected | 2809 » jle» L$cbc_dec_tail_collected |
2983 movups %xmm7,(%rsi) | 2810 movups %xmm7,(%rsi) |
2984 leaq 16(%rsi),%rsi | 2811 leaq 16(%rsi),%rsi |
2985 | 2812 |
2986 L$cbc_dec_tail: | 2813 L$cbc_dec_tail: |
2987 movups (%rdi),%xmm2 | 2814 movups (%rdi),%xmm2 |
2988 subq $16,%rdx | 2815 subq $16,%rdx |
2989 jbe L$cbc_dec_one | 2816 jbe L$cbc_dec_one |
2990 | 2817 |
2991 movups 16(%rdi),%xmm3 | 2818 movups 16(%rdi),%xmm3 |
2992 movaps %xmm2,%xmm11 | 2819 movaps %xmm2,%xmm11 |
(...skipping 14 matching lines...) Expand all Loading... |
3007 movaps %xmm5,%xmm14 | 2834 movaps %xmm5,%xmm14 |
3008 movaps %xmm6,%xmm15 | 2835 movaps %xmm6,%xmm15 |
3009 xorps %xmm7,%xmm7 | 2836 xorps %xmm7,%xmm7 |
3010 call _aesni_decrypt6 | 2837 call _aesni_decrypt6 |
3011 pxor %xmm10,%xmm2 | 2838 pxor %xmm10,%xmm2 |
3012 movaps %xmm15,%xmm10 | 2839 movaps %xmm15,%xmm10 |
3013 pxor %xmm11,%xmm3 | 2840 pxor %xmm11,%xmm3 |
3014 movdqu %xmm2,(%rsi) | 2841 movdqu %xmm2,(%rsi) |
3015 pxor %xmm12,%xmm4 | 2842 pxor %xmm12,%xmm4 |
3016 movdqu %xmm3,16(%rsi) | 2843 movdqu %xmm3,16(%rsi) |
3017 pxor %xmm3,%xmm3 | |
3018 pxor %xmm13,%xmm5 | 2844 pxor %xmm13,%xmm5 |
3019 movdqu %xmm4,32(%rsi) | 2845 movdqu %xmm4,32(%rsi) |
3020 pxor %xmm4,%xmm4 | |
3021 pxor %xmm14,%xmm6 | 2846 pxor %xmm14,%xmm6 |
3022 movdqu %xmm5,48(%rsi) | 2847 movdqu %xmm5,48(%rsi) |
3023 pxor %xmm5,%xmm5 | |
3024 leaq 64(%rsi),%rsi | 2848 leaq 64(%rsi),%rsi |
3025 movdqa %xmm6,%xmm2 | 2849 movdqa %xmm6,%xmm2 |
3026 pxor %xmm6,%xmm6 | |
3027 pxor %xmm7,%xmm7 | |
3028 subq $16,%rdx | 2850 subq $16,%rdx |
3029 jmp L$cbc_dec_tail_collected | 2851 jmp L$cbc_dec_tail_collected |
3030 | 2852 |
3031 .p2align 4 | 2853 .p2align 4 |
3032 L$cbc_dec_one: | 2854 L$cbc_dec_one: |
3033 movaps %xmm2,%xmm11 | 2855 movaps %xmm2,%xmm11 |
3034 movups (%rcx),%xmm0 | 2856 movups (%rcx),%xmm0 |
3035 movups 16(%rcx),%xmm1 | 2857 movups 16(%rcx),%xmm1 |
3036 leaq 32(%rcx),%rcx | 2858 leaq 32(%rcx),%rcx |
3037 xorps %xmm0,%xmm2 | 2859 xorps %xmm0,%xmm2 |
3038 L$oop_dec1_17: | 2860 L$oop_dec1_16: |
3039 .byte 102,15,56,222,209 | 2861 .byte 102,15,56,222,209 |
3040 decl %eax | 2862 decl %eax |
3041 movups (%rcx),%xmm1 | 2863 movups (%rcx),%xmm1 |
3042 leaq 16(%rcx),%rcx | 2864 leaq 16(%rcx),%rcx |
3043 » jnz» L$oop_dec1_17 | 2865 » jnz» L$oop_dec1_16 |
3044 .byte 102,15,56,223,209 | 2866 .byte 102,15,56,223,209 |
3045 xorps %xmm10,%xmm2 | 2867 xorps %xmm10,%xmm2 |
3046 movaps %xmm11,%xmm10 | 2868 movaps %xmm11,%xmm10 |
3047 jmp L$cbc_dec_tail_collected | 2869 jmp L$cbc_dec_tail_collected |
3048 .p2align 4 | 2870 .p2align 4 |
3049 L$cbc_dec_two: | 2871 L$cbc_dec_two: |
3050 movaps %xmm3,%xmm12 | 2872 movaps %xmm3,%xmm12 |
3051 call _aesni_decrypt2 | 2873 call _aesni_decrypt2 |
3052 pxor %xmm10,%xmm2 | 2874 pxor %xmm10,%xmm2 |
3053 movaps %xmm12,%xmm10 | 2875 movaps %xmm12,%xmm10 |
3054 pxor %xmm11,%xmm3 | 2876 pxor %xmm11,%xmm3 |
3055 movdqu %xmm2,(%rsi) | 2877 movdqu %xmm2,(%rsi) |
3056 movdqa %xmm3,%xmm2 | 2878 movdqa %xmm3,%xmm2 |
3057 pxor %xmm3,%xmm3 | |
3058 leaq 16(%rsi),%rsi | 2879 leaq 16(%rsi),%rsi |
3059 jmp L$cbc_dec_tail_collected | 2880 jmp L$cbc_dec_tail_collected |
3060 .p2align 4 | 2881 .p2align 4 |
3061 L$cbc_dec_three: | 2882 L$cbc_dec_three: |
3062 movaps %xmm4,%xmm13 | 2883 movaps %xmm4,%xmm13 |
3063 call _aesni_decrypt3 | 2884 call _aesni_decrypt3 |
3064 pxor %xmm10,%xmm2 | 2885 pxor %xmm10,%xmm2 |
3065 movaps %xmm13,%xmm10 | 2886 movaps %xmm13,%xmm10 |
3066 pxor %xmm11,%xmm3 | 2887 pxor %xmm11,%xmm3 |
3067 movdqu %xmm2,(%rsi) | 2888 movdqu %xmm2,(%rsi) |
3068 pxor %xmm12,%xmm4 | 2889 pxor %xmm12,%xmm4 |
3069 movdqu %xmm3,16(%rsi) | 2890 movdqu %xmm3,16(%rsi) |
3070 pxor %xmm3,%xmm3 | |
3071 movdqa %xmm4,%xmm2 | 2891 movdqa %xmm4,%xmm2 |
3072 pxor %xmm4,%xmm4 | |
3073 leaq 32(%rsi),%rsi | 2892 leaq 32(%rsi),%rsi |
3074 jmp L$cbc_dec_tail_collected | 2893 jmp L$cbc_dec_tail_collected |
3075 .p2align 4 | 2894 .p2align 4 |
3076 L$cbc_dec_four: | 2895 L$cbc_dec_four: |
3077 movaps %xmm5,%xmm14 | 2896 movaps %xmm5,%xmm14 |
3078 call _aesni_decrypt4 | 2897 call _aesni_decrypt4 |
3079 pxor %xmm10,%xmm2 | 2898 pxor %xmm10,%xmm2 |
3080 movaps %xmm14,%xmm10 | 2899 movaps %xmm14,%xmm10 |
3081 pxor %xmm11,%xmm3 | 2900 pxor %xmm11,%xmm3 |
3082 movdqu %xmm2,(%rsi) | 2901 movdqu %xmm2,(%rsi) |
3083 pxor %xmm12,%xmm4 | 2902 pxor %xmm12,%xmm4 |
3084 movdqu %xmm3,16(%rsi) | 2903 movdqu %xmm3,16(%rsi) |
3085 pxor %xmm3,%xmm3 | |
3086 pxor %xmm13,%xmm5 | 2904 pxor %xmm13,%xmm5 |
3087 movdqu %xmm4,32(%rsi) | 2905 movdqu %xmm4,32(%rsi) |
3088 pxor %xmm4,%xmm4 | |
3089 movdqa %xmm5,%xmm2 | 2906 movdqa %xmm5,%xmm2 |
3090 pxor %xmm5,%xmm5 | |
3091 leaq 48(%rsi),%rsi | 2907 leaq 48(%rsi),%rsi |
3092 jmp L$cbc_dec_tail_collected | 2908 jmp L$cbc_dec_tail_collected |
3093 | 2909 |
3094 .p2align 4 | 2910 .p2align 4 |
3095 L$cbc_dec_clear_tail_collected: | |
3096 pxor %xmm3,%xmm3 | |
3097 pxor %xmm4,%xmm4 | |
3098 pxor %xmm5,%xmm5 | |
3099 pxor %xmm6,%xmm6 | |
3100 pxor %xmm7,%xmm7 | |
3101 pxor %xmm8,%xmm8 | |
3102 pxor %xmm9,%xmm9 | |
3103 L$cbc_dec_tail_collected: | 2911 L$cbc_dec_tail_collected: |
3104 movups %xmm10,(%r8) | 2912 movups %xmm10,(%r8) |
3105 andq $15,%rdx | 2913 andq $15,%rdx |
3106 jnz L$cbc_dec_tail_partial | 2914 jnz L$cbc_dec_tail_partial |
3107 movups %xmm2,(%rsi) | 2915 movups %xmm2,(%rsi) |
3108 pxor %xmm2,%xmm2 | |
3109 jmp L$cbc_dec_ret | 2916 jmp L$cbc_dec_ret |
3110 .p2align 4 | 2917 .p2align 4 |
3111 L$cbc_dec_tail_partial: | 2918 L$cbc_dec_tail_partial: |
3112 movaps %xmm2,(%rsp) | 2919 movaps %xmm2,(%rsp) |
3113 pxor %xmm2,%xmm2 | |
3114 movq $16,%rcx | 2920 movq $16,%rcx |
3115 movq %rsi,%rdi | 2921 movq %rsi,%rdi |
3116 subq %rdx,%rcx | 2922 subq %rdx,%rcx |
3117 leaq (%rsp),%rsi | 2923 leaq (%rsp),%rsi |
3118 .long 0x9066A4F3 | 2924 .long 0x9066A4F3 |
3119 movdqa %xmm2,(%rsp) | |
3120 | 2925 |
3121 L$cbc_dec_ret: | 2926 L$cbc_dec_ret: |
3122 xorps %xmm0,%xmm0 | |
3123 pxor %xmm1,%xmm1 | |
3124 leaq (%rbp),%rsp | 2927 leaq (%rbp),%rsp |
3125 popq %rbp | 2928 popq %rbp |
3126 L$cbc_ret: | 2929 L$cbc_ret: |
3127 .byte 0xf3,0xc3 | 2930 .byte 0xf3,0xc3 |
3128 | 2931 |
3129 .globl _aesni_set_decrypt_key | 2932 .globl _aesni_set_decrypt_key |
3130 .private_extern _aesni_set_decrypt_key | 2933 .private_extern _aesni_set_decrypt_key |
3131 | 2934 |
3132 .p2align 4 | 2935 .p2align 4 |
3133 _aesni_set_decrypt_key: | 2936 _aesni_set_decrypt_key: |
(...skipping 18 matching lines...) Expand all Loading... |
3152 .byte 102,15,56,219,201 | 2955 .byte 102,15,56,219,201 |
3153 leaq 16(%rdx),%rdx | 2956 leaq 16(%rdx),%rdx |
3154 leaq -16(%rdi),%rdi | 2957 leaq -16(%rdi),%rdi |
3155 movups %xmm0,16(%rdi) | 2958 movups %xmm0,16(%rdi) |
3156 movups %xmm1,-16(%rdx) | 2959 movups %xmm1,-16(%rdx) |
3157 cmpq %rdx,%rdi | 2960 cmpq %rdx,%rdi |
3158 ja L$dec_key_inverse | 2961 ja L$dec_key_inverse |
3159 | 2962 |
3160 movups (%rdx),%xmm0 | 2963 movups (%rdx),%xmm0 |
3161 .byte 102,15,56,219,192 | 2964 .byte 102,15,56,219,192 |
3162 pxor %xmm1,%xmm1 | |
3163 movups %xmm0,(%rdi) | 2965 movups %xmm0,(%rdi) |
3164 pxor %xmm0,%xmm0 | |
3165 L$dec_key_ret: | 2966 L$dec_key_ret: |
3166 addq $8,%rsp | 2967 addq $8,%rsp |
3167 .byte 0xf3,0xc3 | 2968 .byte 0xf3,0xc3 |
3168 L$SEH_end_set_decrypt_key: | 2969 L$SEH_end_set_decrypt_key: |
3169 | 2970 |
3170 .globl _aesni_set_encrypt_key | 2971 .globl _aesni_set_encrypt_key |
3171 .private_extern _aesni_set_encrypt_key | 2972 .private_extern _aesni_set_encrypt_key |
3172 | 2973 |
3173 .p2align 4 | 2974 .p2align 4 |
3174 _aesni_set_encrypt_key: | 2975 _aesni_set_encrypt_key: |
3175 __aesni_set_encrypt_key: | 2976 __aesni_set_encrypt_key: |
3176 .byte 0x48,0x83,0xEC,0x08 | 2977 .byte 0x48,0x83,0xEC,0x08 |
3177 movq $-1,%rax | 2978 movq $-1,%rax |
3178 testq %rdi,%rdi | 2979 testq %rdi,%rdi |
3179 jz L$enc_key_ret | 2980 jz L$enc_key_ret |
3180 testq %rdx,%rdx | 2981 testq %rdx,%rdx |
3181 jz L$enc_key_ret | 2982 jz L$enc_key_ret |
3182 | 2983 |
3183 movl $268437504,%r10d | |
3184 movups (%rdi),%xmm0 | 2984 movups (%rdi),%xmm0 |
3185 xorps %xmm4,%xmm4 | 2985 xorps %xmm4,%xmm4 |
3186 andl _OPENSSL_ia32cap_P+4(%rip),%r10d | |
3187 leaq 16(%rdx),%rax | 2986 leaq 16(%rdx),%rax |
3188 cmpl $256,%esi | 2987 cmpl $256,%esi |
3189 je L$14rounds | 2988 je L$14rounds |
3190 cmpl $192,%esi | 2989 cmpl $192,%esi |
3191 je L$12rounds | 2990 je L$12rounds |
3192 cmpl $128,%esi | 2991 cmpl $128,%esi |
3193 jne L$bad_keybits | 2992 jne L$bad_keybits |
3194 | 2993 |
3195 L$10rounds: | 2994 L$10rounds: |
3196 movl $9,%esi | 2995 movl $9,%esi |
3197 cmpl $268435456,%r10d | |
3198 je L$10rounds_alt | |
3199 | |
3200 movups %xmm0,(%rdx) | 2996 movups %xmm0,(%rdx) |
3201 .byte 102,15,58,223,200,1 | 2997 .byte 102,15,58,223,200,1 |
3202 call L$key_expansion_128_cold | 2998 call L$key_expansion_128_cold |
3203 .byte 102,15,58,223,200,2 | 2999 .byte 102,15,58,223,200,2 |
3204 call L$key_expansion_128 | 3000 call L$key_expansion_128 |
3205 .byte 102,15,58,223,200,4 | 3001 .byte 102,15,58,223,200,4 |
3206 call L$key_expansion_128 | 3002 call L$key_expansion_128 |
3207 .byte 102,15,58,223,200,8 | 3003 .byte 102,15,58,223,200,8 |
3208 call L$key_expansion_128 | 3004 call L$key_expansion_128 |
3209 .byte 102,15,58,223,200,16 | 3005 .byte 102,15,58,223,200,16 |
3210 call L$key_expansion_128 | 3006 call L$key_expansion_128 |
3211 .byte 102,15,58,223,200,32 | 3007 .byte 102,15,58,223,200,32 |
3212 call L$key_expansion_128 | 3008 call L$key_expansion_128 |
3213 .byte 102,15,58,223,200,64 | 3009 .byte 102,15,58,223,200,64 |
3214 call L$key_expansion_128 | 3010 call L$key_expansion_128 |
3215 .byte 102,15,58,223,200,128 | 3011 .byte 102,15,58,223,200,128 |
3216 call L$key_expansion_128 | 3012 call L$key_expansion_128 |
3217 .byte 102,15,58,223,200,27 | 3013 .byte 102,15,58,223,200,27 |
3218 call L$key_expansion_128 | 3014 call L$key_expansion_128 |
3219 .byte 102,15,58,223,200,54 | 3015 .byte 102,15,58,223,200,54 |
3220 call L$key_expansion_128 | 3016 call L$key_expansion_128 |
3221 movups %xmm0,(%rax) | 3017 movups %xmm0,(%rax) |
3222 movl %esi,80(%rax) | 3018 movl %esi,80(%rax) |
3223 xorl %eax,%eax | 3019 xorl %eax,%eax |
3224 jmp L$enc_key_ret | 3020 jmp L$enc_key_ret |
3225 | 3021 |
3226 .p2align 4 | 3022 .p2align 4 |
3227 L$10rounds_alt: | |
3228 movdqa L$key_rotate(%rip),%xmm5 | |
3229 movl $8,%r10d | |
3230 movdqa L$key_rcon1(%rip),%xmm4 | |
3231 movdqa %xmm0,%xmm2 | |
3232 movdqu %xmm0,(%rdx) | |
3233 jmp L$oop_key128 | |
3234 | |
3235 .p2align 4 | |
3236 L$oop_key128: | |
3237 .byte 102,15,56,0,197 | |
3238 .byte 102,15,56,221,196 | |
3239 pslld $1,%xmm4 | |
3240 leaq 16(%rax),%rax | |
3241 | |
3242 movdqa %xmm2,%xmm3 | |
3243 pslldq $4,%xmm2 | |
3244 pxor %xmm2,%xmm3 | |
3245 pslldq $4,%xmm2 | |
3246 pxor %xmm2,%xmm3 | |
3247 pslldq $4,%xmm2 | |
3248 pxor %xmm3,%xmm2 | |
3249 | |
3250 pxor %xmm2,%xmm0 | |
3251 movdqu %xmm0,-16(%rax) | |
3252 movdqa %xmm0,%xmm2 | |
3253 | |
3254 decl %r10d | |
3255 jnz L$oop_key128 | |
3256 | |
3257 movdqa L$key_rcon1b(%rip),%xmm4 | |
3258 | |
3259 .byte 102,15,56,0,197 | |
3260 .byte 102,15,56,221,196 | |
3261 pslld $1,%xmm4 | |
3262 | |
3263 movdqa %xmm2,%xmm3 | |
3264 pslldq $4,%xmm2 | |
3265 pxor %xmm2,%xmm3 | |
3266 pslldq $4,%xmm2 | |
3267 pxor %xmm2,%xmm3 | |
3268 pslldq $4,%xmm2 | |
3269 pxor %xmm3,%xmm2 | |
3270 | |
3271 pxor %xmm2,%xmm0 | |
3272 movdqu %xmm0,(%rax) | |
3273 | |
3274 movdqa %xmm0,%xmm2 | |
3275 .byte 102,15,56,0,197 | |
3276 .byte 102,15,56,221,196 | |
3277 | |
3278 movdqa %xmm2,%xmm3 | |
3279 pslldq $4,%xmm2 | |
3280 pxor %xmm2,%xmm3 | |
3281 pslldq $4,%xmm2 | |
3282 pxor %xmm2,%xmm3 | |
3283 pslldq $4,%xmm2 | |
3284 pxor %xmm3,%xmm2 | |
3285 | |
3286 pxor %xmm2,%xmm0 | |
3287 movdqu %xmm0,16(%rax) | |
3288 | |
3289 movl %esi,96(%rax) | |
3290 xorl %eax,%eax | |
3291 jmp L$enc_key_ret | |
3292 | |
3293 .p2align 4 | |
3294 L$12rounds: | 3023 L$12rounds: |
3295 movq 16(%rdi),%xmm2 | 3024 movq 16(%rdi),%xmm2 |
3296 movl $11,%esi | 3025 movl $11,%esi |
3297 cmpl $268435456,%r10d | |
3298 je L$12rounds_alt | |
3299 | |
3300 movups %xmm0,(%rdx) | 3026 movups %xmm0,(%rdx) |
3301 .byte 102,15,58,223,202,1 | 3027 .byte 102,15,58,223,202,1 |
3302 call L$key_expansion_192a_cold | 3028 call L$key_expansion_192a_cold |
3303 .byte 102,15,58,223,202,2 | 3029 .byte 102,15,58,223,202,2 |
3304 call L$key_expansion_192b | 3030 call L$key_expansion_192b |
3305 .byte 102,15,58,223,202,4 | 3031 .byte 102,15,58,223,202,4 |
3306 call L$key_expansion_192a | 3032 call L$key_expansion_192a |
3307 .byte 102,15,58,223,202,8 | 3033 .byte 102,15,58,223,202,8 |
3308 call L$key_expansion_192b | 3034 call L$key_expansion_192b |
3309 .byte 102,15,58,223,202,16 | 3035 .byte 102,15,58,223,202,16 |
3310 call L$key_expansion_192a | 3036 call L$key_expansion_192a |
3311 .byte 102,15,58,223,202,32 | 3037 .byte 102,15,58,223,202,32 |
3312 call L$key_expansion_192b | 3038 call L$key_expansion_192b |
3313 .byte 102,15,58,223,202,64 | 3039 .byte 102,15,58,223,202,64 |
3314 call L$key_expansion_192a | 3040 call L$key_expansion_192a |
3315 .byte 102,15,58,223,202,128 | 3041 .byte 102,15,58,223,202,128 |
3316 call L$key_expansion_192b | 3042 call L$key_expansion_192b |
3317 movups %xmm0,(%rax) | 3043 movups %xmm0,(%rax) |
3318 movl %esi,48(%rax) | 3044 movl %esi,48(%rax) |
3319 xorq %rax,%rax | 3045 xorq %rax,%rax |
3320 jmp L$enc_key_ret | 3046 jmp L$enc_key_ret |
3321 | 3047 |
3322 .p2align 4 | 3048 .p2align 4 |
3323 L$12rounds_alt: | |
3324 movdqa L$key_rotate192(%rip),%xmm5 | |
3325 movdqa L$key_rcon1(%rip),%xmm4 | |
3326 movl $8,%r10d | |
3327 movdqu %xmm0,(%rdx) | |
3328 jmp L$oop_key192 | |
3329 | |
3330 .p2align 4 | |
3331 L$oop_key192: | |
3332 movq %xmm2,0(%rax) | |
3333 movdqa %xmm2,%xmm1 | |
3334 .byte 102,15,56,0,213 | |
3335 .byte 102,15,56,221,212 | |
3336 pslld $1,%xmm4 | |
3337 leaq 24(%rax),%rax | |
3338 | |
3339 movdqa %xmm0,%xmm3 | |
3340 pslldq $4,%xmm0 | |
3341 pxor %xmm0,%xmm3 | |
3342 pslldq $4,%xmm0 | |
3343 pxor %xmm0,%xmm3 | |
3344 pslldq $4,%xmm0 | |
3345 pxor %xmm3,%xmm0 | |
3346 | |
3347 pshufd $255,%xmm0,%xmm3 | |
3348 pxor %xmm1,%xmm3 | |
3349 pslldq $4,%xmm1 | |
3350 pxor %xmm1,%xmm3 | |
3351 | |
3352 pxor %xmm2,%xmm0 | |
3353 pxor %xmm3,%xmm2 | |
3354 movdqu %xmm0,-16(%rax) | |
3355 | |
3356 decl %r10d | |
3357 jnz L$oop_key192 | |
3358 | |
3359 movl %esi,32(%rax) | |
3360 xorl %eax,%eax | |
3361 jmp L$enc_key_ret | |
3362 | |
3363 .p2align 4 | |
3364 L$14rounds: | 3049 L$14rounds: |
3365 movups 16(%rdi),%xmm2 | 3050 movups 16(%rdi),%xmm2 |
3366 movl $13,%esi | 3051 movl $13,%esi |
3367 leaq 16(%rax),%rax | 3052 leaq 16(%rax),%rax |
3368 cmpl $268435456,%r10d | |
3369 je L$14rounds_alt | |
3370 | |
3371 movups %xmm0,(%rdx) | 3053 movups %xmm0,(%rdx) |
3372 movups %xmm2,16(%rdx) | 3054 movups %xmm2,16(%rdx) |
3373 .byte 102,15,58,223,202,1 | 3055 .byte 102,15,58,223,202,1 |
3374 call L$key_expansion_256a_cold | 3056 call L$key_expansion_256a_cold |
3375 .byte 102,15,58,223,200,1 | 3057 .byte 102,15,58,223,200,1 |
3376 call L$key_expansion_256b | 3058 call L$key_expansion_256b |
3377 .byte 102,15,58,223,202,2 | 3059 .byte 102,15,58,223,202,2 |
3378 call L$key_expansion_256a | 3060 call L$key_expansion_256a |
3379 .byte 102,15,58,223,200,2 | 3061 .byte 102,15,58,223,200,2 |
3380 call L$key_expansion_256b | 3062 call L$key_expansion_256b |
(...skipping 14 matching lines...) Expand all Loading... |
3395 .byte 102,15,58,223,200,32 | 3077 .byte 102,15,58,223,200,32 |
3396 call L$key_expansion_256b | 3078 call L$key_expansion_256b |
3397 .byte 102,15,58,223,202,64 | 3079 .byte 102,15,58,223,202,64 |
3398 call L$key_expansion_256a | 3080 call L$key_expansion_256a |
3399 movups %xmm0,(%rax) | 3081 movups %xmm0,(%rax) |
3400 movl %esi,16(%rax) | 3082 movl %esi,16(%rax) |
3401 xorq %rax,%rax | 3083 xorq %rax,%rax |
3402 jmp L$enc_key_ret | 3084 jmp L$enc_key_ret |
3403 | 3085 |
3404 .p2align 4 | 3086 .p2align 4 |
3405 L$14rounds_alt: | |
3406 movdqa L$key_rotate(%rip),%xmm5 | |
3407 movdqa L$key_rcon1(%rip),%xmm4 | |
3408 movl $7,%r10d | |
3409 movdqu %xmm0,0(%rdx) | |
3410 movdqa %xmm2,%xmm1 | |
3411 movdqu %xmm2,16(%rdx) | |
3412 jmp L$oop_key256 | |
3413 | |
3414 .p2align 4 | |
3415 L$oop_key256: | |
3416 .byte 102,15,56,0,213 | |
3417 .byte 102,15,56,221,212 | |
3418 | |
3419 movdqa %xmm0,%xmm3 | |
3420 pslldq $4,%xmm0 | |
3421 pxor %xmm0,%xmm3 | |
3422 pslldq $4,%xmm0 | |
3423 pxor %xmm0,%xmm3 | |
3424 pslldq $4,%xmm0 | |
3425 pxor %xmm3,%xmm0 | |
3426 pslld $1,%xmm4 | |
3427 | |
3428 pxor %xmm2,%xmm0 | |
3429 movdqu %xmm0,(%rax) | |
3430 | |
3431 decl %r10d | |
3432 jz L$done_key256 | |
3433 | |
3434 pshufd $255,%xmm0,%xmm2 | |
3435 pxor %xmm3,%xmm3 | |
3436 .byte 102,15,56,221,211 | |
3437 | |
3438 movdqa %xmm1,%xmm3 | |
3439 pslldq $4,%xmm1 | |
3440 pxor %xmm1,%xmm3 | |
3441 pslldq $4,%xmm1 | |
3442 pxor %xmm1,%xmm3 | |
3443 pslldq $4,%xmm1 | |
3444 pxor %xmm3,%xmm1 | |
3445 | |
3446 pxor %xmm1,%xmm2 | |
3447 movdqu %xmm2,16(%rax) | |
3448 leaq 32(%rax),%rax | |
3449 movdqa %xmm2,%xmm1 | |
3450 | |
3451 jmp L$oop_key256 | |
3452 | |
3453 L$done_key256: | |
3454 movl %esi,16(%rax) | |
3455 xorl %eax,%eax | |
3456 jmp L$enc_key_ret | |
3457 | |
3458 .p2align 4 | |
3459 L$bad_keybits: | 3087 L$bad_keybits: |
3460 movq $-2,%rax | 3088 movq $-2,%rax |
3461 L$enc_key_ret: | 3089 L$enc_key_ret: |
3462 pxor %xmm0,%xmm0 | |
3463 pxor %xmm1,%xmm1 | |
3464 pxor %xmm2,%xmm2 | |
3465 pxor %xmm3,%xmm3 | |
3466 pxor %xmm4,%xmm4 | |
3467 pxor %xmm5,%xmm5 | |
3468 addq $8,%rsp | 3090 addq $8,%rsp |
3469 .byte 0xf3,0xc3 | 3091 .byte 0xf3,0xc3 |
3470 L$SEH_end_set_encrypt_key: | 3092 L$SEH_end_set_encrypt_key: |
3471 | 3093 |
3472 .p2align 4 | 3094 .p2align 4 |
3473 L$key_expansion_128: | 3095 L$key_expansion_128: |
3474 movups %xmm0,(%rax) | 3096 movups %xmm0,(%rax) |
3475 leaq 16(%rax),%rax | 3097 leaq 16(%rax),%rax |
3476 L$key_expansion_128_cold: | 3098 L$key_expansion_128_cold: |
3477 shufps $16,%xmm0,%xmm4 | 3099 shufps $16,%xmm0,%xmm4 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3543 L$bswap_mask: | 3165 L$bswap_mask: |
3544 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 | 3166 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 |
3545 L$increment32: | 3167 L$increment32: |
3546 .long 6,6,6,0 | 3168 .long 6,6,6,0 |
3547 L$increment64: | 3169 L$increment64: |
3548 .long 1,0,0,0 | 3170 .long 1,0,0,0 |
3549 L$xts_magic: | 3171 L$xts_magic: |
3550 .long 0x87,0,1,0 | 3172 .long 0x87,0,1,0 |
3551 L$increment1: | 3173 L$increment1: |
3552 .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 | 3174 .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 |
3553 L$key_rotate: | |
3554 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d | |
3555 L$key_rotate192: | |
3556 .long 0x04070605,0x04070605,0x04070605,0x04070605 | |
3557 L$key_rcon1: | |
3558 .long 1,1,1,1 | |
3559 L$key_rcon1b: | |
3560 .long 0x1b,0x1b,0x1b,0x1b | |
3561 | 3175 |
3562 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32
,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101
,110,115,115,108,46,111,114,103,62,0 | 3176 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32
,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101
,110,115,115,108,46,111,114,103,62,0 |
3563 .p2align 6 | 3177 .p2align 6 |
3564 #endif | 3178 #endif |
OLD | NEW |