aesni-mb-x86_64.S revision 305153
1/* $FreeBSD: stable/11/secure/lib/libcrypto/amd64/aesni-mb-x86_64.S 305153 2016-08-31 20:33:59Z jkim $ */ 2/* Do not modify. This file is auto-generated from aesni-mb-x86_64.pl. */ 3.text 4 5 6 7.globl aesni_multi_cbc_encrypt 8.type aesni_multi_cbc_encrypt,@function 9.align 32 10aesni_multi_cbc_encrypt: 11 cmpl $2,%edx 12 jb .Lenc_non_avx 13 movl OPENSSL_ia32cap_P+4(%rip),%ecx 14 testl $268435456,%ecx 15 jnz _avx_cbc_enc_shortcut 16 jmp .Lenc_non_avx 17.align 16 18.Lenc_non_avx: 19 movq %rsp,%rax 20 pushq %rbx 21 pushq %rbp 22 pushq %r12 23 pushq %r13 24 pushq %r14 25 pushq %r15 26 27 28 29 30 31 32 subq $48,%rsp 33 andq $-64,%rsp 34 movq %rax,16(%rsp) 35 36.Lenc4x_body: 37 movdqu (%rsi),%xmm12 38 leaq 120(%rsi),%rsi 39 leaq 80(%rdi),%rdi 40 41.Lenc4x_loop_grande: 42 movl %edx,24(%rsp) 43 xorl %edx,%edx 44 movl -64(%rdi),%ecx 45 movq -80(%rdi),%r8 46 cmpl %edx,%ecx 47 movq -72(%rdi),%r12 48 cmovgl %ecx,%edx 49 testl %ecx,%ecx 50 movdqu -56(%rdi),%xmm2 51 movl %ecx,32(%rsp) 52 cmovleq %rsp,%r8 53 movl -24(%rdi),%ecx 54 movq -40(%rdi),%r9 55 cmpl %edx,%ecx 56 movq -32(%rdi),%r13 57 cmovgl %ecx,%edx 58 testl %ecx,%ecx 59 movdqu -16(%rdi),%xmm3 60 movl %ecx,36(%rsp) 61 cmovleq %rsp,%r9 62 movl 16(%rdi),%ecx 63 movq 0(%rdi),%r10 64 cmpl %edx,%ecx 65 movq 8(%rdi),%r14 66 cmovgl %ecx,%edx 67 testl %ecx,%ecx 68 movdqu 24(%rdi),%xmm4 69 movl %ecx,40(%rsp) 70 cmovleq %rsp,%r10 71 movl 56(%rdi),%ecx 72 movq 40(%rdi),%r11 73 cmpl %edx,%ecx 74 movq 48(%rdi),%r15 75 cmovgl %ecx,%edx 76 testl %ecx,%ecx 77 movdqu 64(%rdi),%xmm5 78 movl %ecx,44(%rsp) 79 cmovleq %rsp,%r11 80 testl %edx,%edx 81 jz .Lenc4x_done 82 83 movups 16-120(%rsi),%xmm1 84 pxor %xmm12,%xmm2 85 movups 32-120(%rsi),%xmm0 86 pxor %xmm12,%xmm3 87 movl 240-120(%rsi),%eax 88 pxor %xmm12,%xmm4 89 movdqu (%r8),%xmm6 90 pxor %xmm12,%xmm5 91 movdqu (%r9),%xmm7 92 pxor %xmm6,%xmm2 93 movdqu (%r10),%xmm8 94 pxor %xmm7,%xmm3 95 movdqu (%r11),%xmm9 96 pxor %xmm8,%xmm4 97 pxor %xmm9,%xmm5 98 movdqa 32(%rsp),%xmm10 99 xorq %rbx,%rbx 100 jmp .Loop_enc4x 101 102.align 32 103.Loop_enc4x: 104 addq $16,%rbx 105 leaq 16(%rsp),%rbp 106 movl $1,%ecx 107 subq %rbx,%rbp 108 109.byte 102,15,56,220,209 110 prefetcht0 31(%r8,%rbx,1) 111 prefetcht0 31(%r9,%rbx,1) 112.byte 102,15,56,220,217 113 prefetcht0 31(%r10,%rbx,1) 114 prefetcht0 31(%r10,%rbx,1) 115.byte 102,15,56,220,225 116.byte 102,15,56,220,233 117 movups 48-120(%rsi),%xmm1 118 cmpl 32(%rsp),%ecx 119.byte 102,15,56,220,208 120.byte 102,15,56,220,216 121.byte 102,15,56,220,224 122 cmovgeq %rbp,%r8 123 cmovgq %rbp,%r12 124.byte 102,15,56,220,232 125 movups -56(%rsi),%xmm0 126 cmpl 36(%rsp),%ecx 127.byte 102,15,56,220,209 128.byte 102,15,56,220,217 129.byte 102,15,56,220,225 130 cmovgeq %rbp,%r9 131 cmovgq %rbp,%r13 132.byte 102,15,56,220,233 133 movups -40(%rsi),%xmm1 134 cmpl 40(%rsp),%ecx 135.byte 102,15,56,220,208 136.byte 102,15,56,220,216 137.byte 102,15,56,220,224 138 cmovgeq %rbp,%r10 139 cmovgq %rbp,%r14 140.byte 102,15,56,220,232 141 movups -24(%rsi),%xmm0 142 cmpl 44(%rsp),%ecx 143.byte 102,15,56,220,209 144.byte 102,15,56,220,217 145.byte 102,15,56,220,225 146 cmovgeq %rbp,%r11 147 cmovgq %rbp,%r15 148.byte 102,15,56,220,233 149 movups -8(%rsi),%xmm1 150 movdqa %xmm10,%xmm11 151.byte 102,15,56,220,208 152 prefetcht0 15(%r12,%rbx,1) 153 prefetcht0 15(%r13,%rbx,1) 154.byte 102,15,56,220,216 155 prefetcht0 15(%r14,%rbx,1) 156 prefetcht0 15(%r15,%rbx,1) 157.byte 102,15,56,220,224 158.byte 102,15,56,220,232 159 movups 128-120(%rsi),%xmm0 160 pxor %xmm12,%xmm12 161 162.byte 102,15,56,220,209 163 pcmpgtd %xmm12,%xmm11 164 movdqu -120(%rsi),%xmm12 165.byte 102,15,56,220,217 166 paddd %xmm11,%xmm10 167 movdqa %xmm10,32(%rsp) 168.byte 102,15,56,220,225 169.byte 102,15,56,220,233 170 movups 144-120(%rsi),%xmm1 171 172 cmpl $11,%eax 173 174.byte 102,15,56,220,208 175.byte 102,15,56,220,216 176.byte 102,15,56,220,224 177.byte 102,15,56,220,232 178 movups 160-120(%rsi),%xmm0 179 180 jb .Lenc4x_tail 181 182.byte 102,15,56,220,209 183.byte 102,15,56,220,217 184.byte 102,15,56,220,225 185.byte 102,15,56,220,233 186 movups 176-120(%rsi),%xmm1 187 188.byte 102,15,56,220,208 189.byte 102,15,56,220,216 190.byte 102,15,56,220,224 191.byte 102,15,56,220,232 192 movups 192-120(%rsi),%xmm0 193 194 je .Lenc4x_tail 195 196.byte 102,15,56,220,209 197.byte 102,15,56,220,217 198.byte 102,15,56,220,225 199.byte 102,15,56,220,233 200 movups 208-120(%rsi),%xmm1 201 202.byte 102,15,56,220,208 203.byte 102,15,56,220,216 204.byte 102,15,56,220,224 205.byte 102,15,56,220,232 206 movups 224-120(%rsi),%xmm0 207 jmp .Lenc4x_tail 208 209.align 32 210.Lenc4x_tail: 211.byte 102,15,56,220,209 212.byte 102,15,56,220,217 213.byte 102,15,56,220,225 214.byte 102,15,56,220,233 215 movdqu (%r8,%rbx,1),%xmm6 216 movdqu 16-120(%rsi),%xmm1 217 218.byte 102,15,56,221,208 219 movdqu (%r9,%rbx,1),%xmm7 220 pxor %xmm12,%xmm6 221.byte 102,15,56,221,216 222 movdqu (%r10,%rbx,1),%xmm8 223 pxor %xmm12,%xmm7 224.byte 102,15,56,221,224 225 movdqu (%r11,%rbx,1),%xmm9 226 pxor %xmm12,%xmm8 227.byte 102,15,56,221,232 228 movdqu 32-120(%rsi),%xmm0 229 pxor %xmm12,%xmm9 230 231 movups %xmm2,-16(%r12,%rbx,1) 232 pxor %xmm6,%xmm2 233 movups %xmm3,-16(%r13,%rbx,1) 234 pxor %xmm7,%xmm3 235 movups %xmm4,-16(%r14,%rbx,1) 236 pxor %xmm8,%xmm4 237 movups %xmm5,-16(%r15,%rbx,1) 238 pxor %xmm9,%xmm5 239 240 decl %edx 241 jnz .Loop_enc4x 242 243 movq 16(%rsp),%rax 244 movl 24(%rsp),%edx 245 246 247 248 249 250 251 252 253 254 255 leaq 160(%rdi),%rdi 256 decl %edx 257 jnz .Lenc4x_loop_grande 258 259.Lenc4x_done: 260 movq -48(%rax),%r15 261 movq -40(%rax),%r14 262 movq -32(%rax),%r13 263 movq -24(%rax),%r12 264 movq -16(%rax),%rbp 265 movq -8(%rax),%rbx 266 leaq (%rax),%rsp 267.Lenc4x_epilogue: 268 .byte 0xf3,0xc3 269.size aesni_multi_cbc_encrypt,.-aesni_multi_cbc_encrypt 270 271.globl aesni_multi_cbc_decrypt 272.type aesni_multi_cbc_decrypt,@function 273.align 32 274aesni_multi_cbc_decrypt: 275 cmpl $2,%edx 276 jb .Ldec_non_avx 277 movl OPENSSL_ia32cap_P+4(%rip),%ecx 278 testl $268435456,%ecx 279 jnz _avx_cbc_dec_shortcut 280 jmp .Ldec_non_avx 281.align 16 282.Ldec_non_avx: 283 movq %rsp,%rax 284 pushq %rbx 285 pushq %rbp 286 pushq %r12 287 pushq %r13 288 pushq %r14 289 pushq %r15 290 291 292 293 294 295 296 subq $48,%rsp 297 andq $-64,%rsp 298 movq %rax,16(%rsp) 299 300.Ldec4x_body: 301 movdqu (%rsi),%xmm12 302 leaq 120(%rsi),%rsi 303 leaq 80(%rdi),%rdi 304 305.Ldec4x_loop_grande: 306 movl %edx,24(%rsp) 307 xorl %edx,%edx 308 movl -64(%rdi),%ecx 309 movq -80(%rdi),%r8 310 cmpl %edx,%ecx 311 movq -72(%rdi),%r12 312 cmovgl %ecx,%edx 313 testl %ecx,%ecx 314 movdqu -56(%rdi),%xmm6 315 movl %ecx,32(%rsp) 316 cmovleq %rsp,%r8 317 movl -24(%rdi),%ecx 318 movq -40(%rdi),%r9 319 cmpl %edx,%ecx 320 movq -32(%rdi),%r13 321 cmovgl %ecx,%edx 322 testl %ecx,%ecx 323 movdqu -16(%rdi),%xmm7 324 movl %ecx,36(%rsp) 325 cmovleq %rsp,%r9 326 movl 16(%rdi),%ecx 327 movq 0(%rdi),%r10 328 cmpl %edx,%ecx 329 movq 8(%rdi),%r14 330 cmovgl %ecx,%edx 331 testl %ecx,%ecx 332 movdqu 24(%rdi),%xmm8 333 movl %ecx,40(%rsp) 334 cmovleq %rsp,%r10 335 movl 56(%rdi),%ecx 336 movq 40(%rdi),%r11 337 cmpl %edx,%ecx 338 movq 48(%rdi),%r15 339 cmovgl %ecx,%edx 340 testl %ecx,%ecx 341 movdqu 64(%rdi),%xmm9 342 movl %ecx,44(%rsp) 343 cmovleq %rsp,%r11 344 testl %edx,%edx 345 jz .Ldec4x_done 346 347 movups 16-120(%rsi),%xmm1 348 movups 32-120(%rsi),%xmm0 349 movl 240-120(%rsi),%eax 350 movdqu (%r8),%xmm2 351 movdqu (%r9),%xmm3 352 pxor %xmm12,%xmm2 353 movdqu (%r10),%xmm4 354 pxor %xmm12,%xmm3 355 movdqu (%r11),%xmm5 356 pxor %xmm12,%xmm4 357 pxor %xmm12,%xmm5 358 movdqa 32(%rsp),%xmm10 359 xorq %rbx,%rbx 360 jmp .Loop_dec4x 361 362.align 32 363.Loop_dec4x: 364 addq $16,%rbx 365 leaq 16(%rsp),%rbp 366 movl $1,%ecx 367 subq %rbx,%rbp 368 369.byte 102,15,56,222,209 370 prefetcht0 31(%r8,%rbx,1) 371 prefetcht0 31(%r9,%rbx,1) 372.byte 102,15,56,222,217 373 prefetcht0 31(%r10,%rbx,1) 374 prefetcht0 31(%r11,%rbx,1) 375.byte 102,15,56,222,225 376.byte 102,15,56,222,233 377 movups 48-120(%rsi),%xmm1 378 cmpl 32(%rsp),%ecx 379.byte 102,15,56,222,208 380.byte 102,15,56,222,216 381.byte 102,15,56,222,224 382 cmovgeq %rbp,%r8 383 cmovgq %rbp,%r12 384.byte 102,15,56,222,232 385 movups -56(%rsi),%xmm0 386 cmpl 36(%rsp),%ecx 387.byte 102,15,56,222,209 388.byte 102,15,56,222,217 389.byte 102,15,56,222,225 390 cmovgeq %rbp,%r9 391 cmovgq %rbp,%r13 392.byte 102,15,56,222,233 393 movups -40(%rsi),%xmm1 394 cmpl 40(%rsp),%ecx 395.byte 102,15,56,222,208 396.byte 102,15,56,222,216 397.byte 102,15,56,222,224 398 cmovgeq %rbp,%r10 399 cmovgq %rbp,%r14 400.byte 102,15,56,222,232 401 movups -24(%rsi),%xmm0 402 cmpl 44(%rsp),%ecx 403.byte 102,15,56,222,209 404.byte 102,15,56,222,217 405.byte 102,15,56,222,225 406 cmovgeq %rbp,%r11 407 cmovgq %rbp,%r15 408.byte 102,15,56,222,233 409 movups -8(%rsi),%xmm1 410 movdqa %xmm10,%xmm11 411.byte 102,15,56,222,208 412 prefetcht0 15(%r12,%rbx,1) 413 prefetcht0 15(%r13,%rbx,1) 414.byte 102,15,56,222,216 415 prefetcht0 15(%r14,%rbx,1) 416 prefetcht0 15(%r15,%rbx,1) 417.byte 102,15,56,222,224 418.byte 102,15,56,222,232 419 movups 128-120(%rsi),%xmm0 420 pxor %xmm12,%xmm12 421 422.byte 102,15,56,222,209 423 pcmpgtd %xmm12,%xmm11 424 movdqu -120(%rsi),%xmm12 425.byte 102,15,56,222,217 426 paddd %xmm11,%xmm10 427 movdqa %xmm10,32(%rsp) 428.byte 102,15,56,222,225 429.byte 102,15,56,222,233 430 movups 144-120(%rsi),%xmm1 431 432 cmpl $11,%eax 433 434.byte 102,15,56,222,208 435.byte 102,15,56,222,216 436.byte 102,15,56,222,224 437.byte 102,15,56,222,232 438 movups 160-120(%rsi),%xmm0 439 440 jb .Ldec4x_tail 441 442.byte 102,15,56,222,209 443.byte 102,15,56,222,217 444.byte 102,15,56,222,225 445.byte 102,15,56,222,233 446 movups 176-120(%rsi),%xmm1 447 448.byte 102,15,56,222,208 449.byte 102,15,56,222,216 450.byte 102,15,56,222,224 451.byte 102,15,56,222,232 452 movups 192-120(%rsi),%xmm0 453 454 je .Ldec4x_tail 455 456.byte 102,15,56,222,209 457.byte 102,15,56,222,217 458.byte 102,15,56,222,225 459.byte 102,15,56,222,233 460 movups 208-120(%rsi),%xmm1 461 462.byte 102,15,56,222,208 463.byte 102,15,56,222,216 464.byte 102,15,56,222,224 465.byte 102,15,56,222,232 466 movups 224-120(%rsi),%xmm0 467 jmp .Ldec4x_tail 468 469.align 32 470.Ldec4x_tail: 471.byte 102,15,56,222,209 472.byte 102,15,56,222,217 473.byte 102,15,56,222,225 474 pxor %xmm0,%xmm6 475 pxor %xmm0,%xmm7 476.byte 102,15,56,222,233 477 movdqu 16-120(%rsi),%xmm1 478 pxor %xmm0,%xmm8 479 pxor %xmm0,%xmm9 480 movdqu 32-120(%rsi),%xmm0 481 482.byte 102,15,56,223,214 483.byte 102,15,56,223,223 484 movdqu -16(%r8,%rbx,1),%xmm6 485 movdqu -16(%r9,%rbx,1),%xmm7 486.byte 102,65,15,56,223,224 487.byte 102,65,15,56,223,233 488 movdqu -16(%r10,%rbx,1),%xmm8 489 movdqu -16(%r11,%rbx,1),%xmm9 490 491 movups %xmm2,-16(%r12,%rbx,1) 492 movdqu (%r8,%rbx,1),%xmm2 493 movups %xmm3,-16(%r13,%rbx,1) 494 movdqu (%r9,%rbx,1),%xmm3 495 pxor %xmm12,%xmm2 496 movups %xmm4,-16(%r14,%rbx,1) 497 movdqu (%r10,%rbx,1),%xmm4 498 pxor %xmm12,%xmm3 499 movups %xmm5,-16(%r15,%rbx,1) 500 movdqu (%r11,%rbx,1),%xmm5 501 pxor %xmm12,%xmm4 502 pxor %xmm12,%xmm5 503 504 decl %edx 505 jnz .Loop_dec4x 506 507 movq 16(%rsp),%rax 508 movl 24(%rsp),%edx 509 510 leaq 160(%rdi),%rdi 511 decl %edx 512 jnz .Ldec4x_loop_grande 513 514.Ldec4x_done: 515 movq -48(%rax),%r15 516 movq -40(%rax),%r14 517 movq -32(%rax),%r13 518 movq -24(%rax),%r12 519 movq -16(%rax),%rbp 520 movq -8(%rax),%rbx 521 leaq (%rax),%rsp 522.Ldec4x_epilogue: 523 .byte 0xf3,0xc3 524.size aesni_multi_cbc_decrypt,.-aesni_multi_cbc_decrypt 525.type aesni_multi_cbc_encrypt_avx,@function 526.align 32 527aesni_multi_cbc_encrypt_avx: 528_avx_cbc_enc_shortcut: 529 movq %rsp,%rax 530 pushq %rbx 531 pushq %rbp 532 pushq %r12 533 pushq %r13 534 pushq %r14 535 pushq %r15 536 537 538 539 540 541 542 543 544 subq $192,%rsp 545 andq $-128,%rsp 546 movq %rax,16(%rsp) 547 548.Lenc8x_body: 549 vzeroupper 550 vmovdqu (%rsi),%xmm15 551 leaq 120(%rsi),%rsi 552 leaq 160(%rdi),%rdi 553 shrl $1,%edx 554 555.Lenc8x_loop_grande: 556 557 xorl %edx,%edx 558 movl -144(%rdi),%ecx 559 movq -160(%rdi),%r8 560 cmpl %edx,%ecx 561 movq -152(%rdi),%rbx 562 cmovgl %ecx,%edx 563 testl %ecx,%ecx 564 vmovdqu -136(%rdi),%xmm2 565 movl %ecx,32(%rsp) 566 cmovleq %rsp,%r8 567 subq %r8,%rbx 568 movq %rbx,64(%rsp) 569 movl -104(%rdi),%ecx 570 movq -120(%rdi),%r9 571 cmpl %edx,%ecx 572 movq -112(%rdi),%rbp 573 cmovgl %ecx,%edx 574 testl %ecx,%ecx 575 vmovdqu -96(%rdi),%xmm3 576 movl %ecx,36(%rsp) 577 cmovleq %rsp,%r9 578 subq %r9,%rbp 579 movq %rbp,72(%rsp) 580 movl -64(%rdi),%ecx 581 movq -80(%rdi),%r10 582 cmpl %edx,%ecx 583 movq -72(%rdi),%rbp 584 cmovgl %ecx,%edx 585 testl %ecx,%ecx 586 vmovdqu -56(%rdi),%xmm4 587 movl %ecx,40(%rsp) 588 cmovleq %rsp,%r10 589 subq %r10,%rbp 590 movq %rbp,80(%rsp) 591 movl -24(%rdi),%ecx 592 movq -40(%rdi),%r11 593 cmpl %edx,%ecx 594 movq -32(%rdi),%rbp 595 cmovgl %ecx,%edx 596 testl %ecx,%ecx 597 vmovdqu -16(%rdi),%xmm5 598 movl %ecx,44(%rsp) 599 cmovleq %rsp,%r11 600 subq %r11,%rbp 601 movq %rbp,88(%rsp) 602 movl 16(%rdi),%ecx 603 movq 0(%rdi),%r12 604 cmpl %edx,%ecx 605 movq 8(%rdi),%rbp 606 cmovgl %ecx,%edx 607 testl %ecx,%ecx 608 vmovdqu 24(%rdi),%xmm6 609 movl %ecx,48(%rsp) 610 cmovleq %rsp,%r12 611 subq %r12,%rbp 612 movq %rbp,96(%rsp) 613 movl 56(%rdi),%ecx 614 movq 40(%rdi),%r13 615 cmpl %edx,%ecx 616 movq 48(%rdi),%rbp 617 cmovgl %ecx,%edx 618 testl %ecx,%ecx 619 vmovdqu 64(%rdi),%xmm7 620 movl %ecx,52(%rsp) 621 cmovleq %rsp,%r13 622 subq %r13,%rbp 623 movq %rbp,104(%rsp) 624 movl 96(%rdi),%ecx 625 movq 80(%rdi),%r14 626 cmpl %edx,%ecx 627 movq 88(%rdi),%rbp 628 cmovgl %ecx,%edx 629 testl %ecx,%ecx 630 vmovdqu 104(%rdi),%xmm8 631 movl %ecx,56(%rsp) 632 cmovleq %rsp,%r14 633 subq %r14,%rbp 634 movq %rbp,112(%rsp) 635 movl 136(%rdi),%ecx 636 movq 120(%rdi),%r15 637 cmpl %edx,%ecx 638 movq 128(%rdi),%rbp 639 cmovgl %ecx,%edx 640 testl %ecx,%ecx 641 vmovdqu 144(%rdi),%xmm9 642 movl %ecx,60(%rsp) 643 cmovleq %rsp,%r15 644 subq %r15,%rbp 645 movq %rbp,120(%rsp) 646 testl %edx,%edx 647 jz .Lenc8x_done 648 649 vmovups 16-120(%rsi),%xmm1 650 vmovups 32-120(%rsi),%xmm0 651 movl 240-120(%rsi),%eax 652 653 vpxor (%r8),%xmm15,%xmm10 654 leaq 128(%rsp),%rbp 655 vpxor (%r9),%xmm15,%xmm11 656 vpxor (%r10),%xmm15,%xmm12 657 vpxor (%r11),%xmm15,%xmm13 658 vpxor %xmm10,%xmm2,%xmm2 659 vpxor (%r12),%xmm15,%xmm10 660 vpxor %xmm11,%xmm3,%xmm3 661 vpxor (%r13),%xmm15,%xmm11 662 vpxor %xmm12,%xmm4,%xmm4 663 vpxor (%r14),%xmm15,%xmm12 664 vpxor %xmm13,%xmm5,%xmm5 665 vpxor (%r15),%xmm15,%xmm13 666 vpxor %xmm10,%xmm6,%xmm6 667 movl $1,%ecx 668 vpxor %xmm11,%xmm7,%xmm7 669 vpxor %xmm12,%xmm8,%xmm8 670 vpxor %xmm13,%xmm9,%xmm9 671 jmp .Loop_enc8x 672 673.align 32 674.Loop_enc8x: 675 vaesenc %xmm1,%xmm2,%xmm2 676 cmpl 32+0(%rsp),%ecx 677 vaesenc %xmm1,%xmm3,%xmm3 678 prefetcht0 31(%r8) 679 vaesenc %xmm1,%xmm4,%xmm4 680 vaesenc %xmm1,%xmm5,%xmm5 681 leaq (%r8,%rbx,1),%rbx 682 cmovgeq %rsp,%r8 683 vaesenc %xmm1,%xmm6,%xmm6 684 cmovgq %rsp,%rbx 685 vaesenc %xmm1,%xmm7,%xmm7 686 subq %r8,%rbx 687 vaesenc %xmm1,%xmm8,%xmm8 688 vpxor 16(%r8),%xmm15,%xmm10 689 movq %rbx,64+0(%rsp) 690 vaesenc %xmm1,%xmm9,%xmm9 691 vmovups -72(%rsi),%xmm1 692 leaq 16(%r8,%rbx,1),%r8 693 vmovdqu %xmm10,0(%rbp) 694 vaesenc %xmm0,%xmm2,%xmm2 695 cmpl 32+4(%rsp),%ecx 696 movq 64+8(%rsp),%rbx 697 vaesenc %xmm0,%xmm3,%xmm3 698 prefetcht0 31(%r9) 699 vaesenc %xmm0,%xmm4,%xmm4 700 vaesenc %xmm0,%xmm5,%xmm5 701 leaq (%r9,%rbx,1),%rbx 702 cmovgeq %rsp,%r9 703 vaesenc %xmm0,%xmm6,%xmm6 704 cmovgq %rsp,%rbx 705 vaesenc %xmm0,%xmm7,%xmm7 706 subq %r9,%rbx 707 vaesenc %xmm0,%xmm8,%xmm8 708 vpxor 16(%r9),%xmm15,%xmm11 709 movq %rbx,64+8(%rsp) 710 vaesenc %xmm0,%xmm9,%xmm9 711 vmovups -56(%rsi),%xmm0 712 leaq 16(%r9,%rbx,1),%r9 713 vmovdqu %xmm11,16(%rbp) 714 vaesenc %xmm1,%xmm2,%xmm2 715 cmpl 32+8(%rsp),%ecx 716 movq 64+16(%rsp),%rbx 717 vaesenc %xmm1,%xmm3,%xmm3 718 prefetcht0 31(%r10) 719 vaesenc %xmm1,%xmm4,%xmm4 720 prefetcht0 15(%r8) 721 vaesenc %xmm1,%xmm5,%xmm5 722 leaq (%r10,%rbx,1),%rbx 723 cmovgeq %rsp,%r10 724 vaesenc %xmm1,%xmm6,%xmm6 725 cmovgq %rsp,%rbx 726 vaesenc %xmm1,%xmm7,%xmm7 727 subq %r10,%rbx 728 vaesenc %xmm1,%xmm8,%xmm8 729 vpxor 16(%r10),%xmm15,%xmm12 730 movq %rbx,64+16(%rsp) 731 vaesenc %xmm1,%xmm9,%xmm9 732 vmovups -40(%rsi),%xmm1 733 leaq 16(%r10,%rbx,1),%r10 734 vmovdqu %xmm12,32(%rbp) 735 vaesenc %xmm0,%xmm2,%xmm2 736 cmpl 32+12(%rsp),%ecx 737 movq 64+24(%rsp),%rbx 738 vaesenc %xmm0,%xmm3,%xmm3 739 prefetcht0 31(%r11) 740 vaesenc %xmm0,%xmm4,%xmm4 741 prefetcht0 15(%r9) 742 vaesenc %xmm0,%xmm5,%xmm5 743 leaq (%r11,%rbx,1),%rbx 744 cmovgeq %rsp,%r11 745 vaesenc %xmm0,%xmm6,%xmm6 746 cmovgq %rsp,%rbx 747 vaesenc %xmm0,%xmm7,%xmm7 748 subq %r11,%rbx 749 vaesenc %xmm0,%xmm8,%xmm8 750 vpxor 16(%r11),%xmm15,%xmm13 751 movq %rbx,64+24(%rsp) 752 vaesenc %xmm0,%xmm9,%xmm9 753 vmovups -24(%rsi),%xmm0 754 leaq 16(%r11,%rbx,1),%r11 755 vmovdqu %xmm13,48(%rbp) 756 vaesenc %xmm1,%xmm2,%xmm2 757 cmpl 32+16(%rsp),%ecx 758 movq 64+32(%rsp),%rbx 759 vaesenc %xmm1,%xmm3,%xmm3 760 prefetcht0 31(%r12) 761 vaesenc %xmm1,%xmm4,%xmm4 762 prefetcht0 15(%r10) 763 vaesenc %xmm1,%xmm5,%xmm5 764 leaq (%r12,%rbx,1),%rbx 765 cmovgeq %rsp,%r12 766 vaesenc %xmm1,%xmm6,%xmm6 767 cmovgq %rsp,%rbx 768 vaesenc %xmm1,%xmm7,%xmm7 769 subq %r12,%rbx 770 vaesenc %xmm1,%xmm8,%xmm8 771 vpxor 16(%r12),%xmm15,%xmm10 772 movq %rbx,64+32(%rsp) 773 vaesenc %xmm1,%xmm9,%xmm9 774 vmovups -8(%rsi),%xmm1 775 leaq 16(%r12,%rbx,1),%r12 776 vaesenc %xmm0,%xmm2,%xmm2 777 cmpl 32+20(%rsp),%ecx 778 movq 64+40(%rsp),%rbx 779 vaesenc %xmm0,%xmm3,%xmm3 780 prefetcht0 31(%r13) 781 vaesenc %xmm0,%xmm4,%xmm4 782 prefetcht0 15(%r11) 783 vaesenc %xmm0,%xmm5,%xmm5 784 leaq (%rbx,%r13,1),%rbx 785 cmovgeq %rsp,%r13 786 vaesenc %xmm0,%xmm6,%xmm6 787 cmovgq %rsp,%rbx 788 vaesenc %xmm0,%xmm7,%xmm7 789 subq %r13,%rbx 790 vaesenc %xmm0,%xmm8,%xmm8 791 vpxor 16(%r13),%xmm15,%xmm11 792 movq %rbx,64+40(%rsp) 793 vaesenc %xmm0,%xmm9,%xmm9 794 vmovups 8(%rsi),%xmm0 795 leaq 16(%r13,%rbx,1),%r13 796 vaesenc %xmm1,%xmm2,%xmm2 797 cmpl 32+24(%rsp),%ecx 798 movq 64+48(%rsp),%rbx 799 vaesenc %xmm1,%xmm3,%xmm3 800 prefetcht0 31(%r14) 801 vaesenc %xmm1,%xmm4,%xmm4 802 prefetcht0 15(%r12) 803 vaesenc %xmm1,%xmm5,%xmm5 804 leaq (%r14,%rbx,1),%rbx 805 cmovgeq %rsp,%r14 806 vaesenc %xmm1,%xmm6,%xmm6 807 cmovgq %rsp,%rbx 808 vaesenc %xmm1,%xmm7,%xmm7 809 subq %r14,%rbx 810 vaesenc %xmm1,%xmm8,%xmm8 811 vpxor 16(%r14),%xmm15,%xmm12 812 movq %rbx,64+48(%rsp) 813 vaesenc %xmm1,%xmm9,%xmm9 814 vmovups 24(%rsi),%xmm1 815 leaq 16(%r14,%rbx,1),%r14 816 vaesenc %xmm0,%xmm2,%xmm2 817 cmpl 32+28(%rsp),%ecx 818 movq 64+56(%rsp),%rbx 819 vaesenc %xmm0,%xmm3,%xmm3 820 prefetcht0 31(%r15) 821 vaesenc %xmm0,%xmm4,%xmm4 822 prefetcht0 15(%r13) 823 vaesenc %xmm0,%xmm5,%xmm5 824 leaq (%r15,%rbx,1),%rbx 825 cmovgeq %rsp,%r15 826 vaesenc %xmm0,%xmm6,%xmm6 827 cmovgq %rsp,%rbx 828 vaesenc %xmm0,%xmm7,%xmm7 829 subq %r15,%rbx 830 vaesenc %xmm0,%xmm8,%xmm8 831 vpxor 16(%r15),%xmm15,%xmm13 832 movq %rbx,64+56(%rsp) 833 vaesenc %xmm0,%xmm9,%xmm9 834 vmovups 40(%rsi),%xmm0 835 leaq 16(%r15,%rbx,1),%r15 836 vmovdqu 32(%rsp),%xmm14 837 prefetcht0 15(%r14) 838 prefetcht0 15(%r15) 839 cmpl $11,%eax 840 jb .Lenc8x_tail 841 842 vaesenc %xmm1,%xmm2,%xmm2 843 vaesenc %xmm1,%xmm3,%xmm3 844 vaesenc %xmm1,%xmm4,%xmm4 845 vaesenc %xmm1,%xmm5,%xmm5 846 vaesenc %xmm1,%xmm6,%xmm6 847 vaesenc %xmm1,%xmm7,%xmm7 848 vaesenc %xmm1,%xmm8,%xmm8 849 vaesenc %xmm1,%xmm9,%xmm9 850 vmovups 176-120(%rsi),%xmm1 851 852 vaesenc %xmm0,%xmm2,%xmm2 853 vaesenc %xmm0,%xmm3,%xmm3 854 vaesenc %xmm0,%xmm4,%xmm4 855 vaesenc %xmm0,%xmm5,%xmm5 856 vaesenc %xmm0,%xmm6,%xmm6 857 vaesenc %xmm0,%xmm7,%xmm7 858 vaesenc %xmm0,%xmm8,%xmm8 859 vaesenc %xmm0,%xmm9,%xmm9 860 vmovups 192-120(%rsi),%xmm0 861 je .Lenc8x_tail 862 863 vaesenc %xmm1,%xmm2,%xmm2 864 vaesenc %xmm1,%xmm3,%xmm3 865 vaesenc %xmm1,%xmm4,%xmm4 866 vaesenc %xmm1,%xmm5,%xmm5 867 vaesenc %xmm1,%xmm6,%xmm6 868 vaesenc %xmm1,%xmm7,%xmm7 869 vaesenc %xmm1,%xmm8,%xmm8 870 vaesenc %xmm1,%xmm9,%xmm9 871 vmovups 208-120(%rsi),%xmm1 872 873 vaesenc %xmm0,%xmm2,%xmm2 874 vaesenc %xmm0,%xmm3,%xmm3 875 vaesenc %xmm0,%xmm4,%xmm4 876 vaesenc %xmm0,%xmm5,%xmm5 877 vaesenc %xmm0,%xmm6,%xmm6 878 vaesenc %xmm0,%xmm7,%xmm7 879 vaesenc %xmm0,%xmm8,%xmm8 880 vaesenc %xmm0,%xmm9,%xmm9 881 vmovups 224-120(%rsi),%xmm0 882 883.Lenc8x_tail: 884 vaesenc %xmm1,%xmm2,%xmm2 885 vpxor %xmm15,%xmm15,%xmm15 886 vaesenc %xmm1,%xmm3,%xmm3 887 vaesenc %xmm1,%xmm4,%xmm4 888 vpcmpgtd %xmm15,%xmm14,%xmm15 889 vaesenc %xmm1,%xmm5,%xmm5 890 vaesenc %xmm1,%xmm6,%xmm6 891 vpaddd %xmm14,%xmm15,%xmm15 892 vmovdqu 48(%rsp),%xmm14 893 vaesenc %xmm1,%xmm7,%xmm7 894 movq 64(%rsp),%rbx 895 vaesenc %xmm1,%xmm8,%xmm8 896 vaesenc %xmm1,%xmm9,%xmm9 897 vmovups 16-120(%rsi),%xmm1 898 899 vaesenclast %xmm0,%xmm2,%xmm2 900 vmovdqa %xmm15,32(%rsp) 901 vpxor %xmm15,%xmm15,%xmm15 902 vaesenclast %xmm0,%xmm3,%xmm3 903 vaesenclast %xmm0,%xmm4,%xmm4 904 vpcmpgtd %xmm15,%xmm14,%xmm15 905 vaesenclast %xmm0,%xmm5,%xmm5 906 vaesenclast %xmm0,%xmm6,%xmm6 907 vpaddd %xmm15,%xmm14,%xmm14 908 vmovdqu -120(%rsi),%xmm15 909 vaesenclast %xmm0,%xmm7,%xmm7 910 vaesenclast %xmm0,%xmm8,%xmm8 911 vmovdqa %xmm14,48(%rsp) 912 vaesenclast %xmm0,%xmm9,%xmm9 913 vmovups 32-120(%rsi),%xmm0 914 915 vmovups %xmm2,-16(%r8) 916 subq %rbx,%r8 917 vpxor 0(%rbp),%xmm2,%xmm2 918 vmovups %xmm3,-16(%r9) 919 subq 72(%rsp),%r9 920 vpxor 16(%rbp),%xmm3,%xmm3 921 vmovups %xmm4,-16(%r10) 922 subq 80(%rsp),%r10 923 vpxor 32(%rbp),%xmm4,%xmm4 924 vmovups %xmm5,-16(%r11) 925 subq 88(%rsp),%r11 926 vpxor 48(%rbp),%xmm5,%xmm5 927 vmovups %xmm6,-16(%r12) 928 subq 96(%rsp),%r12 929 vpxor %xmm10,%xmm6,%xmm6 930 vmovups %xmm7,-16(%r13) 931 subq 104(%rsp),%r13 932 vpxor %xmm11,%xmm7,%xmm7 933 vmovups %xmm8,-16(%r14) 934 subq 112(%rsp),%r14 935 vpxor %xmm12,%xmm8,%xmm8 936 vmovups %xmm9,-16(%r15) 937 subq 120(%rsp),%r15 938 vpxor %xmm13,%xmm9,%xmm9 939 940 decl %edx 941 jnz .Loop_enc8x 942 943 movq 16(%rsp),%rax 944 945 946 947 948 949.Lenc8x_done: 950 vzeroupper 951 movq -48(%rax),%r15 952 movq -40(%rax),%r14 953 movq -32(%rax),%r13 954 movq -24(%rax),%r12 955 movq -16(%rax),%rbp 956 movq -8(%rax),%rbx 957 leaq (%rax),%rsp 958.Lenc8x_epilogue: 959 .byte 0xf3,0xc3 960.size aesni_multi_cbc_encrypt_avx,.-aesni_multi_cbc_encrypt_avx 961 962.type aesni_multi_cbc_decrypt_avx,@function 963.align 32 964aesni_multi_cbc_decrypt_avx: 965_avx_cbc_dec_shortcut: 966 movq %rsp,%rax 967 pushq %rbx 968 pushq %rbp 969 pushq %r12 970 pushq %r13 971 pushq %r14 972 pushq %r15 973 974 975 976 977 978 979 980 981 982 subq $256,%rsp 983 andq $-256,%rsp 984 subq $192,%rsp 985 movq %rax,16(%rsp) 986 987.Ldec8x_body: 988 vzeroupper 989 vmovdqu (%rsi),%xmm15 990 leaq 120(%rsi),%rsi 991 leaq 160(%rdi),%rdi 992 shrl $1,%edx 993 994.Ldec8x_loop_grande: 995 996 xorl %edx,%edx 997 movl -144(%rdi),%ecx 998 movq -160(%rdi),%r8 999 cmpl %edx,%ecx 1000 movq -152(%rdi),%rbx 1001 cmovgl %ecx,%edx 1002 testl %ecx,%ecx 1003 vmovdqu -136(%rdi),%xmm2 1004 movl %ecx,32(%rsp) 1005 cmovleq %rsp,%r8 1006 subq %r8,%rbx 1007 movq %rbx,64(%rsp) 1008 vmovdqu %xmm2,192(%rsp) 1009 movl -104(%rdi),%ecx 1010 movq -120(%rdi),%r9 1011 cmpl %edx,%ecx 1012 movq -112(%rdi),%rbp 1013 cmovgl %ecx,%edx 1014 testl %ecx,%ecx 1015 vmovdqu -96(%rdi),%xmm3 1016 movl %ecx,36(%rsp) 1017 cmovleq %rsp,%r9 1018 subq %r9,%rbp 1019 movq %rbp,72(%rsp) 1020 vmovdqu %xmm3,208(%rsp) 1021 movl -64(%rdi),%ecx 1022 movq -80(%rdi),%r10 1023 cmpl %edx,%ecx 1024 movq -72(%rdi),%rbp 1025 cmovgl %ecx,%edx 1026 testl %ecx,%ecx 1027 vmovdqu -56(%rdi),%xmm4 1028 movl %ecx,40(%rsp) 1029 cmovleq %rsp,%r10 1030 subq %r10,%rbp 1031 movq %rbp,80(%rsp) 1032 vmovdqu %xmm4,224(%rsp) 1033 movl -24(%rdi),%ecx 1034 movq -40(%rdi),%r11 1035 cmpl %edx,%ecx 1036 movq -32(%rdi),%rbp 1037 cmovgl %ecx,%edx 1038 testl %ecx,%ecx 1039 vmovdqu -16(%rdi),%xmm5 1040 movl %ecx,44(%rsp) 1041 cmovleq %rsp,%r11 1042 subq %r11,%rbp 1043 movq %rbp,88(%rsp) 1044 vmovdqu %xmm5,240(%rsp) 1045 movl 16(%rdi),%ecx 1046 movq 0(%rdi),%r12 1047 cmpl %edx,%ecx 1048 movq 8(%rdi),%rbp 1049 cmovgl %ecx,%edx 1050 testl %ecx,%ecx 1051 vmovdqu 24(%rdi),%xmm6 1052 movl %ecx,48(%rsp) 1053 cmovleq %rsp,%r12 1054 subq %r12,%rbp 1055 movq %rbp,96(%rsp) 1056 vmovdqu %xmm6,256(%rsp) 1057 movl 56(%rdi),%ecx 1058 movq 40(%rdi),%r13 1059 cmpl %edx,%ecx 1060 movq 48(%rdi),%rbp 1061 cmovgl %ecx,%edx 1062 testl %ecx,%ecx 1063 vmovdqu 64(%rdi),%xmm7 1064 movl %ecx,52(%rsp) 1065 cmovleq %rsp,%r13 1066 subq %r13,%rbp 1067 movq %rbp,104(%rsp) 1068 vmovdqu %xmm7,272(%rsp) 1069 movl 96(%rdi),%ecx 1070 movq 80(%rdi),%r14 1071 cmpl %edx,%ecx 1072 movq 88(%rdi),%rbp 1073 cmovgl %ecx,%edx 1074 testl %ecx,%ecx 1075 vmovdqu 104(%rdi),%xmm8 1076 movl %ecx,56(%rsp) 1077 cmovleq %rsp,%r14 1078 subq %r14,%rbp 1079 movq %rbp,112(%rsp) 1080 vmovdqu %xmm8,288(%rsp) 1081 movl 136(%rdi),%ecx 1082 movq 120(%rdi),%r15 1083 cmpl %edx,%ecx 1084 movq 128(%rdi),%rbp 1085 cmovgl %ecx,%edx 1086 testl %ecx,%ecx 1087 vmovdqu 144(%rdi),%xmm9 1088 movl %ecx,60(%rsp) 1089 cmovleq %rsp,%r15 1090 subq %r15,%rbp 1091 movq %rbp,120(%rsp) 1092 vmovdqu %xmm9,304(%rsp) 1093 testl %edx,%edx 1094 jz .Ldec8x_done 1095 1096 vmovups 16-120(%rsi),%xmm1 1097 vmovups 32-120(%rsi),%xmm0 1098 movl 240-120(%rsi),%eax 1099 leaq 192+128(%rsp),%rbp 1100 1101 vmovdqu (%r8),%xmm2 1102 vmovdqu (%r9),%xmm3 1103 vmovdqu (%r10),%xmm4 1104 vmovdqu (%r11),%xmm5 1105 vmovdqu (%r12),%xmm6 1106 vmovdqu (%r13),%xmm7 1107 vmovdqu (%r14),%xmm8 1108 vmovdqu (%r15),%xmm9 1109 vmovdqu %xmm2,0(%rbp) 1110 vpxor %xmm15,%xmm2,%xmm2 1111 vmovdqu %xmm3,16(%rbp) 1112 vpxor %xmm15,%xmm3,%xmm3 1113 vmovdqu %xmm4,32(%rbp) 1114 vpxor %xmm15,%xmm4,%xmm4 1115 vmovdqu %xmm5,48(%rbp) 1116 vpxor %xmm15,%xmm5,%xmm5 1117 vmovdqu %xmm6,64(%rbp) 1118 vpxor %xmm15,%xmm6,%xmm6 1119 vmovdqu %xmm7,80(%rbp) 1120 vpxor %xmm15,%xmm7,%xmm7 1121 vmovdqu %xmm8,96(%rbp) 1122 vpxor %xmm15,%xmm8,%xmm8 1123 vmovdqu %xmm9,112(%rbp) 1124 vpxor %xmm15,%xmm9,%xmm9 1125 xorq $0x80,%rbp 1126 movl $1,%ecx 1127 jmp .Loop_dec8x 1128 1129.align 32 1130.Loop_dec8x: 1131 vaesdec %xmm1,%xmm2,%xmm2 1132 cmpl 32+0(%rsp),%ecx 1133 vaesdec %xmm1,%xmm3,%xmm3 1134 prefetcht0 31(%r8) 1135 vaesdec %xmm1,%xmm4,%xmm4 1136 vaesdec %xmm1,%xmm5,%xmm5 1137 leaq (%r8,%rbx,1),%rbx 1138 cmovgeq %rsp,%r8 1139 vaesdec %xmm1,%xmm6,%xmm6 1140 cmovgq %rsp,%rbx 1141 vaesdec %xmm1,%xmm7,%xmm7 1142 subq %r8,%rbx 1143 vaesdec %xmm1,%xmm8,%xmm8 1144 vmovdqu 16(%r8),%xmm10 1145 movq %rbx,64+0(%rsp) 1146 vaesdec %xmm1,%xmm9,%xmm9 1147 vmovups -72(%rsi),%xmm1 1148 leaq 16(%r8,%rbx,1),%r8 1149 vmovdqu %xmm10,128(%rsp) 1150 vaesdec %xmm0,%xmm2,%xmm2 1151 cmpl 32+4(%rsp),%ecx 1152 movq 64+8(%rsp),%rbx 1153 vaesdec %xmm0,%xmm3,%xmm3 1154 prefetcht0 31(%r9) 1155 vaesdec %xmm0,%xmm4,%xmm4 1156 vaesdec %xmm0,%xmm5,%xmm5 1157 leaq (%r9,%rbx,1),%rbx 1158 cmovgeq %rsp,%r9 1159 vaesdec %xmm0,%xmm6,%xmm6 1160 cmovgq %rsp,%rbx 1161 vaesdec %xmm0,%xmm7,%xmm7 1162 subq %r9,%rbx 1163 vaesdec %xmm0,%xmm8,%xmm8 1164 vmovdqu 16(%r9),%xmm11 1165 movq %rbx,64+8(%rsp) 1166 vaesdec %xmm0,%xmm9,%xmm9 1167 vmovups -56(%rsi),%xmm0 1168 leaq 16(%r9,%rbx,1),%r9 1169 vmovdqu %xmm11,144(%rsp) 1170 vaesdec %xmm1,%xmm2,%xmm2 1171 cmpl 32+8(%rsp),%ecx 1172 movq 64+16(%rsp),%rbx 1173 vaesdec %xmm1,%xmm3,%xmm3 1174 prefetcht0 31(%r10) 1175 vaesdec %xmm1,%xmm4,%xmm4 1176 prefetcht0 15(%r8) 1177 vaesdec %xmm1,%xmm5,%xmm5 1178 leaq (%r10,%rbx,1),%rbx 1179 cmovgeq %rsp,%r10 1180 vaesdec %xmm1,%xmm6,%xmm6 1181 cmovgq %rsp,%rbx 1182 vaesdec %xmm1,%xmm7,%xmm7 1183 subq %r10,%rbx 1184 vaesdec %xmm1,%xmm8,%xmm8 1185 vmovdqu 16(%r10),%xmm12 1186 movq %rbx,64+16(%rsp) 1187 vaesdec %xmm1,%xmm9,%xmm9 1188 vmovups -40(%rsi),%xmm1 1189 leaq 16(%r10,%rbx,1),%r10 1190 vmovdqu %xmm12,160(%rsp) 1191 vaesdec %xmm0,%xmm2,%xmm2 1192 cmpl 32+12(%rsp),%ecx 1193 movq 64+24(%rsp),%rbx 1194 vaesdec %xmm0,%xmm3,%xmm3 1195 prefetcht0 31(%r11) 1196 vaesdec %xmm0,%xmm4,%xmm4 1197 prefetcht0 15(%r9) 1198 vaesdec %xmm0,%xmm5,%xmm5 1199 leaq (%r11,%rbx,1),%rbx 1200 cmovgeq %rsp,%r11 1201 vaesdec %xmm0,%xmm6,%xmm6 1202 cmovgq %rsp,%rbx 1203 vaesdec %xmm0,%xmm7,%xmm7 1204 subq %r11,%rbx 1205 vaesdec %xmm0,%xmm8,%xmm8 1206 vmovdqu 16(%r11),%xmm13 1207 movq %rbx,64+24(%rsp) 1208 vaesdec %xmm0,%xmm9,%xmm9 1209 vmovups -24(%rsi),%xmm0 1210 leaq 16(%r11,%rbx,1),%r11 1211 vmovdqu %xmm13,176(%rsp) 1212 vaesdec %xmm1,%xmm2,%xmm2 1213 cmpl 32+16(%rsp),%ecx 1214 movq 64+32(%rsp),%rbx 1215 vaesdec %xmm1,%xmm3,%xmm3 1216 prefetcht0 31(%r12) 1217 vaesdec %xmm1,%xmm4,%xmm4 1218 prefetcht0 15(%r10) 1219 vaesdec %xmm1,%xmm5,%xmm5 1220 leaq (%r12,%rbx,1),%rbx 1221 cmovgeq %rsp,%r12 1222 vaesdec %xmm1,%xmm6,%xmm6 1223 cmovgq %rsp,%rbx 1224 vaesdec %xmm1,%xmm7,%xmm7 1225 subq %r12,%rbx 1226 vaesdec %xmm1,%xmm8,%xmm8 1227 vmovdqu 16(%r12),%xmm10 1228 movq %rbx,64+32(%rsp) 1229 vaesdec %xmm1,%xmm9,%xmm9 1230 vmovups -8(%rsi),%xmm1 1231 leaq 16(%r12,%rbx,1),%r12 1232 vaesdec %xmm0,%xmm2,%xmm2 1233 cmpl 32+20(%rsp),%ecx 1234 movq 64+40(%rsp),%rbx 1235 vaesdec %xmm0,%xmm3,%xmm3 1236 prefetcht0 31(%r13) 1237 vaesdec %xmm0,%xmm4,%xmm4 1238 prefetcht0 15(%r11) 1239 vaesdec %xmm0,%xmm5,%xmm5 1240 leaq (%rbx,%r13,1),%rbx 1241 cmovgeq %rsp,%r13 1242 vaesdec %xmm0,%xmm6,%xmm6 1243 cmovgq %rsp,%rbx 1244 vaesdec %xmm0,%xmm7,%xmm7 1245 subq %r13,%rbx 1246 vaesdec %xmm0,%xmm8,%xmm8 1247 vmovdqu 16(%r13),%xmm11 1248 movq %rbx,64+40(%rsp) 1249 vaesdec %xmm0,%xmm9,%xmm9 1250 vmovups 8(%rsi),%xmm0 1251 leaq 16(%r13,%rbx,1),%r13 1252 vaesdec %xmm1,%xmm2,%xmm2 1253 cmpl 32+24(%rsp),%ecx 1254 movq 64+48(%rsp),%rbx 1255 vaesdec %xmm1,%xmm3,%xmm3 1256 prefetcht0 31(%r14) 1257 vaesdec %xmm1,%xmm4,%xmm4 1258 prefetcht0 15(%r12) 1259 vaesdec %xmm1,%xmm5,%xmm5 1260 leaq (%r14,%rbx,1),%rbx 1261 cmovgeq %rsp,%r14 1262 vaesdec %xmm1,%xmm6,%xmm6 1263 cmovgq %rsp,%rbx 1264 vaesdec %xmm1,%xmm7,%xmm7 1265 subq %r14,%rbx 1266 vaesdec %xmm1,%xmm8,%xmm8 1267 vmovdqu 16(%r14),%xmm12 1268 movq %rbx,64+48(%rsp) 1269 vaesdec %xmm1,%xmm9,%xmm9 1270 vmovups 24(%rsi),%xmm1 1271 leaq 16(%r14,%rbx,1),%r14 1272 vaesdec %xmm0,%xmm2,%xmm2 1273 cmpl 32+28(%rsp),%ecx 1274 movq 64+56(%rsp),%rbx 1275 vaesdec %xmm0,%xmm3,%xmm3 1276 prefetcht0 31(%r15) 1277 vaesdec %xmm0,%xmm4,%xmm4 1278 prefetcht0 15(%r13) 1279 vaesdec %xmm0,%xmm5,%xmm5 1280 leaq (%r15,%rbx,1),%rbx 1281 cmovgeq %rsp,%r15 1282 vaesdec %xmm0,%xmm6,%xmm6 1283 cmovgq %rsp,%rbx 1284 vaesdec %xmm0,%xmm7,%xmm7 1285 subq %r15,%rbx 1286 vaesdec %xmm0,%xmm8,%xmm8 1287 vmovdqu 16(%r15),%xmm13 1288 movq %rbx,64+56(%rsp) 1289 vaesdec %xmm0,%xmm9,%xmm9 1290 vmovups 40(%rsi),%xmm0 1291 leaq 16(%r15,%rbx,1),%r15 1292 vmovdqu 32(%rsp),%xmm14 1293 prefetcht0 15(%r14) 1294 prefetcht0 15(%r15) 1295 cmpl $11,%eax 1296 jb .Ldec8x_tail 1297 1298 vaesdec %xmm1,%xmm2,%xmm2 1299 vaesdec %xmm1,%xmm3,%xmm3 1300 vaesdec %xmm1,%xmm4,%xmm4 1301 vaesdec %xmm1,%xmm5,%xmm5 1302 vaesdec %xmm1,%xmm6,%xmm6 1303 vaesdec %xmm1,%xmm7,%xmm7 1304 vaesdec %xmm1,%xmm8,%xmm8 1305 vaesdec %xmm1,%xmm9,%xmm9 1306 vmovups 176-120(%rsi),%xmm1 1307 1308 vaesdec %xmm0,%xmm2,%xmm2 1309 vaesdec %xmm0,%xmm3,%xmm3 1310 vaesdec %xmm0,%xmm4,%xmm4 1311 vaesdec %xmm0,%xmm5,%xmm5 1312 vaesdec %xmm0,%xmm6,%xmm6 1313 vaesdec %xmm0,%xmm7,%xmm7 1314 vaesdec %xmm0,%xmm8,%xmm8 1315 vaesdec %xmm0,%xmm9,%xmm9 1316 vmovups 192-120(%rsi),%xmm0 1317 je .Ldec8x_tail 1318 1319 vaesdec %xmm1,%xmm2,%xmm2 1320 vaesdec %xmm1,%xmm3,%xmm3 1321 vaesdec %xmm1,%xmm4,%xmm4 1322 vaesdec %xmm1,%xmm5,%xmm5 1323 vaesdec %xmm1,%xmm6,%xmm6 1324 vaesdec %xmm1,%xmm7,%xmm7 1325 vaesdec %xmm1,%xmm8,%xmm8 1326 vaesdec %xmm1,%xmm9,%xmm9 1327 vmovups 208-120(%rsi),%xmm1 1328 1329 vaesdec %xmm0,%xmm2,%xmm2 1330 vaesdec %xmm0,%xmm3,%xmm3 1331 vaesdec %xmm0,%xmm4,%xmm4 1332 vaesdec %xmm0,%xmm5,%xmm5 1333 vaesdec %xmm0,%xmm6,%xmm6 1334 vaesdec %xmm0,%xmm7,%xmm7 1335 vaesdec %xmm0,%xmm8,%xmm8 1336 vaesdec %xmm0,%xmm9,%xmm9 1337 vmovups 224-120(%rsi),%xmm0 1338 1339.Ldec8x_tail: 1340 vaesdec %xmm1,%xmm2,%xmm2 1341 vpxor %xmm15,%xmm15,%xmm15 1342 vaesdec %xmm1,%xmm3,%xmm3 1343 vaesdec %xmm1,%xmm4,%xmm4 1344 vpcmpgtd %xmm15,%xmm14,%xmm15 1345 vaesdec %xmm1,%xmm5,%xmm5 1346 vaesdec %xmm1,%xmm6,%xmm6 1347 vpaddd %xmm14,%xmm15,%xmm15 1348 vmovdqu 48(%rsp),%xmm14 1349 vaesdec %xmm1,%xmm7,%xmm7 1350 movq 64(%rsp),%rbx 1351 vaesdec %xmm1,%xmm8,%xmm8 1352 vaesdec %xmm1,%xmm9,%xmm9 1353 vmovups 16-120(%rsi),%xmm1 1354 1355 vaesdeclast %xmm0,%xmm2,%xmm2 1356 vmovdqa %xmm15,32(%rsp) 1357 vpxor %xmm15,%xmm15,%xmm15 1358 vaesdeclast %xmm0,%xmm3,%xmm3 1359 vpxor 0(%rbp),%xmm2,%xmm2 1360 vaesdeclast %xmm0,%xmm4,%xmm4 1361 vpxor 16(%rbp),%xmm3,%xmm3 1362 vpcmpgtd %xmm15,%xmm14,%xmm15 1363 vaesdeclast %xmm0,%xmm5,%xmm5 1364 vpxor 32(%rbp),%xmm4,%xmm4 1365 vaesdeclast %xmm0,%xmm6,%xmm6 1366 vpxor 48(%rbp),%xmm5,%xmm5 1367 vpaddd %xmm15,%xmm14,%xmm14 1368 vmovdqu -120(%rsi),%xmm15 1369 vaesdeclast %xmm0,%xmm7,%xmm7 1370 vpxor 64(%rbp),%xmm6,%xmm6 1371 vaesdeclast %xmm0,%xmm8,%xmm8 1372 vpxor 80(%rbp),%xmm7,%xmm7 1373 vmovdqa %xmm14,48(%rsp) 1374 vaesdeclast %xmm0,%xmm9,%xmm9 1375 vpxor 96(%rbp),%xmm8,%xmm8 1376 vmovups 32-120(%rsi),%xmm0 1377 1378 vmovups %xmm2,-16(%r8) 1379 subq %rbx,%r8 1380 vmovdqu 128+0(%rsp),%xmm2 1381 vpxor 112(%rbp),%xmm9,%xmm9 1382 vmovups %xmm3,-16(%r9) 1383 subq 72(%rsp),%r9 1384 vmovdqu %xmm2,0(%rbp) 1385 vpxor %xmm15,%xmm2,%xmm2 1386 vmovdqu 128+16(%rsp),%xmm3 1387 vmovups %xmm4,-16(%r10) 1388 subq 80(%rsp),%r10 1389 vmovdqu %xmm3,16(%rbp) 1390 vpxor %xmm15,%xmm3,%xmm3 1391 vmovdqu 128+32(%rsp),%xmm4 1392 vmovups %xmm5,-16(%r11) 1393 subq 88(%rsp),%r11 1394 vmovdqu %xmm4,32(%rbp) 1395 vpxor %xmm15,%xmm4,%xmm4 1396 vmovdqu 128+48(%rsp),%xmm5 1397 vmovups %xmm6,-16(%r12) 1398 subq 96(%rsp),%r12 1399 vmovdqu %xmm5,48(%rbp) 1400 vpxor %xmm15,%xmm5,%xmm5 1401 vmovdqu %xmm10,64(%rbp) 1402 vpxor %xmm10,%xmm15,%xmm6 1403 vmovups %xmm7,-16(%r13) 1404 subq 104(%rsp),%r13 1405 vmovdqu %xmm11,80(%rbp) 1406 vpxor %xmm11,%xmm15,%xmm7 1407 vmovups %xmm8,-16(%r14) 1408 subq 112(%rsp),%r14 1409 vmovdqu %xmm12,96(%rbp) 1410 vpxor %xmm12,%xmm15,%xmm8 1411 vmovups %xmm9,-16(%r15) 1412 subq 120(%rsp),%r15 1413 vmovdqu %xmm13,112(%rbp) 1414 vpxor %xmm13,%xmm15,%xmm9 1415 1416 xorq $128,%rbp 1417 decl %edx 1418 jnz .Loop_dec8x 1419 1420 movq 16(%rsp),%rax 1421 1422 1423 1424 1425 1426.Ldec8x_done: 1427 vzeroupper 1428 movq -48(%rax),%r15 1429 movq -40(%rax),%r14 1430 movq -32(%rax),%r13 1431 movq -24(%rax),%r12 1432 movq -16(%rax),%rbp 1433 movq -8(%rax),%rbx 1434 leaq (%rax),%rsp 1435.Ldec8x_epilogue: 1436 .byte 0xf3,0xc3 1437.size aesni_multi_cbc_decrypt_avx,.-aesni_multi_cbc_decrypt_avx 1438