1#include <machine/asm.h> 2.text 3 4 5.globl aesni_cbc_sha1_enc 6.type aesni_cbc_sha1_enc,@function 7.align 32 8aesni_cbc_sha1_enc: 9.cfi_startproc 10 11 movl OPENSSL_ia32cap_P+0(%rip),%r10d 12 movq OPENSSL_ia32cap_P+4(%rip),%r11 13 btq $61,%r11 14 jc aesni_cbc_sha1_enc_shaext 15 andl $268435456,%r11d 16 andl $1073741824,%r10d 17 orl %r11d,%r10d 18 cmpl $1342177280,%r10d 19 je aesni_cbc_sha1_enc_avx 20 jmp aesni_cbc_sha1_enc_ssse3 21 .byte 0xf3,0xc3 22.cfi_endproc 23.size aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc 24.type aesni_cbc_sha1_enc_ssse3,@function 25.align 32 26aesni_cbc_sha1_enc_ssse3: 27.cfi_startproc 28 movq 8(%rsp),%r10 29 30 31 pushq %rbx 32.cfi_adjust_cfa_offset 8 33.cfi_offset %rbx,-16 34 pushq %rbp 35.cfi_adjust_cfa_offset 8 36.cfi_offset %rbp,-24 37 pushq %r12 38.cfi_adjust_cfa_offset 8 39.cfi_offset %r12,-32 40 pushq %r13 41.cfi_adjust_cfa_offset 8 42.cfi_offset %r13,-40 43 pushq %r14 44.cfi_adjust_cfa_offset 8 45.cfi_offset %r14,-48 46 pushq %r15 47.cfi_adjust_cfa_offset 8 48.cfi_offset %r15,-56 49 leaq -104(%rsp),%rsp 50.cfi_adjust_cfa_offset 104 51 52 53 movq %rdi,%r12 54 movq %rsi,%r13 55 movq %rdx,%r14 56 leaq 112(%rcx),%r15 57 movdqu (%r8),%xmm2 58 movq %r8,88(%rsp) 59 shlq $6,%r14 60 subq %r12,%r13 61 movl 240-112(%r15),%r8d 62 addq %r10,%r14 63 64 leaq K_XX_XX(%rip),%r11 65 movl 0(%r9),%eax 66 movl 4(%r9),%ebx 67 movl 8(%r9),%ecx 68 movl 12(%r9),%edx 69 movl %ebx,%esi 70 movl 16(%r9),%ebp 71 movl %ecx,%edi 72 xorl %edx,%edi 73 andl %edi,%esi 74 75 movdqa 64(%r11),%xmm3 76 movdqa 0(%r11),%xmm13 77 movdqu 0(%r10),%xmm4 78 movdqu 16(%r10),%xmm5 79 movdqu 32(%r10),%xmm6 80 movdqu 48(%r10),%xmm7 81.byte 102,15,56,0,227 82.byte 102,15,56,0,235 83.byte 102,15,56,0,243 84 addq $64,%r10 85 paddd %xmm13,%xmm4 86.byte 102,15,56,0,251 87 paddd %xmm13,%xmm5 88 paddd %xmm13,%xmm6 89 movdqa %xmm4,0(%rsp) 90 psubd %xmm13,%xmm4 91 movdqa %xmm5,16(%rsp) 92 psubd %xmm13,%xmm5 93 movdqa %xmm6,32(%rsp) 94 psubd %xmm13,%xmm6 95 movups -112(%r15),%xmm15 96 movups 16-112(%r15),%xmm0 97 jmp .Loop_ssse3 98.align 32 99.Loop_ssse3: 100 rorl $2,%ebx 101 movups 0(%r12),%xmm14 102 xorps %xmm15,%xmm14 103 xorps %xmm14,%xmm2 104 movups -80(%r15),%xmm1 105.byte 102,15,56,220,208 106 pshufd $238,%xmm4,%xmm8 107 xorl %edx,%esi 108 movdqa %xmm7,%xmm12 109 paddd %xmm7,%xmm13 110 movl %eax,%edi 111 addl 0(%rsp),%ebp 112 punpcklqdq %xmm5,%xmm8 113 xorl %ecx,%ebx 114 roll $5,%eax 115 addl %esi,%ebp 116 psrldq $4,%xmm12 117 andl %ebx,%edi 118 xorl %ecx,%ebx 119 pxor %xmm4,%xmm8 120 addl %eax,%ebp 121 rorl $7,%eax 122 pxor %xmm6,%xmm12 123 xorl %ecx,%edi 124 movl %ebp,%esi 125 addl 4(%rsp),%edx 126 pxor %xmm12,%xmm8 127 xorl %ebx,%eax 128 roll $5,%ebp 129 movdqa %xmm13,48(%rsp) 130 addl %edi,%edx 131 movups -64(%r15),%xmm0 132.byte 102,15,56,220,209 133 andl %eax,%esi 134 movdqa %xmm8,%xmm3 135 xorl %ebx,%eax 136 addl %ebp,%edx 137 rorl $7,%ebp 138 movdqa %xmm8,%xmm12 139 xorl %ebx,%esi 140 pslldq $12,%xmm3 141 paddd %xmm8,%xmm8 142 movl %edx,%edi 143 addl 8(%rsp),%ecx 144 psrld $31,%xmm12 145 xorl %eax,%ebp 146 roll $5,%edx 147 addl %esi,%ecx 148 movdqa %xmm3,%xmm13 149 andl %ebp,%edi 150 xorl %eax,%ebp 151 psrld $30,%xmm3 152 addl %edx,%ecx 153 rorl $7,%edx 154 por %xmm12,%xmm8 155 xorl %eax,%edi 156 movl %ecx,%esi 157 addl 12(%rsp),%ebx 158 movups -48(%r15),%xmm1 159.byte 102,15,56,220,208 160 pslld $2,%xmm13 161 pxor %xmm3,%xmm8 162 xorl %ebp,%edx 163 movdqa 0(%r11),%xmm3 164 roll $5,%ecx 165 addl %edi,%ebx 166 andl %edx,%esi 167 pxor %xmm13,%xmm8 168 xorl %ebp,%edx 169 addl %ecx,%ebx 170 rorl $7,%ecx 171 pshufd $238,%xmm5,%xmm9 172 xorl %ebp,%esi 173 movdqa %xmm8,%xmm13 174 paddd %xmm8,%xmm3 175 movl %ebx,%edi 176 addl 16(%rsp),%eax 177 punpcklqdq %xmm6,%xmm9 178 xorl %edx,%ecx 179 roll $5,%ebx 180 addl %esi,%eax 181 psrldq $4,%xmm13 182 andl %ecx,%edi 183 xorl %edx,%ecx 184 pxor %xmm5,%xmm9 185 addl %ebx,%eax 186 rorl $7,%ebx 187 movups -32(%r15),%xmm0 188.byte 102,15,56,220,209 189 pxor %xmm7,%xmm13 190 xorl %edx,%edi 191 movl %eax,%esi 192 addl 20(%rsp),%ebp 193 pxor %xmm13,%xmm9 194 xorl %ecx,%ebx 195 roll $5,%eax 196 movdqa %xmm3,0(%rsp) 197 addl %edi,%ebp 198 andl %ebx,%esi 199 movdqa %xmm9,%xmm12 200 xorl %ecx,%ebx 201 addl %eax,%ebp 202 rorl $7,%eax 203 movdqa %xmm9,%xmm13 204 xorl %ecx,%esi 205 pslldq $12,%xmm12 206 paddd %xmm9,%xmm9 207 movl %ebp,%edi 208 addl 24(%rsp),%edx 209 psrld $31,%xmm13 210 xorl %ebx,%eax 211 roll $5,%ebp 212 addl %esi,%edx 213 movups -16(%r15),%xmm1 214.byte 102,15,56,220,208 215 movdqa %xmm12,%xmm3 216 andl %eax,%edi 217 xorl %ebx,%eax 218 psrld $30,%xmm12 219 addl %ebp,%edx 220 rorl $7,%ebp 221 por %xmm13,%xmm9 222 xorl %ebx,%edi 223 movl %edx,%esi 224 addl 28(%rsp),%ecx 225 pslld $2,%xmm3 226 pxor %xmm12,%xmm9 227 xorl %eax,%ebp 228 movdqa 16(%r11),%xmm12 229 roll $5,%edx 230 addl %edi,%ecx 231 andl %ebp,%esi 232 pxor %xmm3,%xmm9 233 xorl %eax,%ebp 234 addl %edx,%ecx 235 rorl $7,%edx 236 pshufd $238,%xmm6,%xmm10 237 xorl %eax,%esi 238 movdqa %xmm9,%xmm3 239 paddd %xmm9,%xmm12 240 movl %ecx,%edi 241 addl 32(%rsp),%ebx 242 movups 0(%r15),%xmm0 243.byte 102,15,56,220,209 244 punpcklqdq %xmm7,%xmm10 245 xorl %ebp,%edx 246 roll $5,%ecx 247 addl %esi,%ebx 248 psrldq $4,%xmm3 249 andl %edx,%edi 250 xorl %ebp,%edx 251 pxor %xmm6,%xmm10 252 addl %ecx,%ebx 253 rorl $7,%ecx 254 pxor %xmm8,%xmm3 255 xorl %ebp,%edi 256 movl %ebx,%esi 257 addl 36(%rsp),%eax 258 pxor %xmm3,%xmm10 259 xorl %edx,%ecx 260 roll $5,%ebx 261 movdqa %xmm12,16(%rsp) 262 addl %edi,%eax 263 andl %ecx,%esi 264 movdqa %xmm10,%xmm13 265 xorl %edx,%ecx 266 addl %ebx,%eax 267 rorl $7,%ebx 268 movups 16(%r15),%xmm1 269.byte 102,15,56,220,208 270 movdqa %xmm10,%xmm3 271 xorl %edx,%esi 272 pslldq $12,%xmm13 273 paddd %xmm10,%xmm10 274 movl %eax,%edi 275 addl 40(%rsp),%ebp 276 psrld $31,%xmm3 277 xorl %ecx,%ebx 278 roll $5,%eax 279 addl %esi,%ebp 280 movdqa %xmm13,%xmm12 281 andl %ebx,%edi 282 xorl %ecx,%ebx 283 psrld $30,%xmm13 284 addl %eax,%ebp 285 rorl $7,%eax 286 por %xmm3,%xmm10 287 xorl %ecx,%edi 288 movl %ebp,%esi 289 addl 44(%rsp),%edx 290 pslld $2,%xmm12 291 pxor %xmm13,%xmm10 292 xorl %ebx,%eax 293 movdqa 16(%r11),%xmm13 294 roll $5,%ebp 295 addl %edi,%edx 296 movups 32(%r15),%xmm0 297.byte 102,15,56,220,209 298 andl %eax,%esi 299 pxor %xmm12,%xmm10 300 xorl %ebx,%eax 301 addl %ebp,%edx 302 rorl $7,%ebp 303 pshufd $238,%xmm7,%xmm11 304 xorl %ebx,%esi 305 movdqa %xmm10,%xmm12 306 paddd %xmm10,%xmm13 307 movl %edx,%edi 308 addl 48(%rsp),%ecx 309 punpcklqdq %xmm8,%xmm11 310 xorl %eax,%ebp 311 roll $5,%edx 312 addl %esi,%ecx 313 psrldq $4,%xmm12 314 andl %ebp,%edi 315 xorl %eax,%ebp 316 pxor %xmm7,%xmm11 317 addl %edx,%ecx 318 rorl $7,%edx 319 pxor %xmm9,%xmm12 320 xorl %eax,%edi 321 movl %ecx,%esi 322 addl 52(%rsp),%ebx 323 movups 48(%r15),%xmm1 324.byte 102,15,56,220,208 325 pxor %xmm12,%xmm11 326 xorl %ebp,%edx 327 roll $5,%ecx 328 movdqa %xmm13,32(%rsp) 329 addl %edi,%ebx 330 andl %edx,%esi 331 movdqa %xmm11,%xmm3 332 xorl %ebp,%edx 333 addl %ecx,%ebx 334 rorl $7,%ecx 335 movdqa %xmm11,%xmm12 336 xorl %ebp,%esi 337 pslldq $12,%xmm3 338 paddd %xmm11,%xmm11 339 movl %ebx,%edi 340 addl 56(%rsp),%eax 341 psrld $31,%xmm12 342 xorl %edx,%ecx 343 roll $5,%ebx 344 addl %esi,%eax 345 movdqa %xmm3,%xmm13 346 andl %ecx,%edi 347 xorl %edx,%ecx 348 psrld $30,%xmm3 349 addl %ebx,%eax 350 rorl $7,%ebx 351 cmpl $11,%r8d 352 jb .Laesenclast1 353 movups 64(%r15),%xmm0 354.byte 102,15,56,220,209 355 movups 80(%r15),%xmm1 356.byte 102,15,56,220,208 357 je .Laesenclast1 358 movups 96(%r15),%xmm0 359.byte 102,15,56,220,209 360 movups 112(%r15),%xmm1 361.byte 102,15,56,220,208 362.Laesenclast1: 363.byte 102,15,56,221,209 364 movups 16-112(%r15),%xmm0 365 por %xmm12,%xmm11 366 xorl %edx,%edi 367 movl %eax,%esi 368 addl 60(%rsp),%ebp 369 pslld $2,%xmm13 370 pxor %xmm3,%xmm11 371 xorl %ecx,%ebx 372 movdqa 16(%r11),%xmm3 373 roll $5,%eax 374 addl %edi,%ebp 375 andl %ebx,%esi 376 pxor %xmm13,%xmm11 377 pshufd $238,%xmm10,%xmm13 378 xorl %ecx,%ebx 379 addl %eax,%ebp 380 rorl $7,%eax 381 pxor %xmm8,%xmm4 382 xorl %ecx,%esi 383 movl %ebp,%edi 384 addl 0(%rsp),%edx 385 punpcklqdq %xmm11,%xmm13 386 xorl %ebx,%eax 387 roll $5,%ebp 388 pxor %xmm5,%xmm4 389 addl %esi,%edx 390 movups 16(%r12),%xmm14 391 xorps %xmm15,%xmm14 392 movups %xmm2,0(%r12,%r13,1) 393 xorps %xmm14,%xmm2 394 movups -80(%r15),%xmm1 395.byte 102,15,56,220,208 396 andl %eax,%edi 397 movdqa %xmm3,%xmm12 398 xorl %ebx,%eax 399 paddd %xmm11,%xmm3 400 addl %ebp,%edx 401 pxor %xmm13,%xmm4 402 rorl $7,%ebp 403 xorl %ebx,%edi 404 movl %edx,%esi 405 addl 4(%rsp),%ecx 406 movdqa %xmm4,%xmm13 407 xorl %eax,%ebp 408 roll $5,%edx 409 movdqa %xmm3,48(%rsp) 410 addl %edi,%ecx 411 andl %ebp,%esi 412 xorl %eax,%ebp 413 pslld $2,%xmm4 414 addl %edx,%ecx 415 rorl $7,%edx 416 psrld $30,%xmm13 417 xorl %eax,%esi 418 movl %ecx,%edi 419 addl 8(%rsp),%ebx 420 movups -64(%r15),%xmm0 421.byte 102,15,56,220,209 422 por %xmm13,%xmm4 423 xorl %ebp,%edx 424 roll $5,%ecx 425 pshufd $238,%xmm11,%xmm3 426 addl %esi,%ebx 427 andl %edx,%edi 428 xorl %ebp,%edx 429 addl %ecx,%ebx 430 addl 12(%rsp),%eax 431 xorl %ebp,%edi 432 movl %ebx,%esi 433 roll $5,%ebx 434 addl %edi,%eax 435 xorl %edx,%esi 436 rorl $7,%ecx 437 addl %ebx,%eax 438 pxor %xmm9,%xmm5 439 addl 16(%rsp),%ebp 440 movups -48(%r15),%xmm1 441.byte 102,15,56,220,208 442 xorl %ecx,%esi 443 punpcklqdq %xmm4,%xmm3 444 movl %eax,%edi 445 roll $5,%eax 446 pxor %xmm6,%xmm5 447 addl %esi,%ebp 448 xorl %ecx,%edi 449 movdqa %xmm12,%xmm13 450 rorl $7,%ebx 451 paddd %xmm4,%xmm12 452 addl %eax,%ebp 453 pxor %xmm3,%xmm5 454 addl 20(%rsp),%edx 455 xorl %ebx,%edi 456 movl %ebp,%esi 457 roll $5,%ebp 458 movdqa %xmm5,%xmm3 459 addl %edi,%edx 460 xorl %ebx,%esi 461 movdqa %xmm12,0(%rsp) 462 rorl $7,%eax 463 addl %ebp,%edx 464 addl 24(%rsp),%ecx 465 pslld $2,%xmm5 466 xorl %eax,%esi 467 movl %edx,%edi 468 psrld $30,%xmm3 469 roll $5,%edx 470 addl %esi,%ecx 471 movups -32(%r15),%xmm0 472.byte 102,15,56,220,209 473 xorl %eax,%edi 474 rorl $7,%ebp 475 por %xmm3,%xmm5 476 addl %edx,%ecx 477 addl 28(%rsp),%ebx 478 pshufd $238,%xmm4,%xmm12 479 xorl %ebp,%edi 480 movl %ecx,%esi 481 roll $5,%ecx 482 addl %edi,%ebx 483 xorl %ebp,%esi 484 rorl $7,%edx 485 addl %ecx,%ebx 486 pxor %xmm10,%xmm6 487 addl 32(%rsp),%eax 488 xorl %edx,%esi 489 punpcklqdq %xmm5,%xmm12 490 movl %ebx,%edi 491 roll $5,%ebx 492 pxor %xmm7,%xmm6 493 addl %esi,%eax 494 xorl %edx,%edi 495 movdqa 32(%r11),%xmm3 496 rorl $7,%ecx 497 paddd %xmm5,%xmm13 498 addl %ebx,%eax 499 pxor %xmm12,%xmm6 500 addl 36(%rsp),%ebp 501 movups -16(%r15),%xmm1 502.byte 102,15,56,220,208 503 xorl %ecx,%edi 504 movl %eax,%esi 505 roll $5,%eax 506 movdqa %xmm6,%xmm12 507 addl %edi,%ebp 508 xorl %ecx,%esi 509 movdqa %xmm13,16(%rsp) 510 rorl $7,%ebx 511 addl %eax,%ebp 512 addl 40(%rsp),%edx 513 pslld $2,%xmm6 514 xorl %ebx,%esi 515 movl %ebp,%edi 516 psrld $30,%xmm12 517 roll $5,%ebp 518 addl %esi,%edx 519 xorl %ebx,%edi 520 rorl $7,%eax 521 por %xmm12,%xmm6 522 addl %ebp,%edx 523 addl 44(%rsp),%ecx 524 pshufd $238,%xmm5,%xmm13 525 xorl %eax,%edi 526 movl %edx,%esi 527 roll $5,%edx 528 addl %edi,%ecx 529 movups 0(%r15),%xmm0 530.byte 102,15,56,220,209 531 xorl %eax,%esi 532 rorl $7,%ebp 533 addl %edx,%ecx 534 pxor %xmm11,%xmm7 535 addl 48(%rsp),%ebx 536 xorl %ebp,%esi 537 punpcklqdq %xmm6,%xmm13 538 movl %ecx,%edi 539 roll $5,%ecx 540 pxor %xmm8,%xmm7 541 addl %esi,%ebx 542 xorl %ebp,%edi 543 movdqa %xmm3,%xmm12 544 rorl $7,%edx 545 paddd %xmm6,%xmm3 546 addl %ecx,%ebx 547 pxor %xmm13,%xmm7 548 addl 52(%rsp),%eax 549 xorl %edx,%edi 550 movl %ebx,%esi 551 roll $5,%ebx 552 movdqa %xmm7,%xmm13 553 addl %edi,%eax 554 xorl %edx,%esi 555 movdqa %xmm3,32(%rsp) 556 rorl $7,%ecx 557 addl %ebx,%eax 558 addl 56(%rsp),%ebp 559 movups 16(%r15),%xmm1 560.byte 102,15,56,220,208 561 pslld $2,%xmm7 562 xorl %ecx,%esi 563 movl %eax,%edi 564 psrld $30,%xmm13 565 roll $5,%eax 566 addl %esi,%ebp 567 xorl %ecx,%edi 568 rorl $7,%ebx 569 por %xmm13,%xmm7 570 addl %eax,%ebp 571 addl 60(%rsp),%edx 572 pshufd $238,%xmm6,%xmm3 573 xorl %ebx,%edi 574 movl %ebp,%esi 575 roll $5,%ebp 576 addl %edi,%edx 577 xorl %ebx,%esi 578 rorl $7,%eax 579 addl %ebp,%edx 580 pxor %xmm4,%xmm8 581 addl 0(%rsp),%ecx 582 xorl %eax,%esi 583 punpcklqdq %xmm7,%xmm3 584 movl %edx,%edi 585 roll $5,%edx 586 pxor %xmm9,%xmm8 587 addl %esi,%ecx 588 movups 32(%r15),%xmm0 589.byte 102,15,56,220,209 590 xorl %eax,%edi 591 movdqa %xmm12,%xmm13 592 rorl $7,%ebp 593 paddd %xmm7,%xmm12 594 addl %edx,%ecx 595 pxor %xmm3,%xmm8 596 addl 4(%rsp),%ebx 597 xorl %ebp,%edi 598 movl %ecx,%esi 599 roll $5,%ecx 600 movdqa %xmm8,%xmm3 601 addl %edi,%ebx 602 xorl %ebp,%esi 603 movdqa %xmm12,48(%rsp) 604 rorl $7,%edx 605 addl %ecx,%ebx 606 addl 8(%rsp),%eax 607 pslld $2,%xmm8 608 xorl %edx,%esi 609 movl %ebx,%edi 610 psrld $30,%xmm3 611 roll $5,%ebx 612 addl %esi,%eax 613 xorl %edx,%edi 614 rorl $7,%ecx 615 por %xmm3,%xmm8 616 addl %ebx,%eax 617 addl 12(%rsp),%ebp 618 movups 48(%r15),%xmm1 619.byte 102,15,56,220,208 620 pshufd $238,%xmm7,%xmm12 621 xorl %ecx,%edi 622 movl %eax,%esi 623 roll $5,%eax 624 addl %edi,%ebp 625 xorl %ecx,%esi 626 rorl $7,%ebx 627 addl %eax,%ebp 628 pxor %xmm5,%xmm9 629 addl 16(%rsp),%edx 630 xorl %ebx,%esi 631 punpcklqdq %xmm8,%xmm12 632 movl %ebp,%edi 633 roll $5,%ebp 634 pxor %xmm10,%xmm9 635 addl %esi,%edx 636 xorl %ebx,%edi 637 movdqa %xmm13,%xmm3 638 rorl $7,%eax 639 paddd %xmm8,%xmm13 640 addl %ebp,%edx 641 pxor %xmm12,%xmm9 642 addl 20(%rsp),%ecx 643 xorl %eax,%edi 644 movl %edx,%esi 645 roll $5,%edx 646 movdqa %xmm9,%xmm12 647 addl %edi,%ecx 648 cmpl $11,%r8d 649 jb .Laesenclast2 650 movups 64(%r15),%xmm0 651.byte 102,15,56,220,209 652 movups 80(%r15),%xmm1 653.byte 102,15,56,220,208 654 je .Laesenclast2 655 movups 96(%r15),%xmm0 656.byte 102,15,56,220,209 657 movups 112(%r15),%xmm1 658.byte 102,15,56,220,208 659.Laesenclast2: 660.byte 102,15,56,221,209 661 movups 16-112(%r15),%xmm0 662 xorl %eax,%esi 663 movdqa %xmm13,0(%rsp) 664 rorl $7,%ebp 665 addl %edx,%ecx 666 addl 24(%rsp),%ebx 667 pslld $2,%xmm9 668 xorl %ebp,%esi 669 movl %ecx,%edi 670 psrld $30,%xmm12 671 roll $5,%ecx 672 addl %esi,%ebx 673 xorl %ebp,%edi 674 rorl $7,%edx 675 por %xmm12,%xmm9 676 addl %ecx,%ebx 677 addl 28(%rsp),%eax 678 pshufd $238,%xmm8,%xmm13 679 rorl $7,%ecx 680 movl %ebx,%esi 681 xorl %edx,%edi 682 roll $5,%ebx 683 addl %edi,%eax 684 xorl %ecx,%esi 685 xorl %edx,%ecx 686 addl %ebx,%eax 687 pxor %xmm6,%xmm10 688 addl 32(%rsp),%ebp 689 movups 32(%r12),%xmm14 690 xorps %xmm15,%xmm14 691 movups %xmm2,16(%r13,%r12,1) 692 xorps %xmm14,%xmm2 693 movups -80(%r15),%xmm1 694.byte 102,15,56,220,208 695 andl %ecx,%esi 696 xorl %edx,%ecx 697 rorl $7,%ebx 698 punpcklqdq %xmm9,%xmm13 699 movl %eax,%edi 700 xorl %ecx,%esi 701 pxor %xmm11,%xmm10 702 roll $5,%eax 703 addl %esi,%ebp 704 movdqa %xmm3,%xmm12 705 xorl %ebx,%edi 706 paddd %xmm9,%xmm3 707 xorl %ecx,%ebx 708 pxor %xmm13,%xmm10 709 addl %eax,%ebp 710 addl 36(%rsp),%edx 711 andl %ebx,%edi 712 xorl %ecx,%ebx 713 rorl $7,%eax 714 movdqa %xmm10,%xmm13 715 movl %ebp,%esi 716 xorl %ebx,%edi 717 movdqa %xmm3,16(%rsp) 718 roll $5,%ebp 719 addl %edi,%edx 720 movups -64(%r15),%xmm0 721.byte 102,15,56,220,209 722 xorl %eax,%esi 723 pslld $2,%xmm10 724 xorl %ebx,%eax 725 addl %ebp,%edx 726 psrld $30,%xmm13 727 addl 40(%rsp),%ecx 728 andl %eax,%esi 729 xorl %ebx,%eax 730 por %xmm13,%xmm10 731 rorl $7,%ebp 732 movl %edx,%edi 733 xorl %eax,%esi 734 roll $5,%edx 735 pshufd $238,%xmm9,%xmm3 736 addl %esi,%ecx 737 xorl %ebp,%edi 738 xorl %eax,%ebp 739 addl %edx,%ecx 740 addl 44(%rsp),%ebx 741 andl %ebp,%edi 742 xorl %eax,%ebp 743 rorl $7,%edx 744 movups -48(%r15),%xmm1 745.byte 102,15,56,220,208 746 movl %ecx,%esi 747 xorl %ebp,%edi 748 roll $5,%ecx 749 addl %edi,%ebx 750 xorl %edx,%esi 751 xorl %ebp,%edx 752 addl %ecx,%ebx 753 pxor %xmm7,%xmm11 754 addl 48(%rsp),%eax 755 andl %edx,%esi 756 xorl %ebp,%edx 757 rorl $7,%ecx 758 punpcklqdq %xmm10,%xmm3 759 movl %ebx,%edi 760 xorl %edx,%esi 761 pxor %xmm4,%xmm11 762 roll $5,%ebx 763 addl %esi,%eax 764 movdqa 48(%r11),%xmm13 765 xorl %ecx,%edi 766 paddd %xmm10,%xmm12 767 xorl %edx,%ecx 768 pxor %xmm3,%xmm11 769 addl %ebx,%eax 770 addl 52(%rsp),%ebp 771 movups -32(%r15),%xmm0 772.byte 102,15,56,220,209 773 andl %ecx,%edi 774 xorl %edx,%ecx 775 rorl $7,%ebx 776 movdqa %xmm11,%xmm3 777 movl %eax,%esi 778 xorl %ecx,%edi 779 movdqa %xmm12,32(%rsp) 780 roll $5,%eax 781 addl %edi,%ebp 782 xorl %ebx,%esi 783 pslld $2,%xmm11 784 xorl %ecx,%ebx 785 addl %eax,%ebp 786 psrld $30,%xmm3 787 addl 56(%rsp),%edx 788 andl %ebx,%esi 789 xorl %ecx,%ebx 790 por %xmm3,%xmm11 791 rorl $7,%eax 792 movl %ebp,%edi 793 xorl %ebx,%esi 794 roll $5,%ebp 795 pshufd $238,%xmm10,%xmm12 796 addl %esi,%edx 797 movups -16(%r15),%xmm1 798.byte 102,15,56,220,208 799 xorl %eax,%edi 800 xorl %ebx,%eax 801 addl %ebp,%edx 802 addl 60(%rsp),%ecx 803 andl %eax,%edi 804 xorl %ebx,%eax 805 rorl $7,%ebp 806 movl %edx,%esi 807 xorl %eax,%edi 808 roll $5,%edx 809 addl %edi,%ecx 810 xorl %ebp,%esi 811 xorl %eax,%ebp 812 addl %edx,%ecx 813 pxor %xmm8,%xmm4 814 addl 0(%rsp),%ebx 815 andl %ebp,%esi 816 xorl %eax,%ebp 817 rorl $7,%edx 818 movups 0(%r15),%xmm0 819.byte 102,15,56,220,209 820 punpcklqdq %xmm11,%xmm12 821 movl %ecx,%edi 822 xorl %ebp,%esi 823 pxor %xmm5,%xmm4 824 roll $5,%ecx 825 addl %esi,%ebx 826 movdqa %xmm13,%xmm3 827 xorl %edx,%edi 828 paddd %xmm11,%xmm13 829 xorl %ebp,%edx 830 pxor %xmm12,%xmm4 831 addl %ecx,%ebx 832 addl 4(%rsp),%eax 833 andl %edx,%edi 834 xorl %ebp,%edx 835 rorl $7,%ecx 836 movdqa %xmm4,%xmm12 837 movl %ebx,%esi 838 xorl %edx,%edi 839 movdqa %xmm13,48(%rsp) 840 roll $5,%ebx 841 addl %edi,%eax 842 xorl %ecx,%esi 843 pslld $2,%xmm4 844 xorl %edx,%ecx 845 addl %ebx,%eax 846 psrld $30,%xmm12 847 addl 8(%rsp),%ebp 848 movups 16(%r15),%xmm1 849.byte 102,15,56,220,208 850 andl %ecx,%esi 851 xorl %edx,%ecx 852 por %xmm12,%xmm4 853 rorl $7,%ebx 854 movl %eax,%edi 855 xorl %ecx,%esi 856 roll $5,%eax 857 pshufd $238,%xmm11,%xmm13 858 addl %esi,%ebp 859 xorl %ebx,%edi 860 xorl %ecx,%ebx 861 addl %eax,%ebp 862 addl 12(%rsp),%edx 863 andl %ebx,%edi 864 xorl %ecx,%ebx 865 rorl $7,%eax 866 movl %ebp,%esi 867 xorl %ebx,%edi 868 roll $5,%ebp 869 addl %edi,%edx 870 movups 32(%r15),%xmm0 871.byte 102,15,56,220,209 872 xorl %eax,%esi 873 xorl %ebx,%eax 874 addl %ebp,%edx 875 pxor %xmm9,%xmm5 876 addl 16(%rsp),%ecx 877 andl %eax,%esi 878 xorl %ebx,%eax 879 rorl $7,%ebp 880 punpcklqdq %xmm4,%xmm13 881 movl %edx,%edi 882 xorl %eax,%esi 883 pxor %xmm6,%xmm5 884 roll $5,%edx 885 addl %esi,%ecx 886 movdqa %xmm3,%xmm12 887 xorl %ebp,%edi 888 paddd %xmm4,%xmm3 889 xorl %eax,%ebp 890 pxor %xmm13,%xmm5 891 addl %edx,%ecx 892 addl 20(%rsp),%ebx 893 andl %ebp,%edi 894 xorl %eax,%ebp 895 rorl $7,%edx 896 movups 48(%r15),%xmm1 897.byte 102,15,56,220,208 898 movdqa %xmm5,%xmm13 899 movl %ecx,%esi 900 xorl %ebp,%edi 901 movdqa %xmm3,0(%rsp) 902 roll $5,%ecx 903 addl %edi,%ebx 904 xorl %edx,%esi 905 pslld $2,%xmm5 906 xorl %ebp,%edx 907 addl %ecx,%ebx 908 psrld $30,%xmm13 909 addl 24(%rsp),%eax 910 andl %edx,%esi 911 xorl %ebp,%edx 912 por %xmm13,%xmm5 913 rorl $7,%ecx 914 movl %ebx,%edi 915 xorl %edx,%esi 916 roll $5,%ebx 917 pshufd $238,%xmm4,%xmm3 918 addl %esi,%eax 919 xorl %ecx,%edi 920 xorl %edx,%ecx 921 addl %ebx,%eax 922 addl 28(%rsp),%ebp 923 cmpl $11,%r8d 924 jb .Laesenclast3 925 movups 64(%r15),%xmm0 926.byte 102,15,56,220,209 927 movups 80(%r15),%xmm1 928.byte 102,15,56,220,208 929 je .Laesenclast3 930 movups 96(%r15),%xmm0 931.byte 102,15,56,220,209 932 movups 112(%r15),%xmm1 933.byte 102,15,56,220,208 934.Laesenclast3: 935.byte 102,15,56,221,209 936 movups 16-112(%r15),%xmm0 937 andl %ecx,%edi 938 xorl %edx,%ecx 939 rorl $7,%ebx 940 movl %eax,%esi 941 xorl %ecx,%edi 942 roll $5,%eax 943 addl %edi,%ebp 944 xorl %ebx,%esi 945 xorl %ecx,%ebx 946 addl %eax,%ebp 947 pxor %xmm10,%xmm6 948 addl 32(%rsp),%edx 949 andl %ebx,%esi 950 xorl %ecx,%ebx 951 rorl $7,%eax 952 punpcklqdq %xmm5,%xmm3 953 movl %ebp,%edi 954 xorl %ebx,%esi 955 pxor %xmm7,%xmm6 956 roll $5,%ebp 957 addl %esi,%edx 958 movups 48(%r12),%xmm14 959 xorps %xmm15,%xmm14 960 movups %xmm2,32(%r13,%r12,1) 961 xorps %xmm14,%xmm2 962 movups -80(%r15),%xmm1 963.byte 102,15,56,220,208 964 movdqa %xmm12,%xmm13 965 xorl %eax,%edi 966 paddd %xmm5,%xmm12 967 xorl %ebx,%eax 968 pxor %xmm3,%xmm6 969 addl %ebp,%edx 970 addl 36(%rsp),%ecx 971 andl %eax,%edi 972 xorl %ebx,%eax 973 rorl $7,%ebp 974 movdqa %xmm6,%xmm3 975 movl %edx,%esi 976 xorl %eax,%edi 977 movdqa %xmm12,16(%rsp) 978 roll $5,%edx 979 addl %edi,%ecx 980 xorl %ebp,%esi 981 pslld $2,%xmm6 982 xorl %eax,%ebp 983 addl %edx,%ecx 984 psrld $30,%xmm3 985 addl 40(%rsp),%ebx 986 andl %ebp,%esi 987 xorl %eax,%ebp 988 por %xmm3,%xmm6 989 rorl $7,%edx 990 movups -64(%r15),%xmm0 991.byte 102,15,56,220,209 992 movl %ecx,%edi 993 xorl %ebp,%esi 994 roll $5,%ecx 995 pshufd $238,%xmm5,%xmm12 996 addl %esi,%ebx 997 xorl %edx,%edi 998 xorl %ebp,%edx 999 addl %ecx,%ebx 1000 addl 44(%rsp),%eax 1001 andl %edx,%edi 1002 xorl %ebp,%edx 1003 rorl $7,%ecx 1004 movl %ebx,%esi 1005 xorl %edx,%edi 1006 roll $5,%ebx 1007 addl %edi,%eax 1008 xorl %edx,%esi 1009 addl %ebx,%eax 1010 pxor %xmm11,%xmm7 1011 addl 48(%rsp),%ebp 1012 movups -48(%r15),%xmm1 1013.byte 102,15,56,220,208 1014 xorl %ecx,%esi 1015 punpcklqdq %xmm6,%xmm12 1016 movl %eax,%edi 1017 roll $5,%eax 1018 pxor %xmm8,%xmm7 1019 addl %esi,%ebp 1020 xorl %ecx,%edi 1021 movdqa %xmm13,%xmm3 1022 rorl $7,%ebx 1023 paddd %xmm6,%xmm13 1024 addl %eax,%ebp 1025 pxor %xmm12,%xmm7 1026 addl 52(%rsp),%edx 1027 xorl %ebx,%edi 1028 movl %ebp,%esi 1029 roll $5,%ebp 1030 movdqa %xmm7,%xmm12 1031 addl %edi,%edx 1032 xorl %ebx,%esi 1033 movdqa %xmm13,32(%rsp) 1034 rorl $7,%eax 1035 addl %ebp,%edx 1036 addl 56(%rsp),%ecx 1037 pslld $2,%xmm7 1038 xorl %eax,%esi 1039 movl %edx,%edi 1040 psrld $30,%xmm12 1041 roll $5,%edx 1042 addl %esi,%ecx 1043 movups -32(%r15),%xmm0 1044.byte 102,15,56,220,209 1045 xorl %eax,%edi 1046 rorl $7,%ebp 1047 por %xmm12,%xmm7 1048 addl %edx,%ecx 1049 addl 60(%rsp),%ebx 1050 xorl %ebp,%edi 1051 movl %ecx,%esi 1052 roll $5,%ecx 1053 addl %edi,%ebx 1054 xorl %ebp,%esi 1055 rorl $7,%edx 1056 addl %ecx,%ebx 1057 addl 0(%rsp),%eax 1058 xorl %edx,%esi 1059 movl %ebx,%edi 1060 roll $5,%ebx 1061 paddd %xmm7,%xmm3 1062 addl %esi,%eax 1063 xorl %edx,%edi 1064 movdqa %xmm3,48(%rsp) 1065 rorl $7,%ecx 1066 addl %ebx,%eax 1067 addl 4(%rsp),%ebp 1068 movups -16(%r15),%xmm1 1069.byte 102,15,56,220,208 1070 xorl %ecx,%edi 1071 movl %eax,%esi 1072 roll $5,%eax 1073 addl %edi,%ebp 1074 xorl %ecx,%esi 1075 rorl $7,%ebx 1076 addl %eax,%ebp 1077 addl 8(%rsp),%edx 1078 xorl %ebx,%esi 1079 movl %ebp,%edi 1080 roll $5,%ebp 1081 addl %esi,%edx 1082 xorl %ebx,%edi 1083 rorl $7,%eax 1084 addl %ebp,%edx 1085 addl 12(%rsp),%ecx 1086 xorl %eax,%edi 1087 movl %edx,%esi 1088 roll $5,%edx 1089 addl %edi,%ecx 1090 movups 0(%r15),%xmm0 1091.byte 102,15,56,220,209 1092 xorl %eax,%esi 1093 rorl $7,%ebp 1094 addl %edx,%ecx 1095 cmpq %r14,%r10 1096 je .Ldone_ssse3 1097 movdqa 64(%r11),%xmm3 1098 movdqa 0(%r11),%xmm13 1099 movdqu 0(%r10),%xmm4 1100 movdqu 16(%r10),%xmm5 1101 movdqu 32(%r10),%xmm6 1102 movdqu 48(%r10),%xmm7 1103.byte 102,15,56,0,227 1104 addq $64,%r10 1105 addl 16(%rsp),%ebx 1106 xorl %ebp,%esi 1107 movl %ecx,%edi 1108.byte 102,15,56,0,235 1109 roll $5,%ecx 1110 addl %esi,%ebx 1111 xorl %ebp,%edi 1112 rorl $7,%edx 1113 paddd %xmm13,%xmm4 1114 addl %ecx,%ebx 1115 addl 20(%rsp),%eax 1116 xorl %edx,%edi 1117 movl %ebx,%esi 1118 movdqa %xmm4,0(%rsp) 1119 roll $5,%ebx 1120 addl %edi,%eax 1121 xorl %edx,%esi 1122 rorl $7,%ecx 1123 psubd %xmm13,%xmm4 1124 addl %ebx,%eax 1125 addl 24(%rsp),%ebp 1126 movups 16(%r15),%xmm1 1127.byte 102,15,56,220,208 1128 xorl %ecx,%esi 1129 movl %eax,%edi 1130 roll $5,%eax 1131 addl %esi,%ebp 1132 xorl %ecx,%edi 1133 rorl $7,%ebx 1134 addl %eax,%ebp 1135 addl 28(%rsp),%edx 1136 xorl %ebx,%edi 1137 movl %ebp,%esi 1138 roll $5,%ebp 1139 addl %edi,%edx 1140 xorl %ebx,%esi 1141 rorl $7,%eax 1142 addl %ebp,%edx 1143 addl 32(%rsp),%ecx 1144 xorl %eax,%esi 1145 movl %edx,%edi 1146.byte 102,15,56,0,243 1147 roll $5,%edx 1148 addl %esi,%ecx 1149 movups 32(%r15),%xmm0 1150.byte 102,15,56,220,209 1151 xorl %eax,%edi 1152 rorl $7,%ebp 1153 paddd %xmm13,%xmm5 1154 addl %edx,%ecx 1155 addl 36(%rsp),%ebx 1156 xorl %ebp,%edi 1157 movl %ecx,%esi 1158 movdqa %xmm5,16(%rsp) 1159 roll $5,%ecx 1160 addl %edi,%ebx 1161 xorl %ebp,%esi 1162 rorl $7,%edx 1163 psubd %xmm13,%xmm5 1164 addl %ecx,%ebx 1165 addl 40(%rsp),%eax 1166 xorl %edx,%esi 1167 movl %ebx,%edi 1168 roll $5,%ebx 1169 addl %esi,%eax 1170 xorl %edx,%edi 1171 rorl $7,%ecx 1172 addl %ebx,%eax 1173 addl 44(%rsp),%ebp 1174 movups 48(%r15),%xmm1 1175.byte 102,15,56,220,208 1176 xorl %ecx,%edi 1177 movl %eax,%esi 1178 roll $5,%eax 1179 addl %edi,%ebp 1180 xorl %ecx,%esi 1181 rorl $7,%ebx 1182 addl %eax,%ebp 1183 addl 48(%rsp),%edx 1184 xorl %ebx,%esi 1185 movl %ebp,%edi 1186.byte 102,15,56,0,251 1187 roll $5,%ebp 1188 addl %esi,%edx 1189 xorl %ebx,%edi 1190 rorl $7,%eax 1191 paddd %xmm13,%xmm6 1192 addl %ebp,%edx 1193 addl 52(%rsp),%ecx 1194 xorl %eax,%edi 1195 movl %edx,%esi 1196 movdqa %xmm6,32(%rsp) 1197 roll $5,%edx 1198 addl %edi,%ecx 1199 cmpl $11,%r8d 1200 jb .Laesenclast4 1201 movups 64(%r15),%xmm0 1202.byte 102,15,56,220,209 1203 movups 80(%r15),%xmm1 1204.byte 102,15,56,220,208 1205 je .Laesenclast4 1206 movups 96(%r15),%xmm0 1207.byte 102,15,56,220,209 1208 movups 112(%r15),%xmm1 1209.byte 102,15,56,220,208 1210.Laesenclast4: 1211.byte 102,15,56,221,209 1212 movups 16-112(%r15),%xmm0 1213 xorl %eax,%esi 1214 rorl $7,%ebp 1215 psubd %xmm13,%xmm6 1216 addl %edx,%ecx 1217 addl 56(%rsp),%ebx 1218 xorl %ebp,%esi 1219 movl %ecx,%edi 1220 roll $5,%ecx 1221 addl %esi,%ebx 1222 xorl %ebp,%edi 1223 rorl $7,%edx 1224 addl %ecx,%ebx 1225 addl 60(%rsp),%eax 1226 xorl %edx,%edi 1227 movl %ebx,%esi 1228 roll $5,%ebx 1229 addl %edi,%eax 1230 rorl $7,%ecx 1231 addl %ebx,%eax 1232 movups %xmm2,48(%r13,%r12,1) 1233 leaq 64(%r12),%r12 1234 1235 addl 0(%r9),%eax 1236 addl 4(%r9),%esi 1237 addl 8(%r9),%ecx 1238 addl 12(%r9),%edx 1239 movl %eax,0(%r9) 1240 addl 16(%r9),%ebp 1241 movl %esi,4(%r9) 1242 movl %esi,%ebx 1243 movl %ecx,8(%r9) 1244 movl %ecx,%edi 1245 movl %edx,12(%r9) 1246 xorl %edx,%edi 1247 movl %ebp,16(%r9) 1248 andl %edi,%esi 1249 jmp .Loop_ssse3 1250 1251.Ldone_ssse3: 1252 addl 16(%rsp),%ebx 1253 xorl %ebp,%esi 1254 movl %ecx,%edi 1255 roll $5,%ecx 1256 addl %esi,%ebx 1257 xorl %ebp,%edi 1258 rorl $7,%edx 1259 addl %ecx,%ebx 1260 addl 20(%rsp),%eax 1261 xorl %edx,%edi 1262 movl %ebx,%esi 1263 roll $5,%ebx 1264 addl %edi,%eax 1265 xorl %edx,%esi 1266 rorl $7,%ecx 1267 addl %ebx,%eax 1268 addl 24(%rsp),%ebp 1269 movups 16(%r15),%xmm1 1270.byte 102,15,56,220,208 1271 xorl %ecx,%esi 1272 movl %eax,%edi 1273 roll $5,%eax 1274 addl %esi,%ebp 1275 xorl %ecx,%edi 1276 rorl $7,%ebx 1277 addl %eax,%ebp 1278 addl 28(%rsp),%edx 1279 xorl %ebx,%edi 1280 movl %ebp,%esi 1281 roll $5,%ebp 1282 addl %edi,%edx 1283 xorl %ebx,%esi 1284 rorl $7,%eax 1285 addl %ebp,%edx 1286 addl 32(%rsp),%ecx 1287 xorl %eax,%esi 1288 movl %edx,%edi 1289 roll $5,%edx 1290 addl %esi,%ecx 1291 movups 32(%r15),%xmm0 1292.byte 102,15,56,220,209 1293 xorl %eax,%edi 1294 rorl $7,%ebp 1295 addl %edx,%ecx 1296 addl 36(%rsp),%ebx 1297 xorl %ebp,%edi 1298 movl %ecx,%esi 1299 roll $5,%ecx 1300 addl %edi,%ebx 1301 xorl %ebp,%esi 1302 rorl $7,%edx 1303 addl %ecx,%ebx 1304 addl 40(%rsp),%eax 1305 xorl %edx,%esi 1306 movl %ebx,%edi 1307 roll $5,%ebx 1308 addl %esi,%eax 1309 xorl %edx,%edi 1310 rorl $7,%ecx 1311 addl %ebx,%eax 1312 addl 44(%rsp),%ebp 1313 movups 48(%r15),%xmm1 1314.byte 102,15,56,220,208 1315 xorl %ecx,%edi 1316 movl %eax,%esi 1317 roll $5,%eax 1318 addl %edi,%ebp 1319 xorl %ecx,%esi 1320 rorl $7,%ebx 1321 addl %eax,%ebp 1322 addl 48(%rsp),%edx 1323 xorl %ebx,%esi 1324 movl %ebp,%edi 1325 roll $5,%ebp 1326 addl %esi,%edx 1327 xorl %ebx,%edi 1328 rorl $7,%eax 1329 addl %ebp,%edx 1330 addl 52(%rsp),%ecx 1331 xorl %eax,%edi 1332 movl %edx,%esi 1333 roll $5,%edx 1334 addl %edi,%ecx 1335 cmpl $11,%r8d 1336 jb .Laesenclast5 1337 movups 64(%r15),%xmm0 1338.byte 102,15,56,220,209 1339 movups 80(%r15),%xmm1 1340.byte 102,15,56,220,208 1341 je .Laesenclast5 1342 movups 96(%r15),%xmm0 1343.byte 102,15,56,220,209 1344 movups 112(%r15),%xmm1 1345.byte 102,15,56,220,208 1346.Laesenclast5: 1347.byte 102,15,56,221,209 1348 movups 16-112(%r15),%xmm0 1349 xorl %eax,%esi 1350 rorl $7,%ebp 1351 addl %edx,%ecx 1352 addl 56(%rsp),%ebx 1353 xorl %ebp,%esi 1354 movl %ecx,%edi 1355 roll $5,%ecx 1356 addl %esi,%ebx 1357 xorl %ebp,%edi 1358 rorl $7,%edx 1359 addl %ecx,%ebx 1360 addl 60(%rsp),%eax 1361 xorl %edx,%edi 1362 movl %ebx,%esi 1363 roll $5,%ebx 1364 addl %edi,%eax 1365 rorl $7,%ecx 1366 addl %ebx,%eax 1367 movups %xmm2,48(%r13,%r12,1) 1368 movq 88(%rsp),%r8 1369 1370 addl 0(%r9),%eax 1371 addl 4(%r9),%esi 1372 addl 8(%r9),%ecx 1373 movl %eax,0(%r9) 1374 addl 12(%r9),%edx 1375 movl %esi,4(%r9) 1376 addl 16(%r9),%ebp 1377 movl %ecx,8(%r9) 1378 movl %edx,12(%r9) 1379 movl %ebp,16(%r9) 1380 movups %xmm2,(%r8) 1381 leaq 104(%rsp),%rsi 1382.cfi_def_cfa %rsi,56 1383 movq 0(%rsi),%r15 1384.cfi_restore %r15 1385 movq 8(%rsi),%r14 1386.cfi_restore %r14 1387 movq 16(%rsi),%r13 1388.cfi_restore %r13 1389 movq 24(%rsi),%r12 1390.cfi_restore %r12 1391 movq 32(%rsi),%rbp 1392.cfi_restore %rbp 1393 movq 40(%rsi),%rbx 1394.cfi_restore %rbx 1395 leaq 48(%rsi),%rsp 1396.cfi_def_cfa %rsp,8 1397.Lepilogue_ssse3: 1398 .byte 0xf3,0xc3 1399.cfi_endproc 1400.size aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3 1401.type aesni_cbc_sha1_enc_avx,@function 1402.align 32 1403aesni_cbc_sha1_enc_avx: 1404.cfi_startproc 1405 movq 8(%rsp),%r10 1406 1407 1408 pushq %rbx 1409.cfi_adjust_cfa_offset 8 1410.cfi_offset %rbx,-16 1411 pushq %rbp 1412.cfi_adjust_cfa_offset 8 1413.cfi_offset %rbp,-24 1414 pushq %r12 1415.cfi_adjust_cfa_offset 8 1416.cfi_offset %r12,-32 1417 pushq %r13 1418.cfi_adjust_cfa_offset 8 1419.cfi_offset %r13,-40 1420 pushq %r14 1421.cfi_adjust_cfa_offset 8 1422.cfi_offset %r14,-48 1423 pushq %r15 1424.cfi_adjust_cfa_offset 8 1425.cfi_offset %r15,-56 1426 leaq -104(%rsp),%rsp 1427.cfi_adjust_cfa_offset 104 1428 1429 1430 vzeroall 1431 movq %rdi,%r12 1432 movq %rsi,%r13 1433 movq %rdx,%r14 1434 leaq 112(%rcx),%r15 1435 vmovdqu (%r8),%xmm12 1436 movq %r8,88(%rsp) 1437 shlq $6,%r14 1438 subq %r12,%r13 1439 movl 240-112(%r15),%r8d 1440 addq %r10,%r14 1441 1442 leaq K_XX_XX(%rip),%r11 1443 movl 0(%r9),%eax 1444 movl 4(%r9),%ebx 1445 movl 8(%r9),%ecx 1446 movl 12(%r9),%edx 1447 movl %ebx,%esi 1448 movl 16(%r9),%ebp 1449 movl %ecx,%edi 1450 xorl %edx,%edi 1451 andl %edi,%esi 1452 1453 vmovdqa 64(%r11),%xmm6 1454 vmovdqa 0(%r11),%xmm10 1455 vmovdqu 0(%r10),%xmm0 1456 vmovdqu 16(%r10),%xmm1 1457 vmovdqu 32(%r10),%xmm2 1458 vmovdqu 48(%r10),%xmm3 1459 vpshufb %xmm6,%xmm0,%xmm0 1460 addq $64,%r10 1461 vpshufb %xmm6,%xmm1,%xmm1 1462 vpshufb %xmm6,%xmm2,%xmm2 1463 vpshufb %xmm6,%xmm3,%xmm3 1464 vpaddd %xmm10,%xmm0,%xmm4 1465 vpaddd %xmm10,%xmm1,%xmm5 1466 vpaddd %xmm10,%xmm2,%xmm6 1467 vmovdqa %xmm4,0(%rsp) 1468 vmovdqa %xmm5,16(%rsp) 1469 vmovdqa %xmm6,32(%rsp) 1470 vmovups -112(%r15),%xmm15 1471 vmovups 16-112(%r15),%xmm14 1472 jmp .Loop_avx 1473.align 32 1474.Loop_avx: 1475 shrdl $2,%ebx,%ebx 1476 vmovdqu 0(%r12),%xmm13 1477 vpxor %xmm15,%xmm13,%xmm13 1478 vpxor %xmm13,%xmm12,%xmm12 1479 vaesenc %xmm14,%xmm12,%xmm12 1480 vmovups -80(%r15),%xmm15 1481 xorl %edx,%esi 1482 vpalignr $8,%xmm0,%xmm1,%xmm4 1483 movl %eax,%edi 1484 addl 0(%rsp),%ebp 1485 vpaddd %xmm3,%xmm10,%xmm9 1486 xorl %ecx,%ebx 1487 shldl $5,%eax,%eax 1488 vpsrldq $4,%xmm3,%xmm8 1489 addl %esi,%ebp 1490 andl %ebx,%edi 1491 vpxor %xmm0,%xmm4,%xmm4 1492 xorl %ecx,%ebx 1493 addl %eax,%ebp 1494 vpxor %xmm2,%xmm8,%xmm8 1495 shrdl $7,%eax,%eax 1496 xorl %ecx,%edi 1497 movl %ebp,%esi 1498 addl 4(%rsp),%edx 1499 vpxor %xmm8,%xmm4,%xmm4 1500 xorl %ebx,%eax 1501 shldl $5,%ebp,%ebp 1502 vmovdqa %xmm9,48(%rsp) 1503 addl %edi,%edx 1504 vaesenc %xmm15,%xmm12,%xmm12 1505 vmovups -64(%r15),%xmm14 1506 andl %eax,%esi 1507 vpsrld $31,%xmm4,%xmm8 1508 xorl %ebx,%eax 1509 addl %ebp,%edx 1510 shrdl $7,%ebp,%ebp 1511 xorl %ebx,%esi 1512 vpslldq $12,%xmm4,%xmm9 1513 vpaddd %xmm4,%xmm4,%xmm4 1514 movl %edx,%edi 1515 addl 8(%rsp),%ecx 1516 xorl %eax,%ebp 1517 shldl $5,%edx,%edx 1518 vpor %xmm8,%xmm4,%xmm4 1519 vpsrld $30,%xmm9,%xmm8 1520 addl %esi,%ecx 1521 andl %ebp,%edi 1522 xorl %eax,%ebp 1523 addl %edx,%ecx 1524 vpslld $2,%xmm9,%xmm9 1525 vpxor %xmm8,%xmm4,%xmm4 1526 shrdl $7,%edx,%edx 1527 xorl %eax,%edi 1528 movl %ecx,%esi 1529 addl 12(%rsp),%ebx 1530 vaesenc %xmm14,%xmm12,%xmm12 1531 vmovups -48(%r15),%xmm15 1532 vpxor %xmm9,%xmm4,%xmm4 1533 xorl %ebp,%edx 1534 shldl $5,%ecx,%ecx 1535 addl %edi,%ebx 1536 andl %edx,%esi 1537 xorl %ebp,%edx 1538 addl %ecx,%ebx 1539 shrdl $7,%ecx,%ecx 1540 xorl %ebp,%esi 1541 vpalignr $8,%xmm1,%xmm2,%xmm5 1542 movl %ebx,%edi 1543 addl 16(%rsp),%eax 1544 vpaddd %xmm4,%xmm10,%xmm9 1545 xorl %edx,%ecx 1546 shldl $5,%ebx,%ebx 1547 vpsrldq $4,%xmm4,%xmm8 1548 addl %esi,%eax 1549 andl %ecx,%edi 1550 vpxor %xmm1,%xmm5,%xmm5 1551 xorl %edx,%ecx 1552 addl %ebx,%eax 1553 vpxor %xmm3,%xmm8,%xmm8 1554 shrdl $7,%ebx,%ebx 1555 vaesenc %xmm15,%xmm12,%xmm12 1556 vmovups -32(%r15),%xmm14 1557 xorl %edx,%edi 1558 movl %eax,%esi 1559 addl 20(%rsp),%ebp 1560 vpxor %xmm8,%xmm5,%xmm5 1561 xorl %ecx,%ebx 1562 shldl $5,%eax,%eax 1563 vmovdqa %xmm9,0(%rsp) 1564 addl %edi,%ebp 1565 andl %ebx,%esi 1566 vpsrld $31,%xmm5,%xmm8 1567 xorl %ecx,%ebx 1568 addl %eax,%ebp 1569 shrdl $7,%eax,%eax 1570 xorl %ecx,%esi 1571 vpslldq $12,%xmm5,%xmm9 1572 vpaddd %xmm5,%xmm5,%xmm5 1573 movl %ebp,%edi 1574 addl 24(%rsp),%edx 1575 xorl %ebx,%eax 1576 shldl $5,%ebp,%ebp 1577 vpor %xmm8,%xmm5,%xmm5 1578 vpsrld $30,%xmm9,%xmm8 1579 addl %esi,%edx 1580 vaesenc %xmm14,%xmm12,%xmm12 1581 vmovups -16(%r15),%xmm15 1582 andl %eax,%edi 1583 xorl %ebx,%eax 1584 addl %ebp,%edx 1585 vpslld $2,%xmm9,%xmm9 1586 vpxor %xmm8,%xmm5,%xmm5 1587 shrdl $7,%ebp,%ebp 1588 xorl %ebx,%edi 1589 movl %edx,%esi 1590 addl 28(%rsp),%ecx 1591 vpxor %xmm9,%xmm5,%xmm5 1592 xorl %eax,%ebp 1593 shldl $5,%edx,%edx 1594 vmovdqa 16(%r11),%xmm10 1595 addl %edi,%ecx 1596 andl %ebp,%esi 1597 xorl %eax,%ebp 1598 addl %edx,%ecx 1599 shrdl $7,%edx,%edx 1600 xorl %eax,%esi 1601 vpalignr $8,%xmm2,%xmm3,%xmm6 1602 movl %ecx,%edi 1603 addl 32(%rsp),%ebx 1604 vaesenc %xmm15,%xmm12,%xmm12 1605 vmovups 0(%r15),%xmm14 1606 vpaddd %xmm5,%xmm10,%xmm9 1607 xorl %ebp,%edx 1608 shldl $5,%ecx,%ecx 1609 vpsrldq $4,%xmm5,%xmm8 1610 addl %esi,%ebx 1611 andl %edx,%edi 1612 vpxor %xmm2,%xmm6,%xmm6 1613 xorl %ebp,%edx 1614 addl %ecx,%ebx 1615 vpxor %xmm4,%xmm8,%xmm8 1616 shrdl $7,%ecx,%ecx 1617 xorl %ebp,%edi 1618 movl %ebx,%esi 1619 addl 36(%rsp),%eax 1620 vpxor %xmm8,%xmm6,%xmm6 1621 xorl %edx,%ecx 1622 shldl $5,%ebx,%ebx 1623 vmovdqa %xmm9,16(%rsp) 1624 addl %edi,%eax 1625 andl %ecx,%esi 1626 vpsrld $31,%xmm6,%xmm8 1627 xorl %edx,%ecx 1628 addl %ebx,%eax 1629 shrdl $7,%ebx,%ebx 1630 vaesenc %xmm14,%xmm12,%xmm12 1631 vmovups 16(%r15),%xmm15 1632 xorl %edx,%esi 1633 vpslldq $12,%xmm6,%xmm9 1634 vpaddd %xmm6,%xmm6,%xmm6 1635 movl %eax,%edi 1636 addl 40(%rsp),%ebp 1637 xorl %ecx,%ebx 1638 shldl $5,%eax,%eax 1639 vpor %xmm8,%xmm6,%xmm6 1640 vpsrld $30,%xmm9,%xmm8 1641 addl %esi,%ebp 1642 andl %ebx,%edi 1643 xorl %ecx,%ebx 1644 addl %eax,%ebp 1645 vpslld $2,%xmm9,%xmm9 1646 vpxor %xmm8,%xmm6,%xmm6 1647 shrdl $7,%eax,%eax 1648 xorl %ecx,%edi 1649 movl %ebp,%esi 1650 addl 44(%rsp),%edx 1651 vpxor %xmm9,%xmm6,%xmm6 1652 xorl %ebx,%eax 1653 shldl $5,%ebp,%ebp 1654 addl %edi,%edx 1655 vaesenc %xmm15,%xmm12,%xmm12 1656 vmovups 32(%r15),%xmm14 1657 andl %eax,%esi 1658 xorl %ebx,%eax 1659 addl %ebp,%edx 1660 shrdl $7,%ebp,%ebp 1661 xorl %ebx,%esi 1662 vpalignr $8,%xmm3,%xmm4,%xmm7 1663 movl %edx,%edi 1664 addl 48(%rsp),%ecx 1665 vpaddd %xmm6,%xmm10,%xmm9 1666 xorl %eax,%ebp 1667 shldl $5,%edx,%edx 1668 vpsrldq $4,%xmm6,%xmm8 1669 addl %esi,%ecx 1670 andl %ebp,%edi 1671 vpxor %xmm3,%xmm7,%xmm7 1672 xorl %eax,%ebp 1673 addl %edx,%ecx 1674 vpxor %xmm5,%xmm8,%xmm8 1675 shrdl $7,%edx,%edx 1676 xorl %eax,%edi 1677 movl %ecx,%esi 1678 addl 52(%rsp),%ebx 1679 vaesenc %xmm14,%xmm12,%xmm12 1680 vmovups 48(%r15),%xmm15 1681 vpxor %xmm8,%xmm7,%xmm7 1682 xorl %ebp,%edx 1683 shldl $5,%ecx,%ecx 1684 vmovdqa %xmm9,32(%rsp) 1685 addl %edi,%ebx 1686 andl %edx,%esi 1687 vpsrld $31,%xmm7,%xmm8 1688 xorl %ebp,%edx 1689 addl %ecx,%ebx 1690 shrdl $7,%ecx,%ecx 1691 xorl %ebp,%esi 1692 vpslldq $12,%xmm7,%xmm9 1693 vpaddd %xmm7,%xmm7,%xmm7 1694 movl %ebx,%edi 1695 addl 56(%rsp),%eax 1696 xorl %edx,%ecx 1697 shldl $5,%ebx,%ebx 1698 vpor %xmm8,%xmm7,%xmm7 1699 vpsrld $30,%xmm9,%xmm8 1700 addl %esi,%eax 1701 andl %ecx,%edi 1702 xorl %edx,%ecx 1703 addl %ebx,%eax 1704 vpslld $2,%xmm9,%xmm9 1705 vpxor %xmm8,%xmm7,%xmm7 1706 shrdl $7,%ebx,%ebx 1707 cmpl $11,%r8d 1708 jb .Lvaesenclast6 1709 vaesenc %xmm15,%xmm12,%xmm12 1710 vmovups 64(%r15),%xmm14 1711 vaesenc %xmm14,%xmm12,%xmm12 1712 vmovups 80(%r15),%xmm15 1713 je .Lvaesenclast6 1714 vaesenc %xmm15,%xmm12,%xmm12 1715 vmovups 96(%r15),%xmm14 1716 vaesenc %xmm14,%xmm12,%xmm12 1717 vmovups 112(%r15),%xmm15 1718.Lvaesenclast6: 1719 vaesenclast %xmm15,%xmm12,%xmm12 1720 vmovups -112(%r15),%xmm15 1721 vmovups 16-112(%r15),%xmm14 1722 xorl %edx,%edi 1723 movl %eax,%esi 1724 addl 60(%rsp),%ebp 1725 vpxor %xmm9,%xmm7,%xmm7 1726 xorl %ecx,%ebx 1727 shldl $5,%eax,%eax 1728 addl %edi,%ebp 1729 andl %ebx,%esi 1730 xorl %ecx,%ebx 1731 addl %eax,%ebp 1732 vpalignr $8,%xmm6,%xmm7,%xmm8 1733 vpxor %xmm4,%xmm0,%xmm0 1734 shrdl $7,%eax,%eax 1735 xorl %ecx,%esi 1736 movl %ebp,%edi 1737 addl 0(%rsp),%edx 1738 vpxor %xmm1,%xmm0,%xmm0 1739 xorl %ebx,%eax 1740 shldl $5,%ebp,%ebp 1741 vpaddd %xmm7,%xmm10,%xmm9 1742 addl %esi,%edx 1743 vmovdqu 16(%r12),%xmm13 1744 vpxor %xmm15,%xmm13,%xmm13 1745 vmovups %xmm12,0(%r12,%r13,1) 1746 vpxor %xmm13,%xmm12,%xmm12 1747 vaesenc %xmm14,%xmm12,%xmm12 1748 vmovups -80(%r15),%xmm15 1749 andl %eax,%edi 1750 vpxor %xmm8,%xmm0,%xmm0 1751 xorl %ebx,%eax 1752 addl %ebp,%edx 1753 shrdl $7,%ebp,%ebp 1754 xorl %ebx,%edi 1755 vpsrld $30,%xmm0,%xmm8 1756 vmovdqa %xmm9,48(%rsp) 1757 movl %edx,%esi 1758 addl 4(%rsp),%ecx 1759 xorl %eax,%ebp 1760 shldl $5,%edx,%edx 1761 vpslld $2,%xmm0,%xmm0 1762 addl %edi,%ecx 1763 andl %ebp,%esi 1764 xorl %eax,%ebp 1765 addl %edx,%ecx 1766 shrdl $7,%edx,%edx 1767 xorl %eax,%esi 1768 movl %ecx,%edi 1769 addl 8(%rsp),%ebx 1770 vaesenc %xmm15,%xmm12,%xmm12 1771 vmovups -64(%r15),%xmm14 1772 vpor %xmm8,%xmm0,%xmm0 1773 xorl %ebp,%edx 1774 shldl $5,%ecx,%ecx 1775 addl %esi,%ebx 1776 andl %edx,%edi 1777 xorl %ebp,%edx 1778 addl %ecx,%ebx 1779 addl 12(%rsp),%eax 1780 xorl %ebp,%edi 1781 movl %ebx,%esi 1782 shldl $5,%ebx,%ebx 1783 addl %edi,%eax 1784 xorl %edx,%esi 1785 shrdl $7,%ecx,%ecx 1786 addl %ebx,%eax 1787 vpalignr $8,%xmm7,%xmm0,%xmm8 1788 vpxor %xmm5,%xmm1,%xmm1 1789 addl 16(%rsp),%ebp 1790 vaesenc %xmm14,%xmm12,%xmm12 1791 vmovups -48(%r15),%xmm15 1792 xorl %ecx,%esi 1793 movl %eax,%edi 1794 shldl $5,%eax,%eax 1795 vpxor %xmm2,%xmm1,%xmm1 1796 addl %esi,%ebp 1797 xorl %ecx,%edi 1798 vpaddd %xmm0,%xmm10,%xmm9 1799 shrdl $7,%ebx,%ebx 1800 addl %eax,%ebp 1801 vpxor %xmm8,%xmm1,%xmm1 1802 addl 20(%rsp),%edx 1803 xorl %ebx,%edi 1804 movl %ebp,%esi 1805 shldl $5,%ebp,%ebp 1806 vpsrld $30,%xmm1,%xmm8 1807 vmovdqa %xmm9,0(%rsp) 1808 addl %edi,%edx 1809 xorl %ebx,%esi 1810 shrdl $7,%eax,%eax 1811 addl %ebp,%edx 1812 vpslld $2,%xmm1,%xmm1 1813 addl 24(%rsp),%ecx 1814 xorl %eax,%esi 1815 movl %edx,%edi 1816 shldl $5,%edx,%edx 1817 addl %esi,%ecx 1818 vaesenc %xmm15,%xmm12,%xmm12 1819 vmovups -32(%r15),%xmm14 1820 xorl %eax,%edi 1821 shrdl $7,%ebp,%ebp 1822 addl %edx,%ecx 1823 vpor %xmm8,%xmm1,%xmm1 1824 addl 28(%rsp),%ebx 1825 xorl %ebp,%edi 1826 movl %ecx,%esi 1827 shldl $5,%ecx,%ecx 1828 addl %edi,%ebx 1829 xorl %ebp,%esi 1830 shrdl $7,%edx,%edx 1831 addl %ecx,%ebx 1832 vpalignr $8,%xmm0,%xmm1,%xmm8 1833 vpxor %xmm6,%xmm2,%xmm2 1834 addl 32(%rsp),%eax 1835 xorl %edx,%esi 1836 movl %ebx,%edi 1837 shldl $5,%ebx,%ebx 1838 vpxor %xmm3,%xmm2,%xmm2 1839 addl %esi,%eax 1840 xorl %edx,%edi 1841 vpaddd %xmm1,%xmm10,%xmm9 1842 vmovdqa 32(%r11),%xmm10 1843 shrdl $7,%ecx,%ecx 1844 addl %ebx,%eax 1845 vpxor %xmm8,%xmm2,%xmm2 1846 addl 36(%rsp),%ebp 1847 vaesenc %xmm14,%xmm12,%xmm12 1848 vmovups -16(%r15),%xmm15 1849 xorl %ecx,%edi 1850 movl %eax,%esi 1851 shldl $5,%eax,%eax 1852 vpsrld $30,%xmm2,%xmm8 1853 vmovdqa %xmm9,16(%rsp) 1854 addl %edi,%ebp 1855 xorl %ecx,%esi 1856 shrdl $7,%ebx,%ebx 1857 addl %eax,%ebp 1858 vpslld $2,%xmm2,%xmm2 1859 addl 40(%rsp),%edx 1860 xorl %ebx,%esi 1861 movl %ebp,%edi 1862 shldl $5,%ebp,%ebp 1863 addl %esi,%edx 1864 xorl %ebx,%edi 1865 shrdl $7,%eax,%eax 1866 addl %ebp,%edx 1867 vpor %xmm8,%xmm2,%xmm2 1868 addl 44(%rsp),%ecx 1869 xorl %eax,%edi 1870 movl %edx,%esi 1871 shldl $5,%edx,%edx 1872 addl %edi,%ecx 1873 vaesenc %xmm15,%xmm12,%xmm12 1874 vmovups 0(%r15),%xmm14 1875 xorl %eax,%esi 1876 shrdl $7,%ebp,%ebp 1877 addl %edx,%ecx 1878 vpalignr $8,%xmm1,%xmm2,%xmm8 1879 vpxor %xmm7,%xmm3,%xmm3 1880 addl 48(%rsp),%ebx 1881 xorl %ebp,%esi 1882 movl %ecx,%edi 1883 shldl $5,%ecx,%ecx 1884 vpxor %xmm4,%xmm3,%xmm3 1885 addl %esi,%ebx 1886 xorl %ebp,%edi 1887 vpaddd %xmm2,%xmm10,%xmm9 1888 shrdl $7,%edx,%edx 1889 addl %ecx,%ebx 1890 vpxor %xmm8,%xmm3,%xmm3 1891 addl 52(%rsp),%eax 1892 xorl %edx,%edi 1893 movl %ebx,%esi 1894 shldl $5,%ebx,%ebx 1895 vpsrld $30,%xmm3,%xmm8 1896 vmovdqa %xmm9,32(%rsp) 1897 addl %edi,%eax 1898 xorl %edx,%esi 1899 shrdl $7,%ecx,%ecx 1900 addl %ebx,%eax 1901 vpslld $2,%xmm3,%xmm3 1902 addl 56(%rsp),%ebp 1903 vaesenc %xmm14,%xmm12,%xmm12 1904 vmovups 16(%r15),%xmm15 1905 xorl %ecx,%esi 1906 movl %eax,%edi 1907 shldl $5,%eax,%eax 1908 addl %esi,%ebp 1909 xorl %ecx,%edi 1910 shrdl $7,%ebx,%ebx 1911 addl %eax,%ebp 1912 vpor %xmm8,%xmm3,%xmm3 1913 addl 60(%rsp),%edx 1914 xorl %ebx,%edi 1915 movl %ebp,%esi 1916 shldl $5,%ebp,%ebp 1917 addl %edi,%edx 1918 xorl %ebx,%esi 1919 shrdl $7,%eax,%eax 1920 addl %ebp,%edx 1921 vpalignr $8,%xmm2,%xmm3,%xmm8 1922 vpxor %xmm0,%xmm4,%xmm4 1923 addl 0(%rsp),%ecx 1924 xorl %eax,%esi 1925 movl %edx,%edi 1926 shldl $5,%edx,%edx 1927 vpxor %xmm5,%xmm4,%xmm4 1928 addl %esi,%ecx 1929 vaesenc %xmm15,%xmm12,%xmm12 1930 vmovups 32(%r15),%xmm14 1931 xorl %eax,%edi 1932 vpaddd %xmm3,%xmm10,%xmm9 1933 shrdl $7,%ebp,%ebp 1934 addl %edx,%ecx 1935 vpxor %xmm8,%xmm4,%xmm4 1936 addl 4(%rsp),%ebx 1937 xorl %ebp,%edi 1938 movl %ecx,%esi 1939 shldl $5,%ecx,%ecx 1940 vpsrld $30,%xmm4,%xmm8 1941 vmovdqa %xmm9,48(%rsp) 1942 addl %edi,%ebx 1943 xorl %ebp,%esi 1944 shrdl $7,%edx,%edx 1945 addl %ecx,%ebx 1946 vpslld $2,%xmm4,%xmm4 1947 addl 8(%rsp),%eax 1948 xorl %edx,%esi 1949 movl %ebx,%edi 1950 shldl $5,%ebx,%ebx 1951 addl %esi,%eax 1952 xorl %edx,%edi 1953 shrdl $7,%ecx,%ecx 1954 addl %ebx,%eax 1955 vpor %xmm8,%xmm4,%xmm4 1956 addl 12(%rsp),%ebp 1957 vaesenc %xmm14,%xmm12,%xmm12 1958 vmovups 48(%r15),%xmm15 1959 xorl %ecx,%edi 1960 movl %eax,%esi 1961 shldl $5,%eax,%eax 1962 addl %edi,%ebp 1963 xorl %ecx,%esi 1964 shrdl $7,%ebx,%ebx 1965 addl %eax,%ebp 1966 vpalignr $8,%xmm3,%xmm4,%xmm8 1967 vpxor %xmm1,%xmm5,%xmm5 1968 addl 16(%rsp),%edx 1969 xorl %ebx,%esi 1970 movl %ebp,%edi 1971 shldl $5,%ebp,%ebp 1972 vpxor %xmm6,%xmm5,%xmm5 1973 addl %esi,%edx 1974 xorl %ebx,%edi 1975 vpaddd %xmm4,%xmm10,%xmm9 1976 shrdl $7,%eax,%eax 1977 addl %ebp,%edx 1978 vpxor %xmm8,%xmm5,%xmm5 1979 addl 20(%rsp),%ecx 1980 xorl %eax,%edi 1981 movl %edx,%esi 1982 shldl $5,%edx,%edx 1983 vpsrld $30,%xmm5,%xmm8 1984 vmovdqa %xmm9,0(%rsp) 1985 addl %edi,%ecx 1986 cmpl $11,%r8d 1987 jb .Lvaesenclast7 1988 vaesenc %xmm15,%xmm12,%xmm12 1989 vmovups 64(%r15),%xmm14 1990 vaesenc %xmm14,%xmm12,%xmm12 1991 vmovups 80(%r15),%xmm15 1992 je .Lvaesenclast7 1993 vaesenc %xmm15,%xmm12,%xmm12 1994 vmovups 96(%r15),%xmm14 1995 vaesenc %xmm14,%xmm12,%xmm12 1996 vmovups 112(%r15),%xmm15 1997.Lvaesenclast7: 1998 vaesenclast %xmm15,%xmm12,%xmm12 1999 vmovups -112(%r15),%xmm15 2000 vmovups 16-112(%r15),%xmm14 2001 xorl %eax,%esi 2002 shrdl $7,%ebp,%ebp 2003 addl %edx,%ecx 2004 vpslld $2,%xmm5,%xmm5 2005 addl 24(%rsp),%ebx 2006 xorl %ebp,%esi 2007 movl %ecx,%edi 2008 shldl $5,%ecx,%ecx 2009 addl %esi,%ebx 2010 xorl %ebp,%edi 2011 shrdl $7,%edx,%edx 2012 addl %ecx,%ebx 2013 vpor %xmm8,%xmm5,%xmm5 2014 addl 28(%rsp),%eax 2015 shrdl $7,%ecx,%ecx 2016 movl %ebx,%esi 2017 xorl %edx,%edi 2018 shldl $5,%ebx,%ebx 2019 addl %edi,%eax 2020 xorl %ecx,%esi 2021 xorl %edx,%ecx 2022 addl %ebx,%eax 2023 vpalignr $8,%xmm4,%xmm5,%xmm8 2024 vpxor %xmm2,%xmm6,%xmm6 2025 addl 32(%rsp),%ebp 2026 vmovdqu 32(%r12),%xmm13 2027 vpxor %xmm15,%xmm13,%xmm13 2028 vmovups %xmm12,16(%r13,%r12,1) 2029 vpxor %xmm13,%xmm12,%xmm12 2030 vaesenc %xmm14,%xmm12,%xmm12 2031 vmovups -80(%r15),%xmm15 2032 andl %ecx,%esi 2033 xorl %edx,%ecx 2034 shrdl $7,%ebx,%ebx 2035 vpxor %xmm7,%xmm6,%xmm6 2036 movl %eax,%edi 2037 xorl %ecx,%esi 2038 vpaddd %xmm5,%xmm10,%xmm9 2039 shldl $5,%eax,%eax 2040 addl %esi,%ebp 2041 vpxor %xmm8,%xmm6,%xmm6 2042 xorl %ebx,%edi 2043 xorl %ecx,%ebx 2044 addl %eax,%ebp 2045 addl 36(%rsp),%edx 2046 vpsrld $30,%xmm6,%xmm8 2047 vmovdqa %xmm9,16(%rsp) 2048 andl %ebx,%edi 2049 xorl %ecx,%ebx 2050 shrdl $7,%eax,%eax 2051 movl %ebp,%esi 2052 vpslld $2,%xmm6,%xmm6 2053 xorl %ebx,%edi 2054 shldl $5,%ebp,%ebp 2055 addl %edi,%edx 2056 vaesenc %xmm15,%xmm12,%xmm12 2057 vmovups -64(%r15),%xmm14 2058 xorl %eax,%esi 2059 xorl %ebx,%eax 2060 addl %ebp,%edx 2061 addl 40(%rsp),%ecx 2062 andl %eax,%esi 2063 vpor %xmm8,%xmm6,%xmm6 2064 xorl %ebx,%eax 2065 shrdl $7,%ebp,%ebp 2066 movl %edx,%edi 2067 xorl %eax,%esi 2068 shldl $5,%edx,%edx 2069 addl %esi,%ecx 2070 xorl %ebp,%edi 2071 xorl %eax,%ebp 2072 addl %edx,%ecx 2073 addl 44(%rsp),%ebx 2074 andl %ebp,%edi 2075 xorl %eax,%ebp 2076 shrdl $7,%edx,%edx 2077 vaesenc %xmm14,%xmm12,%xmm12 2078 vmovups -48(%r15),%xmm15 2079 movl %ecx,%esi 2080 xorl %ebp,%edi 2081 shldl $5,%ecx,%ecx 2082 addl %edi,%ebx 2083 xorl %edx,%esi 2084 xorl %ebp,%edx 2085 addl %ecx,%ebx 2086 vpalignr $8,%xmm5,%xmm6,%xmm8 2087 vpxor %xmm3,%xmm7,%xmm7 2088 addl 48(%rsp),%eax 2089 andl %edx,%esi 2090 xorl %ebp,%edx 2091 shrdl $7,%ecx,%ecx 2092 vpxor %xmm0,%xmm7,%xmm7 2093 movl %ebx,%edi 2094 xorl %edx,%esi 2095 vpaddd %xmm6,%xmm10,%xmm9 2096 vmovdqa 48(%r11),%xmm10 2097 shldl $5,%ebx,%ebx 2098 addl %esi,%eax 2099 vpxor %xmm8,%xmm7,%xmm7 2100 xorl %ecx,%edi 2101 xorl %edx,%ecx 2102 addl %ebx,%eax 2103 addl 52(%rsp),%ebp 2104 vaesenc %xmm15,%xmm12,%xmm12 2105 vmovups -32(%r15),%xmm14 2106 vpsrld $30,%xmm7,%xmm8 2107 vmovdqa %xmm9,32(%rsp) 2108 andl %ecx,%edi 2109 xorl %edx,%ecx 2110 shrdl $7,%ebx,%ebx 2111 movl %eax,%esi 2112 vpslld $2,%xmm7,%xmm7 2113 xorl %ecx,%edi 2114 shldl $5,%eax,%eax 2115 addl %edi,%ebp 2116 xorl %ebx,%esi 2117 xorl %ecx,%ebx 2118 addl %eax,%ebp 2119 addl 56(%rsp),%edx 2120 andl %ebx,%esi 2121 vpor %xmm8,%xmm7,%xmm7 2122 xorl %ecx,%ebx 2123 shrdl $7,%eax,%eax 2124 movl %ebp,%edi 2125 xorl %ebx,%esi 2126 shldl $5,%ebp,%ebp 2127 addl %esi,%edx 2128 vaesenc %xmm14,%xmm12,%xmm12 2129 vmovups -16(%r15),%xmm15 2130 xorl %eax,%edi 2131 xorl %ebx,%eax 2132 addl %ebp,%edx 2133 addl 60(%rsp),%ecx 2134 andl %eax,%edi 2135 xorl %ebx,%eax 2136 shrdl $7,%ebp,%ebp 2137 movl %edx,%esi 2138 xorl %eax,%edi 2139 shldl $5,%edx,%edx 2140 addl %edi,%ecx 2141 xorl %ebp,%esi 2142 xorl %eax,%ebp 2143 addl %edx,%ecx 2144 vpalignr $8,%xmm6,%xmm7,%xmm8 2145 vpxor %xmm4,%xmm0,%xmm0 2146 addl 0(%rsp),%ebx 2147 andl %ebp,%esi 2148 xorl %eax,%ebp 2149 shrdl $7,%edx,%edx 2150 vaesenc %xmm15,%xmm12,%xmm12 2151 vmovups 0(%r15),%xmm14 2152 vpxor %xmm1,%xmm0,%xmm0 2153 movl %ecx,%edi 2154 xorl %ebp,%esi 2155 vpaddd %xmm7,%xmm10,%xmm9 2156 shldl $5,%ecx,%ecx 2157 addl %esi,%ebx 2158 vpxor %xmm8,%xmm0,%xmm0 2159 xorl %edx,%edi 2160 xorl %ebp,%edx 2161 addl %ecx,%ebx 2162 addl 4(%rsp),%eax 2163 vpsrld $30,%xmm0,%xmm8 2164 vmovdqa %xmm9,48(%rsp) 2165 andl %edx,%edi 2166 xorl %ebp,%edx 2167 shrdl $7,%ecx,%ecx 2168 movl %ebx,%esi 2169 vpslld $2,%xmm0,%xmm0 2170 xorl %edx,%edi 2171 shldl $5,%ebx,%ebx 2172 addl %edi,%eax 2173 xorl %ecx,%esi 2174 xorl %edx,%ecx 2175 addl %ebx,%eax 2176 addl 8(%rsp),%ebp 2177 vaesenc %xmm14,%xmm12,%xmm12 2178 vmovups 16(%r15),%xmm15 2179 andl %ecx,%esi 2180 vpor %xmm8,%xmm0,%xmm0 2181 xorl %edx,%ecx 2182 shrdl $7,%ebx,%ebx 2183 movl %eax,%edi 2184 xorl %ecx,%esi 2185 shldl $5,%eax,%eax 2186 addl %esi,%ebp 2187 xorl %ebx,%edi 2188 xorl %ecx,%ebx 2189 addl %eax,%ebp 2190 addl 12(%rsp),%edx 2191 andl %ebx,%edi 2192 xorl %ecx,%ebx 2193 shrdl $7,%eax,%eax 2194 movl %ebp,%esi 2195 xorl %ebx,%edi 2196 shldl $5,%ebp,%ebp 2197 addl %edi,%edx 2198 vaesenc %xmm15,%xmm12,%xmm12 2199 vmovups 32(%r15),%xmm14 2200 xorl %eax,%esi 2201 xorl %ebx,%eax 2202 addl %ebp,%edx 2203 vpalignr $8,%xmm7,%xmm0,%xmm8 2204 vpxor %xmm5,%xmm1,%xmm1 2205 addl 16(%rsp),%ecx 2206 andl %eax,%esi 2207 xorl %ebx,%eax 2208 shrdl $7,%ebp,%ebp 2209 vpxor %xmm2,%xmm1,%xmm1 2210 movl %edx,%edi 2211 xorl %eax,%esi 2212 vpaddd %xmm0,%xmm10,%xmm9 2213 shldl $5,%edx,%edx 2214 addl %esi,%ecx 2215 vpxor %xmm8,%xmm1,%xmm1 2216 xorl %ebp,%edi 2217 xorl %eax,%ebp 2218 addl %edx,%ecx 2219 addl 20(%rsp),%ebx 2220 vpsrld $30,%xmm1,%xmm8 2221 vmovdqa %xmm9,0(%rsp) 2222 andl %ebp,%edi 2223 xorl %eax,%ebp 2224 shrdl $7,%edx,%edx 2225 vaesenc %xmm14,%xmm12,%xmm12 2226 vmovups 48(%r15),%xmm15 2227 movl %ecx,%esi 2228 vpslld $2,%xmm1,%xmm1 2229 xorl %ebp,%edi 2230 shldl $5,%ecx,%ecx 2231 addl %edi,%ebx 2232 xorl %edx,%esi 2233 xorl %ebp,%edx 2234 addl %ecx,%ebx 2235 addl 24(%rsp),%eax 2236 andl %edx,%esi 2237 vpor %xmm8,%xmm1,%xmm1 2238 xorl %ebp,%edx 2239 shrdl $7,%ecx,%ecx 2240 movl %ebx,%edi 2241 xorl %edx,%esi 2242 shldl $5,%ebx,%ebx 2243 addl %esi,%eax 2244 xorl %ecx,%edi 2245 xorl %edx,%ecx 2246 addl %ebx,%eax 2247 addl 28(%rsp),%ebp 2248 cmpl $11,%r8d 2249 jb .Lvaesenclast8 2250 vaesenc %xmm15,%xmm12,%xmm12 2251 vmovups 64(%r15),%xmm14 2252 vaesenc %xmm14,%xmm12,%xmm12 2253 vmovups 80(%r15),%xmm15 2254 je .Lvaesenclast8 2255 vaesenc %xmm15,%xmm12,%xmm12 2256 vmovups 96(%r15),%xmm14 2257 vaesenc %xmm14,%xmm12,%xmm12 2258 vmovups 112(%r15),%xmm15 2259.Lvaesenclast8: 2260 vaesenclast %xmm15,%xmm12,%xmm12 2261 vmovups -112(%r15),%xmm15 2262 vmovups 16-112(%r15),%xmm14 2263 andl %ecx,%edi 2264 xorl %edx,%ecx 2265 shrdl $7,%ebx,%ebx 2266 movl %eax,%esi 2267 xorl %ecx,%edi 2268 shldl $5,%eax,%eax 2269 addl %edi,%ebp 2270 xorl %ebx,%esi 2271 xorl %ecx,%ebx 2272 addl %eax,%ebp 2273 vpalignr $8,%xmm0,%xmm1,%xmm8 2274 vpxor %xmm6,%xmm2,%xmm2 2275 addl 32(%rsp),%edx 2276 andl %ebx,%esi 2277 xorl %ecx,%ebx 2278 shrdl $7,%eax,%eax 2279 vpxor %xmm3,%xmm2,%xmm2 2280 movl %ebp,%edi 2281 xorl %ebx,%esi 2282 vpaddd %xmm1,%xmm10,%xmm9 2283 shldl $5,%ebp,%ebp 2284 addl %esi,%edx 2285 vmovdqu 48(%r12),%xmm13 2286 vpxor %xmm15,%xmm13,%xmm13 2287 vmovups %xmm12,32(%r13,%r12,1) 2288 vpxor %xmm13,%xmm12,%xmm12 2289 vaesenc %xmm14,%xmm12,%xmm12 2290 vmovups -80(%r15),%xmm15 2291 vpxor %xmm8,%xmm2,%xmm2 2292 xorl %eax,%edi 2293 xorl %ebx,%eax 2294 addl %ebp,%edx 2295 addl 36(%rsp),%ecx 2296 vpsrld $30,%xmm2,%xmm8 2297 vmovdqa %xmm9,16(%rsp) 2298 andl %eax,%edi 2299 xorl %ebx,%eax 2300 shrdl $7,%ebp,%ebp 2301 movl %edx,%esi 2302 vpslld $2,%xmm2,%xmm2 2303 xorl %eax,%edi 2304 shldl $5,%edx,%edx 2305 addl %edi,%ecx 2306 xorl %ebp,%esi 2307 xorl %eax,%ebp 2308 addl %edx,%ecx 2309 addl 40(%rsp),%ebx 2310 andl %ebp,%esi 2311 vpor %xmm8,%xmm2,%xmm2 2312 xorl %eax,%ebp 2313 shrdl $7,%edx,%edx 2314 vaesenc %xmm15,%xmm12,%xmm12 2315 vmovups -64(%r15),%xmm14 2316 movl %ecx,%edi 2317 xorl %ebp,%esi 2318 shldl $5,%ecx,%ecx 2319 addl %esi,%ebx 2320 xorl %edx,%edi 2321 xorl %ebp,%edx 2322 addl %ecx,%ebx 2323 addl 44(%rsp),%eax 2324 andl %edx,%edi 2325 xorl %ebp,%edx 2326 shrdl $7,%ecx,%ecx 2327 movl %ebx,%esi 2328 xorl %edx,%edi 2329 shldl $5,%ebx,%ebx 2330 addl %edi,%eax 2331 xorl %edx,%esi 2332 addl %ebx,%eax 2333 vpalignr $8,%xmm1,%xmm2,%xmm8 2334 vpxor %xmm7,%xmm3,%xmm3 2335 addl 48(%rsp),%ebp 2336 vaesenc %xmm14,%xmm12,%xmm12 2337 vmovups -48(%r15),%xmm15 2338 xorl %ecx,%esi 2339 movl %eax,%edi 2340 shldl $5,%eax,%eax 2341 vpxor %xmm4,%xmm3,%xmm3 2342 addl %esi,%ebp 2343 xorl %ecx,%edi 2344 vpaddd %xmm2,%xmm10,%xmm9 2345 shrdl $7,%ebx,%ebx 2346 addl %eax,%ebp 2347 vpxor %xmm8,%xmm3,%xmm3 2348 addl 52(%rsp),%edx 2349 xorl %ebx,%edi 2350 movl %ebp,%esi 2351 shldl $5,%ebp,%ebp 2352 vpsrld $30,%xmm3,%xmm8 2353 vmovdqa %xmm9,32(%rsp) 2354 addl %edi,%edx 2355 xorl %ebx,%esi 2356 shrdl $7,%eax,%eax 2357 addl %ebp,%edx 2358 vpslld $2,%xmm3,%xmm3 2359 addl 56(%rsp),%ecx 2360 xorl %eax,%esi 2361 movl %edx,%edi 2362 shldl $5,%edx,%edx 2363 addl %esi,%ecx 2364 vaesenc %xmm15,%xmm12,%xmm12 2365 vmovups -32(%r15),%xmm14 2366 xorl %eax,%edi 2367 shrdl $7,%ebp,%ebp 2368 addl %edx,%ecx 2369 vpor %xmm8,%xmm3,%xmm3 2370 addl 60(%rsp),%ebx 2371 xorl %ebp,%edi 2372 movl %ecx,%esi 2373 shldl $5,%ecx,%ecx 2374 addl %edi,%ebx 2375 xorl %ebp,%esi 2376 shrdl $7,%edx,%edx 2377 addl %ecx,%ebx 2378 addl 0(%rsp),%eax 2379 vpaddd %xmm3,%xmm10,%xmm9 2380 xorl %edx,%esi 2381 movl %ebx,%edi 2382 shldl $5,%ebx,%ebx 2383 addl %esi,%eax 2384 vmovdqa %xmm9,48(%rsp) 2385 xorl %edx,%edi 2386 shrdl $7,%ecx,%ecx 2387 addl %ebx,%eax 2388 addl 4(%rsp),%ebp 2389 vaesenc %xmm14,%xmm12,%xmm12 2390 vmovups -16(%r15),%xmm15 2391 xorl %ecx,%edi 2392 movl %eax,%esi 2393 shldl $5,%eax,%eax 2394 addl %edi,%ebp 2395 xorl %ecx,%esi 2396 shrdl $7,%ebx,%ebx 2397 addl %eax,%ebp 2398 addl 8(%rsp),%edx 2399 xorl %ebx,%esi 2400 movl %ebp,%edi 2401 shldl $5,%ebp,%ebp 2402 addl %esi,%edx 2403 xorl %ebx,%edi 2404 shrdl $7,%eax,%eax 2405 addl %ebp,%edx 2406 addl 12(%rsp),%ecx 2407 xorl %eax,%edi 2408 movl %edx,%esi 2409 shldl $5,%edx,%edx 2410 addl %edi,%ecx 2411 vaesenc %xmm15,%xmm12,%xmm12 2412 vmovups 0(%r15),%xmm14 2413 xorl %eax,%esi 2414 shrdl $7,%ebp,%ebp 2415 addl %edx,%ecx 2416 cmpq %r14,%r10 2417 je .Ldone_avx 2418 vmovdqa 64(%r11),%xmm9 2419 vmovdqa 0(%r11),%xmm10 2420 vmovdqu 0(%r10),%xmm0 2421 vmovdqu 16(%r10),%xmm1 2422 vmovdqu 32(%r10),%xmm2 2423 vmovdqu 48(%r10),%xmm3 2424 vpshufb %xmm9,%xmm0,%xmm0 2425 addq $64,%r10 2426 addl 16(%rsp),%ebx 2427 xorl %ebp,%esi 2428 vpshufb %xmm9,%xmm1,%xmm1 2429 movl %ecx,%edi 2430 shldl $5,%ecx,%ecx 2431 vpaddd %xmm10,%xmm0,%xmm8 2432 addl %esi,%ebx 2433 xorl %ebp,%edi 2434 shrdl $7,%edx,%edx 2435 addl %ecx,%ebx 2436 vmovdqa %xmm8,0(%rsp) 2437 addl 20(%rsp),%eax 2438 xorl %edx,%edi 2439 movl %ebx,%esi 2440 shldl $5,%ebx,%ebx 2441 addl %edi,%eax 2442 xorl %edx,%esi 2443 shrdl $7,%ecx,%ecx 2444 addl %ebx,%eax 2445 addl 24(%rsp),%ebp 2446 vaesenc %xmm14,%xmm12,%xmm12 2447 vmovups 16(%r15),%xmm15 2448 xorl %ecx,%esi 2449 movl %eax,%edi 2450 shldl $5,%eax,%eax 2451 addl %esi,%ebp 2452 xorl %ecx,%edi 2453 shrdl $7,%ebx,%ebx 2454 addl %eax,%ebp 2455 addl 28(%rsp),%edx 2456 xorl %ebx,%edi 2457 movl %ebp,%esi 2458 shldl $5,%ebp,%ebp 2459 addl %edi,%edx 2460 xorl %ebx,%esi 2461 shrdl $7,%eax,%eax 2462 addl %ebp,%edx 2463 addl 32(%rsp),%ecx 2464 xorl %eax,%esi 2465 vpshufb %xmm9,%xmm2,%xmm2 2466 movl %edx,%edi 2467 shldl $5,%edx,%edx 2468 vpaddd %xmm10,%xmm1,%xmm8 2469 addl %esi,%ecx 2470 vaesenc %xmm15,%xmm12,%xmm12 2471 vmovups 32(%r15),%xmm14 2472 xorl %eax,%edi 2473 shrdl $7,%ebp,%ebp 2474 addl %edx,%ecx 2475 vmovdqa %xmm8,16(%rsp) 2476 addl 36(%rsp),%ebx 2477 xorl %ebp,%edi 2478 movl %ecx,%esi 2479 shldl $5,%ecx,%ecx 2480 addl %edi,%ebx 2481 xorl %ebp,%esi 2482 shrdl $7,%edx,%edx 2483 addl %ecx,%ebx 2484 addl 40(%rsp),%eax 2485 xorl %edx,%esi 2486 movl %ebx,%edi 2487 shldl $5,%ebx,%ebx 2488 addl %esi,%eax 2489 xorl %edx,%edi 2490 shrdl $7,%ecx,%ecx 2491 addl %ebx,%eax 2492 addl 44(%rsp),%ebp 2493 vaesenc %xmm14,%xmm12,%xmm12 2494 vmovups 48(%r15),%xmm15 2495 xorl %ecx,%edi 2496 movl %eax,%esi 2497 shldl $5,%eax,%eax 2498 addl %edi,%ebp 2499 xorl %ecx,%esi 2500 shrdl $7,%ebx,%ebx 2501 addl %eax,%ebp 2502 addl 48(%rsp),%edx 2503 xorl %ebx,%esi 2504 vpshufb %xmm9,%xmm3,%xmm3 2505 movl %ebp,%edi 2506 shldl $5,%ebp,%ebp 2507 vpaddd %xmm10,%xmm2,%xmm8 2508 addl %esi,%edx 2509 xorl %ebx,%edi 2510 shrdl $7,%eax,%eax 2511 addl %ebp,%edx 2512 vmovdqa %xmm8,32(%rsp) 2513 addl 52(%rsp),%ecx 2514 xorl %eax,%edi 2515 movl %edx,%esi 2516 shldl $5,%edx,%edx 2517 addl %edi,%ecx 2518 cmpl $11,%r8d 2519 jb .Lvaesenclast9 2520 vaesenc %xmm15,%xmm12,%xmm12 2521 vmovups 64(%r15),%xmm14 2522 vaesenc %xmm14,%xmm12,%xmm12 2523 vmovups 80(%r15),%xmm15 2524 je .Lvaesenclast9 2525 vaesenc %xmm15,%xmm12,%xmm12 2526 vmovups 96(%r15),%xmm14 2527 vaesenc %xmm14,%xmm12,%xmm12 2528 vmovups 112(%r15),%xmm15 2529.Lvaesenclast9: 2530 vaesenclast %xmm15,%xmm12,%xmm12 2531 vmovups -112(%r15),%xmm15 2532 vmovups 16-112(%r15),%xmm14 2533 xorl %eax,%esi 2534 shrdl $7,%ebp,%ebp 2535 addl %edx,%ecx 2536 addl 56(%rsp),%ebx 2537 xorl %ebp,%esi 2538 movl %ecx,%edi 2539 shldl $5,%ecx,%ecx 2540 addl %esi,%ebx 2541 xorl %ebp,%edi 2542 shrdl $7,%edx,%edx 2543 addl %ecx,%ebx 2544 addl 60(%rsp),%eax 2545 xorl %edx,%edi 2546 movl %ebx,%esi 2547 shldl $5,%ebx,%ebx 2548 addl %edi,%eax 2549 shrdl $7,%ecx,%ecx 2550 addl %ebx,%eax 2551 vmovups %xmm12,48(%r13,%r12,1) 2552 leaq 64(%r12),%r12 2553 2554 addl 0(%r9),%eax 2555 addl 4(%r9),%esi 2556 addl 8(%r9),%ecx 2557 addl 12(%r9),%edx 2558 movl %eax,0(%r9) 2559 addl 16(%r9),%ebp 2560 movl %esi,4(%r9) 2561 movl %esi,%ebx 2562 movl %ecx,8(%r9) 2563 movl %ecx,%edi 2564 movl %edx,12(%r9) 2565 xorl %edx,%edi 2566 movl %ebp,16(%r9) 2567 andl %edi,%esi 2568 jmp .Loop_avx 2569 2570.Ldone_avx: 2571 addl 16(%rsp),%ebx 2572 xorl %ebp,%esi 2573 movl %ecx,%edi 2574 shldl $5,%ecx,%ecx 2575 addl %esi,%ebx 2576 xorl %ebp,%edi 2577 shrdl $7,%edx,%edx 2578 addl %ecx,%ebx 2579 addl 20(%rsp),%eax 2580 xorl %edx,%edi 2581 movl %ebx,%esi 2582 shldl $5,%ebx,%ebx 2583 addl %edi,%eax 2584 xorl %edx,%esi 2585 shrdl $7,%ecx,%ecx 2586 addl %ebx,%eax 2587 addl 24(%rsp),%ebp 2588 vaesenc %xmm14,%xmm12,%xmm12 2589 vmovups 16(%r15),%xmm15 2590 xorl %ecx,%esi 2591 movl %eax,%edi 2592 shldl $5,%eax,%eax 2593 addl %esi,%ebp 2594 xorl %ecx,%edi 2595 shrdl $7,%ebx,%ebx 2596 addl %eax,%ebp 2597 addl 28(%rsp),%edx 2598 xorl %ebx,%edi 2599 movl %ebp,%esi 2600 shldl $5,%ebp,%ebp 2601 addl %edi,%edx 2602 xorl %ebx,%esi 2603 shrdl $7,%eax,%eax 2604 addl %ebp,%edx 2605 addl 32(%rsp),%ecx 2606 xorl %eax,%esi 2607 movl %edx,%edi 2608 shldl $5,%edx,%edx 2609 addl %esi,%ecx 2610 vaesenc %xmm15,%xmm12,%xmm12 2611 vmovups 32(%r15),%xmm14 2612 xorl %eax,%edi 2613 shrdl $7,%ebp,%ebp 2614 addl %edx,%ecx 2615 addl 36(%rsp),%ebx 2616 xorl %ebp,%edi 2617 movl %ecx,%esi 2618 shldl $5,%ecx,%ecx 2619 addl %edi,%ebx 2620 xorl %ebp,%esi 2621 shrdl $7,%edx,%edx 2622 addl %ecx,%ebx 2623 addl 40(%rsp),%eax 2624 xorl %edx,%esi 2625 movl %ebx,%edi 2626 shldl $5,%ebx,%ebx 2627 addl %esi,%eax 2628 xorl %edx,%edi 2629 shrdl $7,%ecx,%ecx 2630 addl %ebx,%eax 2631 addl 44(%rsp),%ebp 2632 vaesenc %xmm14,%xmm12,%xmm12 2633 vmovups 48(%r15),%xmm15 2634 xorl %ecx,%edi 2635 movl %eax,%esi 2636 shldl $5,%eax,%eax 2637 addl %edi,%ebp 2638 xorl %ecx,%esi 2639 shrdl $7,%ebx,%ebx 2640 addl %eax,%ebp 2641 addl 48(%rsp),%edx 2642 xorl %ebx,%esi 2643 movl %ebp,%edi 2644 shldl $5,%ebp,%ebp 2645 addl %esi,%edx 2646 xorl %ebx,%edi 2647 shrdl $7,%eax,%eax 2648 addl %ebp,%edx 2649 addl 52(%rsp),%ecx 2650 xorl %eax,%edi 2651 movl %edx,%esi 2652 shldl $5,%edx,%edx 2653 addl %edi,%ecx 2654 cmpl $11,%r8d 2655 jb .Lvaesenclast10 2656 vaesenc %xmm15,%xmm12,%xmm12 2657 vmovups 64(%r15),%xmm14 2658 vaesenc %xmm14,%xmm12,%xmm12 2659 vmovups 80(%r15),%xmm15 2660 je .Lvaesenclast10 2661 vaesenc %xmm15,%xmm12,%xmm12 2662 vmovups 96(%r15),%xmm14 2663 vaesenc %xmm14,%xmm12,%xmm12 2664 vmovups 112(%r15),%xmm15 2665.Lvaesenclast10: 2666 vaesenclast %xmm15,%xmm12,%xmm12 2667 vmovups -112(%r15),%xmm15 2668 vmovups 16-112(%r15),%xmm14 2669 xorl %eax,%esi 2670 shrdl $7,%ebp,%ebp 2671 addl %edx,%ecx 2672 addl 56(%rsp),%ebx 2673 xorl %ebp,%esi 2674 movl %ecx,%edi 2675 shldl $5,%ecx,%ecx 2676 addl %esi,%ebx 2677 xorl %ebp,%edi 2678 shrdl $7,%edx,%edx 2679 addl %ecx,%ebx 2680 addl 60(%rsp),%eax 2681 xorl %edx,%edi 2682 movl %ebx,%esi 2683 shldl $5,%ebx,%ebx 2684 addl %edi,%eax 2685 shrdl $7,%ecx,%ecx 2686 addl %ebx,%eax 2687 vmovups %xmm12,48(%r13,%r12,1) 2688 movq 88(%rsp),%r8 2689 2690 addl 0(%r9),%eax 2691 addl 4(%r9),%esi 2692 addl 8(%r9),%ecx 2693 movl %eax,0(%r9) 2694 addl 12(%r9),%edx 2695 movl %esi,4(%r9) 2696 addl 16(%r9),%ebp 2697 movl %ecx,8(%r9) 2698 movl %edx,12(%r9) 2699 movl %ebp,16(%r9) 2700 vmovups %xmm12,(%r8) 2701 vzeroall 2702 leaq 104(%rsp),%rsi 2703.cfi_def_cfa %rsi,56 2704 movq 0(%rsi),%r15 2705.cfi_restore %r15 2706 movq 8(%rsi),%r14 2707.cfi_restore %r14 2708 movq 16(%rsi),%r13 2709.cfi_restore %r13 2710 movq 24(%rsi),%r12 2711.cfi_restore %r12 2712 movq 32(%rsi),%rbp 2713.cfi_restore %rbp 2714 movq 40(%rsi),%rbx 2715.cfi_restore %rbx 2716 leaq 48(%rsi),%rsp 2717.cfi_def_cfa %rsp,8 2718.Lepilogue_avx: 2719 .byte 0xf3,0xc3 2720.cfi_endproc 2721.size aesni_cbc_sha1_enc_avx,.-aesni_cbc_sha1_enc_avx 2722.align 64 2723K_XX_XX: 2724.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 2725.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 2726.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc 2727.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 2728.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f 2729.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 2730 2731.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,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 2732.align 64 2733.type aesni_cbc_sha1_enc_shaext,@function 2734.align 32 2735aesni_cbc_sha1_enc_shaext: 2736.cfi_startproc 2737 movq 8(%rsp),%r10 2738 movdqu (%r9),%xmm8 2739 movd 16(%r9),%xmm9 2740 movdqa K_XX_XX+80(%rip),%xmm7 2741 2742 movl 240(%rcx),%r11d 2743 subq %rdi,%rsi 2744 movups (%rcx),%xmm15 2745 movups (%r8),%xmm2 2746 movups 16(%rcx),%xmm0 2747 leaq 112(%rcx),%rcx 2748 2749 pshufd $27,%xmm8,%xmm8 2750 pshufd $27,%xmm9,%xmm9 2751 jmp .Loop_shaext 2752 2753.align 16 2754.Loop_shaext: 2755 movups 0(%rdi),%xmm14 2756 xorps %xmm15,%xmm14 2757 xorps %xmm14,%xmm2 2758 movups -80(%rcx),%xmm1 2759.byte 102,15,56,220,208 2760 movdqu (%r10),%xmm3 2761 movdqa %xmm9,%xmm12 2762.byte 102,15,56,0,223 2763 movdqu 16(%r10),%xmm4 2764 movdqa %xmm8,%xmm11 2765 movups -64(%rcx),%xmm0 2766.byte 102,15,56,220,209 2767.byte 102,15,56,0,231 2768 2769 paddd %xmm3,%xmm9 2770 movdqu 32(%r10),%xmm5 2771 leaq 64(%r10),%r10 2772 pxor %xmm12,%xmm3 2773 movups -48(%rcx),%xmm1 2774.byte 102,15,56,220,208 2775 pxor %xmm12,%xmm3 2776 movdqa %xmm8,%xmm10 2777.byte 102,15,56,0,239 2778.byte 69,15,58,204,193,0 2779.byte 68,15,56,200,212 2780 movups -32(%rcx),%xmm0 2781.byte 102,15,56,220,209 2782.byte 15,56,201,220 2783 movdqu -16(%r10),%xmm6 2784 movdqa %xmm8,%xmm9 2785.byte 102,15,56,0,247 2786 movups -16(%rcx),%xmm1 2787.byte 102,15,56,220,208 2788.byte 69,15,58,204,194,0 2789.byte 68,15,56,200,205 2790 pxor %xmm5,%xmm3 2791.byte 15,56,201,229 2792 movups 0(%rcx),%xmm0 2793.byte 102,15,56,220,209 2794 movdqa %xmm8,%xmm10 2795.byte 69,15,58,204,193,0 2796.byte 68,15,56,200,214 2797 movups 16(%rcx),%xmm1 2798.byte 102,15,56,220,208 2799.byte 15,56,202,222 2800 pxor %xmm6,%xmm4 2801.byte 15,56,201,238 2802 movups 32(%rcx),%xmm0 2803.byte 102,15,56,220,209 2804 movdqa %xmm8,%xmm9 2805.byte 69,15,58,204,194,0 2806.byte 68,15,56,200,203 2807 movups 48(%rcx),%xmm1 2808.byte 102,15,56,220,208 2809.byte 15,56,202,227 2810 pxor %xmm3,%xmm5 2811.byte 15,56,201,243 2812 cmpl $11,%r11d 2813 jb .Laesenclast11 2814 movups 64(%rcx),%xmm0 2815.byte 102,15,56,220,209 2816 movups 80(%rcx),%xmm1 2817.byte 102,15,56,220,208 2818 je .Laesenclast11 2819 movups 96(%rcx),%xmm0 2820.byte 102,15,56,220,209 2821 movups 112(%rcx),%xmm1 2822.byte 102,15,56,220,208 2823.Laesenclast11: 2824.byte 102,15,56,221,209 2825 movups 16-112(%rcx),%xmm0 2826 movdqa %xmm8,%xmm10 2827.byte 69,15,58,204,193,0 2828.byte 68,15,56,200,212 2829 movups 16(%rdi),%xmm14 2830 xorps %xmm15,%xmm14 2831 movups %xmm2,0(%rsi,%rdi,1) 2832 xorps %xmm14,%xmm2 2833 movups -80(%rcx),%xmm1 2834.byte 102,15,56,220,208 2835.byte 15,56,202,236 2836 pxor %xmm4,%xmm6 2837.byte 15,56,201,220 2838 movups -64(%rcx),%xmm0 2839.byte 102,15,56,220,209 2840 movdqa %xmm8,%xmm9 2841.byte 69,15,58,204,194,1 2842.byte 68,15,56,200,205 2843 movups -48(%rcx),%xmm1 2844.byte 102,15,56,220,208 2845.byte 15,56,202,245 2846 pxor %xmm5,%xmm3 2847.byte 15,56,201,229 2848 movups -32(%rcx),%xmm0 2849.byte 102,15,56,220,209 2850 movdqa %xmm8,%xmm10 2851.byte 69,15,58,204,193,1 2852.byte 68,15,56,200,214 2853 movups -16(%rcx),%xmm1 2854.byte 102,15,56,220,208 2855.byte 15,56,202,222 2856 pxor %xmm6,%xmm4 2857.byte 15,56,201,238 2858 movups 0(%rcx),%xmm0 2859.byte 102,15,56,220,209 2860 movdqa %xmm8,%xmm9 2861.byte 69,15,58,204,194,1 2862.byte 68,15,56,200,203 2863 movups 16(%rcx),%xmm1 2864.byte 102,15,56,220,208 2865.byte 15,56,202,227 2866 pxor %xmm3,%xmm5 2867.byte 15,56,201,243 2868 movups 32(%rcx),%xmm0 2869.byte 102,15,56,220,209 2870 movdqa %xmm8,%xmm10 2871.byte 69,15,58,204,193,1 2872.byte 68,15,56,200,212 2873 movups 48(%rcx),%xmm1 2874.byte 102,15,56,220,208 2875.byte 15,56,202,236 2876 pxor %xmm4,%xmm6 2877.byte 15,56,201,220 2878 cmpl $11,%r11d 2879 jb .Laesenclast12 2880 movups 64(%rcx),%xmm0 2881.byte 102,15,56,220,209 2882 movups 80(%rcx),%xmm1 2883.byte 102,15,56,220,208 2884 je .Laesenclast12 2885 movups 96(%rcx),%xmm0 2886.byte 102,15,56,220,209 2887 movups 112(%rcx),%xmm1 2888.byte 102,15,56,220,208 2889.Laesenclast12: 2890.byte 102,15,56,221,209 2891 movups 16-112(%rcx),%xmm0 2892 movdqa %xmm8,%xmm9 2893.byte 69,15,58,204,194,1 2894.byte 68,15,56,200,205 2895 movups 32(%rdi),%xmm14 2896 xorps %xmm15,%xmm14 2897 movups %xmm2,16(%rsi,%rdi,1) 2898 xorps %xmm14,%xmm2 2899 movups -80(%rcx),%xmm1 2900.byte 102,15,56,220,208 2901.byte 15,56,202,245 2902 pxor %xmm5,%xmm3 2903.byte 15,56,201,229 2904 movups -64(%rcx),%xmm0 2905.byte 102,15,56,220,209 2906 movdqa %xmm8,%xmm10 2907.byte 69,15,58,204,193,2 2908.byte 68,15,56,200,214 2909 movups -48(%rcx),%xmm1 2910.byte 102,15,56,220,208 2911.byte 15,56,202,222 2912 pxor %xmm6,%xmm4 2913.byte 15,56,201,238 2914 movups -32(%rcx),%xmm0 2915.byte 102,15,56,220,209 2916 movdqa %xmm8,%xmm9 2917.byte 69,15,58,204,194,2 2918.byte 68,15,56,200,203 2919 movups -16(%rcx),%xmm1 2920.byte 102,15,56,220,208 2921.byte 15,56,202,227 2922 pxor %xmm3,%xmm5 2923.byte 15,56,201,243 2924 movups 0(%rcx),%xmm0 2925.byte 102,15,56,220,209 2926 movdqa %xmm8,%xmm10 2927.byte 69,15,58,204,193,2 2928.byte 68,15,56,200,212 2929 movups 16(%rcx),%xmm1 2930.byte 102,15,56,220,208 2931.byte 15,56,202,236 2932 pxor %xmm4,%xmm6 2933.byte 15,56,201,220 2934 movups 32(%rcx),%xmm0 2935.byte 102,15,56,220,209 2936 movdqa %xmm8,%xmm9 2937.byte 69,15,58,204,194,2 2938.byte 68,15,56,200,205 2939 movups 48(%rcx),%xmm1 2940.byte 102,15,56,220,208 2941.byte 15,56,202,245 2942 pxor %xmm5,%xmm3 2943.byte 15,56,201,229 2944 cmpl $11,%r11d 2945 jb .Laesenclast13 2946 movups 64(%rcx),%xmm0 2947.byte 102,15,56,220,209 2948 movups 80(%rcx),%xmm1 2949.byte 102,15,56,220,208 2950 je .Laesenclast13 2951 movups 96(%rcx),%xmm0 2952.byte 102,15,56,220,209 2953 movups 112(%rcx),%xmm1 2954.byte 102,15,56,220,208 2955.Laesenclast13: 2956.byte 102,15,56,221,209 2957 movups 16-112(%rcx),%xmm0 2958 movdqa %xmm8,%xmm10 2959.byte 69,15,58,204,193,2 2960.byte 68,15,56,200,214 2961 movups 48(%rdi),%xmm14 2962 xorps %xmm15,%xmm14 2963 movups %xmm2,32(%rsi,%rdi,1) 2964 xorps %xmm14,%xmm2 2965 movups -80(%rcx),%xmm1 2966.byte 102,15,56,220,208 2967.byte 15,56,202,222 2968 pxor %xmm6,%xmm4 2969.byte 15,56,201,238 2970 movups -64(%rcx),%xmm0 2971.byte 102,15,56,220,209 2972 movdqa %xmm8,%xmm9 2973.byte 69,15,58,204,194,3 2974.byte 68,15,56,200,203 2975 movups -48(%rcx),%xmm1 2976.byte 102,15,56,220,208 2977.byte 15,56,202,227 2978 pxor %xmm3,%xmm5 2979.byte 15,56,201,243 2980 movups -32(%rcx),%xmm0 2981.byte 102,15,56,220,209 2982 movdqa %xmm8,%xmm10 2983.byte 69,15,58,204,193,3 2984.byte 68,15,56,200,212 2985.byte 15,56,202,236 2986 pxor %xmm4,%xmm6 2987 movups -16(%rcx),%xmm1 2988.byte 102,15,56,220,208 2989 movdqa %xmm8,%xmm9 2990.byte 69,15,58,204,194,3 2991.byte 68,15,56,200,205 2992.byte 15,56,202,245 2993 movups 0(%rcx),%xmm0 2994.byte 102,15,56,220,209 2995 movdqa %xmm12,%xmm5 2996 movdqa %xmm8,%xmm10 2997.byte 69,15,58,204,193,3 2998.byte 68,15,56,200,214 2999 movups 16(%rcx),%xmm1 3000.byte 102,15,56,220,208 3001 movdqa %xmm8,%xmm9 3002.byte 69,15,58,204,194,3 3003.byte 68,15,56,200,205 3004 movups 32(%rcx),%xmm0 3005.byte 102,15,56,220,209 3006 movups 48(%rcx),%xmm1 3007.byte 102,15,56,220,208 3008 cmpl $11,%r11d 3009 jb .Laesenclast14 3010 movups 64(%rcx),%xmm0 3011.byte 102,15,56,220,209 3012 movups 80(%rcx),%xmm1 3013.byte 102,15,56,220,208 3014 je .Laesenclast14 3015 movups 96(%rcx),%xmm0 3016.byte 102,15,56,220,209 3017 movups 112(%rcx),%xmm1 3018.byte 102,15,56,220,208 3019.Laesenclast14: 3020.byte 102,15,56,221,209 3021 movups 16-112(%rcx),%xmm0 3022 decq %rdx 3023 3024 paddd %xmm11,%xmm8 3025 movups %xmm2,48(%rsi,%rdi,1) 3026 leaq 64(%rdi),%rdi 3027 jnz .Loop_shaext 3028 3029 pshufd $27,%xmm8,%xmm8 3030 pshufd $27,%xmm9,%xmm9 3031 movups %xmm2,(%r8) 3032 movdqu %xmm8,(%r9) 3033 movd %xmm9,16(%r9) 3034 .byte 0xf3,0xc3 3035.cfi_endproc 3036.size aesni_cbc_sha1_enc_shaext,.-aesni_cbc_sha1_enc_shaext 3037