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