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