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