1 # $FreeBSD$ 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 jmp aesni_cbc_sha1_enc_ssse3 15 .byte 0xf3,0xc3 16.size aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc 17.type aesni_cbc_sha1_enc_ssse3,@function 18.align 32 19aesni_cbc_sha1_enc_ssse3: 20 movq 8(%rsp),%r10 21 22 23 pushq %rbx 24 pushq %rbp 25 pushq %r12 26 pushq %r13 27 pushq %r14 28 pushq %r15 29 leaq -104(%rsp),%rsp 30 31 32 movq %rdi,%r12 33 movq %rsi,%r13 34 movq %rdx,%r14 35 leaq 112(%rcx),%r15 36 movdqu (%r8),%xmm2 37 movq %r8,88(%rsp) 38 shlq $6,%r14 39 subq %r12,%r13 40 movl 240-112(%r15),%r8d 41 addq %r10,%r14 42 43 leaq K_XX_XX(%rip),%r11 44 movl 0(%r9),%eax 45 movl 4(%r9),%ebx 46 movl 8(%r9),%ecx 47 movl 12(%r9),%edx 48 movl %ebx,%esi 49 movl 16(%r9),%ebp 50 movl %ecx,%edi 51 xorl %edx,%edi 52 andl %edi,%esi 53 54 movdqa 64(%r11),%xmm3 55 movdqa 0(%r11),%xmm13 56 movdqu 0(%r10),%xmm4 57 movdqu 16(%r10),%xmm5 58 movdqu 32(%r10),%xmm6 59 movdqu 48(%r10),%xmm7 60.byte 102,15,56,0,227 61.byte 102,15,56,0,235 62.byte 102,15,56,0,243 63 addq $64,%r10 64 paddd %xmm13,%xmm4 65.byte 102,15,56,0,251 66 paddd %xmm13,%xmm5 67 paddd %xmm13,%xmm6 68 movdqa %xmm4,0(%rsp) 69 psubd %xmm13,%xmm4 70 movdqa %xmm5,16(%rsp) 71 psubd %xmm13,%xmm5 72 movdqa %xmm6,32(%rsp) 73 psubd %xmm13,%xmm6 74 movups -112(%r15),%xmm15 75 movups 16-112(%r15),%xmm0 76 jmp .Loop_ssse3 77.align 32 78.Loop_ssse3: 79 rorl $2,%ebx 80 movups 0(%r12),%xmm14 81 xorps %xmm15,%xmm14 82 xorps %xmm14,%xmm2 83 movups -80(%r15),%xmm1 84.byte 102,15,56,220,208 85 pshufd $238,%xmm4,%xmm8 86 xorl %edx,%esi 87 movdqa %xmm7,%xmm12 88 paddd %xmm7,%xmm13 89 movl %eax,%edi 90 addl 0(%rsp),%ebp 91 punpcklqdq %xmm5,%xmm8 92 xorl %ecx,%ebx 93 roll $5,%eax 94 addl %esi,%ebp 95 psrldq $4,%xmm12 96 andl %ebx,%edi 97 xorl %ecx,%ebx 98 pxor %xmm4,%xmm8 99 addl %eax,%ebp 100 rorl $7,%eax 101 pxor %xmm6,%xmm12 102 xorl %ecx,%edi 103 movl %ebp,%esi 104 addl 4(%rsp),%edx 105 pxor %xmm12,%xmm8 106 xorl %ebx,%eax 107 roll $5,%ebp 108 movdqa %xmm13,48(%rsp) 109 addl %edi,%edx 110 movups -64(%r15),%xmm0 111.byte 102,15,56,220,209 112 andl %eax,%esi 113 movdqa %xmm8,%xmm3 114 xorl %ebx,%eax 115 addl %ebp,%edx 116 rorl $7,%ebp 117 movdqa %xmm8,%xmm12 118 xorl %ebx,%esi 119 pslldq $12,%xmm3 120 paddd %xmm8,%xmm8 121 movl %edx,%edi 122 addl 8(%rsp),%ecx 123 psrld $31,%xmm12 124 xorl %eax,%ebp 125 roll $5,%edx 126 addl %esi,%ecx 127 movdqa %xmm3,%xmm13 128 andl %ebp,%edi 129 xorl %eax,%ebp 130 psrld $30,%xmm3 131 addl %edx,%ecx 132 rorl $7,%edx 133 por %xmm12,%xmm8 134 xorl %eax,%edi 135 movl %ecx,%esi 136 addl 12(%rsp),%ebx 137 movups -48(%r15),%xmm1 138.byte 102,15,56,220,208 139 pslld $2,%xmm13 140 pxor %xmm3,%xmm8 141 xorl %ebp,%edx 142 movdqa 0(%r11),%xmm3 143 roll $5,%ecx 144 addl %edi,%ebx 145 andl %edx,%esi 146 pxor %xmm13,%xmm8 147 xorl %ebp,%edx 148 addl %ecx,%ebx 149 rorl $7,%ecx 150 pshufd $238,%xmm5,%xmm9 151 xorl %ebp,%esi 152 movdqa %xmm8,%xmm13 153 paddd %xmm8,%xmm3 154 movl %ebx,%edi 155 addl 16(%rsp),%eax 156 punpcklqdq %xmm6,%xmm9 157 xorl %edx,%ecx 158 roll $5,%ebx 159 addl %esi,%eax 160 psrldq $4,%xmm13 161 andl %ecx,%edi 162 xorl %edx,%ecx 163 pxor %xmm5,%xmm9 164 addl %ebx,%eax 165 rorl $7,%ebx 166 movups -32(%r15),%xmm0 167.byte 102,15,56,220,209 168 pxor %xmm7,%xmm13 169 xorl %edx,%edi 170 movl %eax,%esi 171 addl 20(%rsp),%ebp 172 pxor %xmm13,%xmm9 173 xorl %ecx,%ebx 174 roll $5,%eax 175 movdqa %xmm3,0(%rsp) 176 addl %edi,%ebp 177 andl %ebx,%esi 178 movdqa %xmm9,%xmm12 179 xorl %ecx,%ebx 180 addl %eax,%ebp 181 rorl $7,%eax 182 movdqa %xmm9,%xmm13 183 xorl %ecx,%esi 184 pslldq $12,%xmm12 185 paddd %xmm9,%xmm9 186 movl %ebp,%edi 187 addl 24(%rsp),%edx 188 psrld $31,%xmm13 189 xorl %ebx,%eax 190 roll $5,%ebp 191 addl %esi,%edx 192 movups -16(%r15),%xmm1 193.byte 102,15,56,220,208 194 movdqa %xmm12,%xmm3 195 andl %eax,%edi 196 xorl %ebx,%eax 197 psrld $30,%xmm12 198 addl %ebp,%edx 199 rorl $7,%ebp 200 por %xmm13,%xmm9 201 xorl %ebx,%edi 202 movl %edx,%esi 203 addl 28(%rsp),%ecx 204 pslld $2,%xmm3 205 pxor %xmm12,%xmm9 206 xorl %eax,%ebp 207 movdqa 16(%r11),%xmm12 208 roll $5,%edx 209 addl %edi,%ecx 210 andl %ebp,%esi 211 pxor %xmm3,%xmm9 212 xorl %eax,%ebp 213 addl %edx,%ecx 214 rorl $7,%edx 215 pshufd $238,%xmm6,%xmm10 216 xorl %eax,%esi 217 movdqa %xmm9,%xmm3 218 paddd %xmm9,%xmm12 219 movl %ecx,%edi 220 addl 32(%rsp),%ebx 221 movups 0(%r15),%xmm0 222.byte 102,15,56,220,209 223 punpcklqdq %xmm7,%xmm10 224 xorl %ebp,%edx 225 roll $5,%ecx 226 addl %esi,%ebx 227 psrldq $4,%xmm3 228 andl %edx,%edi 229 xorl %ebp,%edx 230 pxor %xmm6,%xmm10 231 addl %ecx,%ebx 232 rorl $7,%ecx 233 pxor %xmm8,%xmm3 234 xorl %ebp,%edi 235 movl %ebx,%esi 236 addl 36(%rsp),%eax 237 pxor %xmm3,%xmm10 238 xorl %edx,%ecx 239 roll $5,%ebx 240 movdqa %xmm12,16(%rsp) 241 addl %edi,%eax 242 andl %ecx,%esi 243 movdqa %xmm10,%xmm13 244 xorl %edx,%ecx 245 addl %ebx,%eax 246 rorl $7,%ebx 247 movups 16(%r15),%xmm1 248.byte 102,15,56,220,208 249 movdqa %xmm10,%xmm3 250 xorl %edx,%esi 251 pslldq $12,%xmm13 252 paddd %xmm10,%xmm10 253 movl %eax,%edi 254 addl 40(%rsp),%ebp 255 psrld $31,%xmm3 256 xorl %ecx,%ebx 257 roll $5,%eax 258 addl %esi,%ebp 259 movdqa %xmm13,%xmm12 260 andl %ebx,%edi 261 xorl %ecx,%ebx 262 psrld $30,%xmm13 263 addl %eax,%ebp 264 rorl $7,%eax 265 por %xmm3,%xmm10 266 xorl %ecx,%edi 267 movl %ebp,%esi 268 addl 44(%rsp),%edx 269 pslld $2,%xmm12 270 pxor %xmm13,%xmm10 271 xorl %ebx,%eax 272 movdqa 16(%r11),%xmm13 273 roll $5,%ebp 274 addl %edi,%edx 275 movups 32(%r15),%xmm0 276.byte 102,15,56,220,209 277 andl %eax,%esi 278 pxor %xmm12,%xmm10 279 xorl %ebx,%eax 280 addl %ebp,%edx 281 rorl $7,%ebp 282 pshufd $238,%xmm7,%xmm11 283 xorl %ebx,%esi 284 movdqa %xmm10,%xmm12 285 paddd %xmm10,%xmm13 286 movl %edx,%edi 287 addl 48(%rsp),%ecx 288 punpcklqdq %xmm8,%xmm11 289 xorl %eax,%ebp 290 roll $5,%edx 291 addl %esi,%ecx 292 psrldq $4,%xmm12 293 andl %ebp,%edi 294 xorl %eax,%ebp 295 pxor %xmm7,%xmm11 296 addl %edx,%ecx 297 rorl $7,%edx 298 pxor %xmm9,%xmm12 299 xorl %eax,%edi 300 movl %ecx,%esi 301 addl 52(%rsp),%ebx 302 movups 48(%r15),%xmm1 303.byte 102,15,56,220,208 304 pxor %xmm12,%xmm11 305 xorl %ebp,%edx 306 roll $5,%ecx 307 movdqa %xmm13,32(%rsp) 308 addl %edi,%ebx 309 andl %edx,%esi 310 movdqa %xmm11,%xmm3 311 xorl %ebp,%edx 312 addl %ecx,%ebx 313 rorl $7,%ecx 314 movdqa %xmm11,%xmm12 315 xorl %ebp,%esi 316 pslldq $12,%xmm3 317 paddd %xmm11,%xmm11 318 movl %ebx,%edi 319 addl 56(%rsp),%eax 320 psrld $31,%xmm12 321 xorl %edx,%ecx 322 roll $5,%ebx 323 addl %esi,%eax 324 movdqa %xmm3,%xmm13 325 andl %ecx,%edi 326 xorl %edx,%ecx 327 psrld $30,%xmm3 328 addl %ebx,%eax 329 rorl $7,%ebx 330 cmpl $11,%r8d 331 jb .Laesenclast1 332 movups 64(%r15),%xmm0 333.byte 102,15,56,220,209 334 movups 80(%r15),%xmm1 335.byte 102,15,56,220,208 336 je .Laesenclast1 337 movups 96(%r15),%xmm0 338.byte 102,15,56,220,209 339 movups 112(%r15),%xmm1 340.byte 102,15,56,220,208 341.Laesenclast1: 342.byte 102,15,56,221,209 343 movups 16-112(%r15),%xmm0 344 por %xmm12,%xmm11 345 xorl %edx,%edi 346 movl %eax,%esi 347 addl 60(%rsp),%ebp 348 pslld $2,%xmm13 349 pxor %xmm3,%xmm11 350 xorl %ecx,%ebx 351 movdqa 16(%r11),%xmm3 352 roll $5,%eax 353 addl %edi,%ebp 354 andl %ebx,%esi 355 pxor %xmm13,%xmm11 356 pshufd $238,%xmm10,%xmm13 357 xorl %ecx,%ebx 358 addl %eax,%ebp 359 rorl $7,%eax 360 pxor %xmm8,%xmm4 361 xorl %ecx,%esi 362 movl %ebp,%edi 363 addl 0(%rsp),%edx 364 punpcklqdq %xmm11,%xmm13 365 xorl %ebx,%eax 366 roll $5,%ebp 367 pxor %xmm5,%xmm4 368 addl %esi,%edx 369 movups 16(%r12),%xmm14 370 xorps %xmm15,%xmm14 371 movups %xmm2,0(%r12,%r13,1) 372 xorps %xmm14,%xmm2 373 movups -80(%r15),%xmm1 374.byte 102,15,56,220,208 375 andl %eax,%edi 376 movdqa %xmm3,%xmm12 377 xorl %ebx,%eax 378 paddd %xmm11,%xmm3 379 addl %ebp,%edx 380 pxor %xmm13,%xmm4 381 rorl $7,%ebp 382 xorl %ebx,%edi 383 movl %edx,%esi 384 addl 4(%rsp),%ecx 385 movdqa %xmm4,%xmm13 386 xorl %eax,%ebp 387 roll $5,%edx 388 movdqa %xmm3,48(%rsp) 389 addl %edi,%ecx 390 andl %ebp,%esi 391 xorl %eax,%ebp 392 pslld $2,%xmm4 393 addl %edx,%ecx 394 rorl $7,%edx 395 psrld $30,%xmm13 396 xorl %eax,%esi 397 movl %ecx,%edi 398 addl 8(%rsp),%ebx 399 movups -64(%r15),%xmm0 400.byte 102,15,56,220,209 401 por %xmm13,%xmm4 402 xorl %ebp,%edx 403 roll $5,%ecx 404 pshufd $238,%xmm11,%xmm3 405 addl %esi,%ebx 406 andl %edx,%edi 407 xorl %ebp,%edx 408 addl %ecx,%ebx 409 addl 12(%rsp),%eax 410 xorl %ebp,%edi 411 movl %ebx,%esi 412 roll $5,%ebx 413 addl %edi,%eax 414 xorl %edx,%esi 415 rorl $7,%ecx 416 addl %ebx,%eax 417 pxor %xmm9,%xmm5 418 addl 16(%rsp),%ebp 419 movups -48(%r15),%xmm1 420.byte 102,15,56,220,208 421 xorl %ecx,%esi 422 punpcklqdq %xmm4,%xmm3 423 movl %eax,%edi 424 roll $5,%eax 425 pxor %xmm6,%xmm5 426 addl %esi,%ebp 427 xorl %ecx,%edi 428 movdqa %xmm12,%xmm13 429 rorl $7,%ebx 430 paddd %xmm4,%xmm12 431 addl %eax,%ebp 432 pxor %xmm3,%xmm5 433 addl 20(%rsp),%edx 434 xorl %ebx,%edi 435 movl %ebp,%esi 436 roll $5,%ebp 437 movdqa %xmm5,%xmm3 438 addl %edi,%edx 439 xorl %ebx,%esi 440 movdqa %xmm12,0(%rsp) 441 rorl $7,%eax 442 addl %ebp,%edx 443 addl 24(%rsp),%ecx 444 pslld $2,%xmm5 445 xorl %eax,%esi 446 movl %edx,%edi 447 psrld $30,%xmm3 448 roll $5,%edx 449 addl %esi,%ecx 450 movups -32(%r15),%xmm0 451.byte 102,15,56,220,209 452 xorl %eax,%edi 453 rorl $7,%ebp 454 por %xmm3,%xmm5 455 addl %edx,%ecx 456 addl 28(%rsp),%ebx 457 pshufd $238,%xmm4,%xmm12 458 xorl %ebp,%edi 459 movl %ecx,%esi 460 roll $5,%ecx 461 addl %edi,%ebx 462 xorl %ebp,%esi 463 rorl $7,%edx 464 addl %ecx,%ebx 465 pxor %xmm10,%xmm6 466 addl 32(%rsp),%eax 467 xorl %edx,%esi 468 punpcklqdq %xmm5,%xmm12 469 movl %ebx,%edi 470 roll $5,%ebx 471 pxor %xmm7,%xmm6 472 addl %esi,%eax 473 xorl %edx,%edi 474 movdqa 32(%r11),%xmm3 475 rorl $7,%ecx 476 paddd %xmm5,%xmm13 477 addl %ebx,%eax 478 pxor %xmm12,%xmm6 479 addl 36(%rsp),%ebp 480 movups -16(%r15),%xmm1 481.byte 102,15,56,220,208 482 xorl %ecx,%edi 483 movl %eax,%esi 484 roll $5,%eax 485 movdqa %xmm6,%xmm12 486 addl %edi,%ebp 487 xorl %ecx,%esi 488 movdqa %xmm13,16(%rsp) 489 rorl $7,%ebx 490 addl %eax,%ebp 491 addl 40(%rsp),%edx 492 pslld $2,%xmm6 493 xorl %ebx,%esi 494 movl %ebp,%edi 495 psrld $30,%xmm12 496 roll $5,%ebp 497 addl %esi,%edx 498 xorl %ebx,%edi 499 rorl $7,%eax 500 por %xmm12,%xmm6 501 addl %ebp,%edx 502 addl 44(%rsp),%ecx 503 pshufd $238,%xmm5,%xmm13 504 xorl %eax,%edi 505 movl %edx,%esi 506 roll $5,%edx 507 addl %edi,%ecx 508 movups 0(%r15),%xmm0 509.byte 102,15,56,220,209 510 xorl %eax,%esi 511 rorl $7,%ebp 512 addl %edx,%ecx 513 pxor %xmm11,%xmm7 514 addl 48(%rsp),%ebx 515 xorl %ebp,%esi 516 punpcklqdq %xmm6,%xmm13 517 movl %ecx,%edi 518 roll $5,%ecx 519 pxor %xmm8,%xmm7 520 addl %esi,%ebx 521 xorl %ebp,%edi 522 movdqa %xmm3,%xmm12 523 rorl $7,%edx 524 paddd %xmm6,%xmm3 525 addl %ecx,%ebx 526 pxor %xmm13,%xmm7 527 addl 52(%rsp),%eax 528 xorl %edx,%edi 529 movl %ebx,%esi 530 roll $5,%ebx 531 movdqa %xmm7,%xmm13 532 addl %edi,%eax 533 xorl %edx,%esi 534 movdqa %xmm3,32(%rsp) 535 rorl $7,%ecx 536 addl %ebx,%eax 537 addl 56(%rsp),%ebp 538 movups 16(%r15),%xmm1 539.byte 102,15,56,220,208 540 pslld $2,%xmm7 541 xorl %ecx,%esi 542 movl %eax,%edi 543 psrld $30,%xmm13 544 roll $5,%eax 545 addl %esi,%ebp 546 xorl %ecx,%edi 547 rorl $7,%ebx 548 por %xmm13,%xmm7 549 addl %eax,%ebp 550 addl 60(%rsp),%edx 551 pshufd $238,%xmm6,%xmm3 552 xorl %ebx,%edi 553 movl %ebp,%esi 554 roll $5,%ebp 555 addl %edi,%edx 556 xorl %ebx,%esi 557 rorl $7,%eax 558 addl %ebp,%edx 559 pxor %xmm4,%xmm8 560 addl 0(%rsp),%ecx 561 xorl %eax,%esi 562 punpcklqdq %xmm7,%xmm3 563 movl %edx,%edi 564 roll $5,%edx 565 pxor %xmm9,%xmm8 566 addl %esi,%ecx 567 movups 32(%r15),%xmm0 568.byte 102,15,56,220,209 569 xorl %eax,%edi 570 movdqa %xmm12,%xmm13 571 rorl $7,%ebp 572 paddd %xmm7,%xmm12 573 addl %edx,%ecx 574 pxor %xmm3,%xmm8 575 addl 4(%rsp),%ebx 576 xorl %ebp,%edi 577 movl %ecx,%esi 578 roll $5,%ecx 579 movdqa %xmm8,%xmm3 580 addl %edi,%ebx 581 xorl %ebp,%esi 582 movdqa %xmm12,48(%rsp) 583 rorl $7,%edx 584 addl %ecx,%ebx 585 addl 8(%rsp),%eax 586 pslld $2,%xmm8 587 xorl %edx,%esi 588 movl %ebx,%edi 589 psrld $30,%xmm3 590 roll $5,%ebx 591 addl %esi,%eax 592 xorl %edx,%edi 593 rorl $7,%ecx 594 por %xmm3,%xmm8 595 addl %ebx,%eax 596 addl 12(%rsp),%ebp 597 movups 48(%r15),%xmm1 598.byte 102,15,56,220,208 599 pshufd $238,%xmm7,%xmm12 600 xorl %ecx,%edi 601 movl %eax,%esi 602 roll $5,%eax 603 addl %edi,%ebp 604 xorl %ecx,%esi 605 rorl $7,%ebx 606 addl %eax,%ebp 607 pxor %xmm5,%xmm9 608 addl 16(%rsp),%edx 609 xorl %ebx,%esi 610 punpcklqdq %xmm8,%xmm12 611 movl %ebp,%edi 612 roll $5,%ebp 613 pxor %xmm10,%xmm9 614 addl %esi,%edx 615 xorl %ebx,%edi 616 movdqa %xmm13,%xmm3 617 rorl $7,%eax 618 paddd %xmm8,%xmm13 619 addl %ebp,%edx 620 pxor %xmm12,%xmm9 621 addl 20(%rsp),%ecx 622 xorl %eax,%edi 623 movl %edx,%esi 624 roll $5,%edx 625 movdqa %xmm9,%xmm12 626 addl %edi,%ecx 627 cmpl $11,%r8d 628 jb .Laesenclast2 629 movups 64(%r15),%xmm0 630.byte 102,15,56,220,209 631 movups 80(%r15),%xmm1 632.byte 102,15,56,220,208 633 je .Laesenclast2 634 movups 96(%r15),%xmm0 635.byte 102,15,56,220,209 636 movups 112(%r15),%xmm1 637.byte 102,15,56,220,208 638.Laesenclast2: 639.byte 102,15,56,221,209 640 movups 16-112(%r15),%xmm0 641 xorl %eax,%esi 642 movdqa %xmm13,0(%rsp) 643 rorl $7,%ebp 644 addl %edx,%ecx 645 addl 24(%rsp),%ebx 646 pslld $2,%xmm9 647 xorl %ebp,%esi 648 movl %ecx,%edi 649 psrld $30,%xmm12 650 roll $5,%ecx 651 addl %esi,%ebx 652 xorl %ebp,%edi 653 rorl $7,%edx 654 por %xmm12,%xmm9 655 addl %ecx,%ebx 656 addl 28(%rsp),%eax 657 pshufd $238,%xmm8,%xmm13 658 rorl $7,%ecx 659 movl %ebx,%esi 660 xorl %edx,%edi 661 roll $5,%ebx 662 addl %edi,%eax 663 xorl %ecx,%esi 664 xorl %edx,%ecx 665 addl %ebx,%eax 666 pxor %xmm6,%xmm10 667 addl 32(%rsp),%ebp 668 movups 32(%r12),%xmm14 669 xorps %xmm15,%xmm14 670 movups %xmm2,16(%r13,%r12,1) 671 xorps %xmm14,%xmm2 672 movups -80(%r15),%xmm1 673.byte 102,15,56,220,208 674 andl %ecx,%esi 675 xorl %edx,%ecx 676 rorl $7,%ebx 677 punpcklqdq %xmm9,%xmm13 678 movl %eax,%edi 679 xorl %ecx,%esi 680 pxor %xmm11,%xmm10 681 roll $5,%eax 682 addl %esi,%ebp 683 movdqa %xmm3,%xmm12 684 xorl %ebx,%edi 685 paddd %xmm9,%xmm3 686 xorl %ecx,%ebx 687 pxor %xmm13,%xmm10 688 addl %eax,%ebp 689 addl 36(%rsp),%edx 690 andl %ebx,%edi 691 xorl %ecx,%ebx 692 rorl $7,%eax 693 movdqa %xmm10,%xmm13 694 movl %ebp,%esi 695 xorl %ebx,%edi 696 movdqa %xmm3,16(%rsp) 697 roll $5,%ebp 698 addl %edi,%edx 699 movups -64(%r15),%xmm0 700.byte 102,15,56,220,209 701 xorl %eax,%esi 702 pslld $2,%xmm10 703 xorl %ebx,%eax 704 addl %ebp,%edx 705 psrld $30,%xmm13 706 addl 40(%rsp),%ecx 707 andl %eax,%esi 708 xorl %ebx,%eax 709 por %xmm13,%xmm10 710 rorl $7,%ebp 711 movl %edx,%edi 712 xorl %eax,%esi 713 roll $5,%edx 714 pshufd $238,%xmm9,%xmm3 715 addl %esi,%ecx 716 xorl %ebp,%edi 717 xorl %eax,%ebp 718 addl %edx,%ecx 719 addl 44(%rsp),%ebx 720 andl %ebp,%edi 721 xorl %eax,%ebp 722 rorl $7,%edx 723 movups -48(%r15),%xmm1 724.byte 102,15,56,220,208 725 movl %ecx,%esi 726 xorl %ebp,%edi 727 roll $5,%ecx 728 addl %edi,%ebx 729 xorl %edx,%esi 730 xorl %ebp,%edx 731 addl %ecx,%ebx 732 pxor %xmm7,%xmm11 733 addl 48(%rsp),%eax 734 andl %edx,%esi 735 xorl %ebp,%edx 736 rorl $7,%ecx 737 punpcklqdq %xmm10,%xmm3 738 movl %ebx,%edi 739 xorl %edx,%esi 740 pxor %xmm4,%xmm11 741 roll $5,%ebx 742 addl %esi,%eax 743 movdqa 48(%r11),%xmm13 744 xorl %ecx,%edi 745 paddd %xmm10,%xmm12 746 xorl %edx,%ecx 747 pxor %xmm3,%xmm11 748 addl %ebx,%eax 749 addl 52(%rsp),%ebp 750 movups -32(%r15),%xmm0 751.byte 102,15,56,220,209 752 andl %ecx,%edi 753 xorl %edx,%ecx 754 rorl $7,%ebx 755 movdqa %xmm11,%xmm3 756 movl %eax,%esi 757 xorl %ecx,%edi 758 movdqa %xmm12,32(%rsp) 759 roll $5,%eax 760 addl %edi,%ebp 761 xorl %ebx,%esi 762 pslld $2,%xmm11 763 xorl %ecx,%ebx 764 addl %eax,%ebp 765 psrld $30,%xmm3 766 addl 56(%rsp),%edx 767 andl %ebx,%esi 768 xorl %ecx,%ebx 769 por %xmm3,%xmm11 770 rorl $7,%eax 771 movl %ebp,%edi 772 xorl %ebx,%esi 773 roll $5,%ebp 774 pshufd $238,%xmm10,%xmm12 775 addl %esi,%edx 776 movups -16(%r15),%xmm1 777.byte 102,15,56,220,208 778 xorl %eax,%edi 779 xorl %ebx,%eax 780 addl %ebp,%edx 781 addl 60(%rsp),%ecx 782 andl %eax,%edi 783 xorl %ebx,%eax 784 rorl $7,%ebp 785 movl %edx,%esi 786 xorl %eax,%edi 787 roll $5,%edx 788 addl %edi,%ecx 789 xorl %ebp,%esi 790 xorl %eax,%ebp 791 addl %edx,%ecx 792 pxor %xmm8,%xmm4 793 addl 0(%rsp),%ebx 794 andl %ebp,%esi 795 xorl %eax,%ebp 796 rorl $7,%edx 797 movups 0(%r15),%xmm0 798.byte 102,15,56,220,209 799 punpcklqdq %xmm11,%xmm12 800 movl %ecx,%edi 801 xorl %ebp,%esi 802 pxor %xmm5,%xmm4 803 roll $5,%ecx 804 addl %esi,%ebx 805 movdqa %xmm13,%xmm3 806 xorl %edx,%edi 807 paddd %xmm11,%xmm13 808 xorl %ebp,%edx 809 pxor %xmm12,%xmm4 810 addl %ecx,%ebx 811 addl 4(%rsp),%eax 812 andl %edx,%edi 813 xorl %ebp,%edx 814 rorl $7,%ecx 815 movdqa %xmm4,%xmm12 816 movl %ebx,%esi 817 xorl %edx,%edi 818 movdqa %xmm13,48(%rsp) 819 roll $5,%ebx 820 addl %edi,%eax 821 xorl %ecx,%esi 822 pslld $2,%xmm4 823 xorl %edx,%ecx 824 addl %ebx,%eax 825 psrld $30,%xmm12 826 addl 8(%rsp),%ebp 827 movups 16(%r15),%xmm1 828.byte 102,15,56,220,208 829 andl %ecx,%esi 830 xorl %edx,%ecx 831 por %xmm12,%xmm4 832 rorl $7,%ebx 833 movl %eax,%edi 834 xorl %ecx,%esi 835 roll $5,%eax 836 pshufd $238,%xmm11,%xmm13 837 addl %esi,%ebp 838 xorl %ebx,%edi 839 xorl %ecx,%ebx 840 addl %eax,%ebp 841 addl 12(%rsp),%edx 842 andl %ebx,%edi 843 xorl %ecx,%ebx 844 rorl $7,%eax 845 movl %ebp,%esi 846 xorl %ebx,%edi 847 roll $5,%ebp 848 addl %edi,%edx 849 movups 32(%r15),%xmm0 850.byte 102,15,56,220,209 851 xorl %eax,%esi 852 xorl %ebx,%eax 853 addl %ebp,%edx 854 pxor %xmm9,%xmm5 855 addl 16(%rsp),%ecx 856 andl %eax,%esi 857 xorl %ebx,%eax 858 rorl $7,%ebp 859 punpcklqdq %xmm4,%xmm13 860 movl %edx,%edi 861 xorl %eax,%esi 862 pxor %xmm6,%xmm5 863 roll $5,%edx 864 addl %esi,%ecx 865 movdqa %xmm3,%xmm12 866 xorl %ebp,%edi 867 paddd %xmm4,%xmm3 868 xorl %eax,%ebp 869 pxor %xmm13,%xmm5 870 addl %edx,%ecx 871 addl 20(%rsp),%ebx 872 andl %ebp,%edi 873 xorl %eax,%ebp 874 rorl $7,%edx 875 movups 48(%r15),%xmm1 876.byte 102,15,56,220,208 877 movdqa %xmm5,%xmm13 878 movl %ecx,%esi 879 xorl %ebp,%edi 880 movdqa %xmm3,0(%rsp) 881 roll $5,%ecx 882 addl %edi,%ebx 883 xorl %edx,%esi 884 pslld $2,%xmm5 885 xorl %ebp,%edx 886 addl %ecx,%ebx 887 psrld $30,%xmm13 888 addl 24(%rsp),%eax 889 andl %edx,%esi 890 xorl %ebp,%edx 891 por %xmm13,%xmm5 892 rorl $7,%ecx 893 movl %ebx,%edi 894 xorl %edx,%esi 895 roll $5,%ebx 896 pshufd $238,%xmm4,%xmm3 897 addl %esi,%eax 898 xorl %ecx,%edi 899 xorl %edx,%ecx 900 addl %ebx,%eax 901 addl 28(%rsp),%ebp 902 cmpl $11,%r8d 903 jb .Laesenclast3 904 movups 64(%r15),%xmm0 905.byte 102,15,56,220,209 906 movups 80(%r15),%xmm1 907.byte 102,15,56,220,208 908 je .Laesenclast3 909 movups 96(%r15),%xmm0 910.byte 102,15,56,220,209 911 movups 112(%r15),%xmm1 912.byte 102,15,56,220,208 913.Laesenclast3: 914.byte 102,15,56,221,209 915 movups 16-112(%r15),%xmm0 916 andl %ecx,%edi 917 xorl %edx,%ecx 918 rorl $7,%ebx 919 movl %eax,%esi 920 xorl %ecx,%edi 921 roll $5,%eax 922 addl %edi,%ebp 923 xorl %ebx,%esi 924 xorl %ecx,%ebx 925 addl %eax,%ebp 926 pxor %xmm10,%xmm6 927 addl 32(%rsp),%edx 928 andl %ebx,%esi 929 xorl %ecx,%ebx 930 rorl $7,%eax 931 punpcklqdq %xmm5,%xmm3 932 movl %ebp,%edi 933 xorl %ebx,%esi 934 pxor %xmm7,%xmm6 935 roll $5,%ebp 936 addl %esi,%edx 937 movups 48(%r12),%xmm14 938 xorps %xmm15,%xmm14 939 movups %xmm2,32(%r13,%r12,1) 940 xorps %xmm14,%xmm2 941 movups -80(%r15),%xmm1 942.byte 102,15,56,220,208 943 movdqa %xmm12,%xmm13 944 xorl %eax,%edi 945 paddd %xmm5,%xmm12 946 xorl %ebx,%eax 947 pxor %xmm3,%xmm6 948 addl %ebp,%edx 949 addl 36(%rsp),%ecx 950 andl %eax,%edi 951 xorl %ebx,%eax 952 rorl $7,%ebp 953 movdqa %xmm6,%xmm3 954 movl %edx,%esi 955 xorl %eax,%edi 956 movdqa %xmm12,16(%rsp) 957 roll $5,%edx 958 addl %edi,%ecx 959 xorl %ebp,%esi 960 pslld $2,%xmm6 961 xorl %eax,%ebp 962 addl %edx,%ecx 963 psrld $30,%xmm3 964 addl 40(%rsp),%ebx 965 andl %ebp,%esi 966 xorl %eax,%ebp 967 por %xmm3,%xmm6 968 rorl $7,%edx 969 movups -64(%r15),%xmm0 970.byte 102,15,56,220,209 971 movl %ecx,%edi 972 xorl %ebp,%esi 973 roll $5,%ecx 974 pshufd $238,%xmm5,%xmm12 975 addl %esi,%ebx 976 xorl %edx,%edi 977 xorl %ebp,%edx 978 addl %ecx,%ebx 979 addl 44(%rsp),%eax 980 andl %edx,%edi 981 xorl %ebp,%edx 982 rorl $7,%ecx 983 movl %ebx,%esi 984 xorl %edx,%edi 985 roll $5,%ebx 986 addl %edi,%eax 987 xorl %edx,%esi 988 addl %ebx,%eax 989 pxor %xmm11,%xmm7 990 addl 48(%rsp),%ebp 991 movups -48(%r15),%xmm1 992.byte 102,15,56,220,208 993 xorl %ecx,%esi 994 punpcklqdq %xmm6,%xmm12 995 movl %eax,%edi 996 roll $5,%eax 997 pxor %xmm8,%xmm7 998 addl %esi,%ebp 999 xorl %ecx,%edi 1000 movdqa %xmm13,%xmm3 1001 rorl $7,%ebx 1002 paddd %xmm6,%xmm13 1003 addl %eax,%ebp 1004 pxor %xmm12,%xmm7 1005 addl 52(%rsp),%edx 1006 xorl %ebx,%edi 1007 movl %ebp,%esi 1008 roll $5,%ebp 1009 movdqa %xmm7,%xmm12 1010 addl %edi,%edx 1011 xorl %ebx,%esi 1012 movdqa %xmm13,32(%rsp) 1013 rorl $7,%eax 1014 addl %ebp,%edx 1015 addl 56(%rsp),%ecx 1016 pslld $2,%xmm7 1017 xorl %eax,%esi 1018 movl %edx,%edi 1019 psrld $30,%xmm12 1020 roll $5,%edx 1021 addl %esi,%ecx 1022 movups -32(%r15),%xmm0 1023.byte 102,15,56,220,209 1024 xorl %eax,%edi 1025 rorl $7,%ebp 1026 por %xmm12,%xmm7 1027 addl %edx,%ecx 1028 addl 60(%rsp),%ebx 1029 xorl %ebp,%edi 1030 movl %ecx,%esi 1031 roll $5,%ecx 1032 addl %edi,%ebx 1033 xorl %ebp,%esi 1034 rorl $7,%edx 1035 addl %ecx,%ebx 1036 addl 0(%rsp),%eax 1037 xorl %edx,%esi 1038 movl %ebx,%edi 1039 roll $5,%ebx 1040 paddd %xmm7,%xmm3 1041 addl %esi,%eax 1042 xorl %edx,%edi 1043 movdqa %xmm3,48(%rsp) 1044 rorl $7,%ecx 1045 addl %ebx,%eax 1046 addl 4(%rsp),%ebp 1047 movups -16(%r15),%xmm1 1048.byte 102,15,56,220,208 1049 xorl %ecx,%edi 1050 movl %eax,%esi 1051 roll $5,%eax 1052 addl %edi,%ebp 1053 xorl %ecx,%esi 1054 rorl $7,%ebx 1055 addl %eax,%ebp 1056 addl 8(%rsp),%edx 1057 xorl %ebx,%esi 1058 movl %ebp,%edi 1059 roll $5,%ebp 1060 addl %esi,%edx 1061 xorl %ebx,%edi 1062 rorl $7,%eax 1063 addl %ebp,%edx 1064 addl 12(%rsp),%ecx 1065 xorl %eax,%edi 1066 movl %edx,%esi 1067 roll $5,%edx 1068 addl %edi,%ecx 1069 movups 0(%r15),%xmm0 1070.byte 102,15,56,220,209 1071 xorl %eax,%esi 1072 rorl $7,%ebp 1073 addl %edx,%ecx 1074 cmpq %r14,%r10 1075 je .Ldone_ssse3 1076 movdqa 64(%r11),%xmm3 1077 movdqa 0(%r11),%xmm13 1078 movdqu 0(%r10),%xmm4 1079 movdqu 16(%r10),%xmm5 1080 movdqu 32(%r10),%xmm6 1081 movdqu 48(%r10),%xmm7 1082.byte 102,15,56,0,227 1083 addq $64,%r10 1084 addl 16(%rsp),%ebx 1085 xorl %ebp,%esi 1086 movl %ecx,%edi 1087.byte 102,15,56,0,235 1088 roll $5,%ecx 1089 addl %esi,%ebx 1090 xorl %ebp,%edi 1091 rorl $7,%edx 1092 paddd %xmm13,%xmm4 1093 addl %ecx,%ebx 1094 addl 20(%rsp),%eax 1095 xorl %edx,%edi 1096 movl %ebx,%esi 1097 movdqa %xmm4,0(%rsp) 1098 roll $5,%ebx 1099 addl %edi,%eax 1100 xorl %edx,%esi 1101 rorl $7,%ecx 1102 psubd %xmm13,%xmm4 1103 addl %ebx,%eax 1104 addl 24(%rsp),%ebp 1105 movups 16(%r15),%xmm1 1106.byte 102,15,56,220,208 1107 xorl %ecx,%esi 1108 movl %eax,%edi 1109 roll $5,%eax 1110 addl %esi,%ebp 1111 xorl %ecx,%edi 1112 rorl $7,%ebx 1113 addl %eax,%ebp 1114 addl 28(%rsp),%edx 1115 xorl %ebx,%edi 1116 movl %ebp,%esi 1117 roll $5,%ebp 1118 addl %edi,%edx 1119 xorl %ebx,%esi 1120 rorl $7,%eax 1121 addl %ebp,%edx 1122 addl 32(%rsp),%ecx 1123 xorl %eax,%esi 1124 movl %edx,%edi 1125.byte 102,15,56,0,243 1126 roll $5,%edx 1127 addl %esi,%ecx 1128 movups 32(%r15),%xmm0 1129.byte 102,15,56,220,209 1130 xorl %eax,%edi 1131 rorl $7,%ebp 1132 paddd %xmm13,%xmm5 1133 addl %edx,%ecx 1134 addl 36(%rsp),%ebx 1135 xorl %ebp,%edi 1136 movl %ecx,%esi 1137 movdqa %xmm5,16(%rsp) 1138 roll $5,%ecx 1139 addl %edi,%ebx 1140 xorl %ebp,%esi 1141 rorl $7,%edx 1142 psubd %xmm13,%xmm5 1143 addl %ecx,%ebx 1144 addl 40(%rsp),%eax 1145 xorl %edx,%esi 1146 movl %ebx,%edi 1147 roll $5,%ebx 1148 addl %esi,%eax 1149 xorl %edx,%edi 1150 rorl $7,%ecx 1151 addl %ebx,%eax 1152 addl 44(%rsp),%ebp 1153 movups 48(%r15),%xmm1 1154.byte 102,15,56,220,208 1155 xorl %ecx,%edi 1156 movl %eax,%esi 1157 roll $5,%eax 1158 addl %edi,%ebp 1159 xorl %ecx,%esi 1160 rorl $7,%ebx 1161 addl %eax,%ebp 1162 addl 48(%rsp),%edx 1163 xorl %ebx,%esi 1164 movl %ebp,%edi 1165.byte 102,15,56,0,251 1166 roll $5,%ebp 1167 addl %esi,%edx 1168 xorl %ebx,%edi 1169 rorl $7,%eax 1170 paddd %xmm13,%xmm6 1171 addl %ebp,%edx 1172 addl 52(%rsp),%ecx 1173 xorl %eax,%edi 1174 movl %edx,%esi 1175 movdqa %xmm6,32(%rsp) 1176 roll $5,%edx 1177 addl %edi,%ecx 1178 cmpl $11,%r8d 1179 jb .Laesenclast4 1180 movups 64(%r15),%xmm0 1181.byte 102,15,56,220,209 1182 movups 80(%r15),%xmm1 1183.byte 102,15,56,220,208 1184 je .Laesenclast4 1185 movups 96(%r15),%xmm0 1186.byte 102,15,56,220,209 1187 movups 112(%r15),%xmm1 1188.byte 102,15,56,220,208 1189.Laesenclast4: 1190.byte 102,15,56,221,209 1191 movups 16-112(%r15),%xmm0 1192 xorl %eax,%esi 1193 rorl $7,%ebp 1194 psubd %xmm13,%xmm6 1195 addl %edx,%ecx 1196 addl 56(%rsp),%ebx 1197 xorl %ebp,%esi 1198 movl %ecx,%edi 1199 roll $5,%ecx 1200 addl %esi,%ebx 1201 xorl %ebp,%edi 1202 rorl $7,%edx 1203 addl %ecx,%ebx 1204 addl 60(%rsp),%eax 1205 xorl %edx,%edi 1206 movl %ebx,%esi 1207 roll $5,%ebx 1208 addl %edi,%eax 1209 rorl $7,%ecx 1210 addl %ebx,%eax 1211 movups %xmm2,48(%r13,%r12,1) 1212 leaq 64(%r12),%r12 1213 1214 addl 0(%r9),%eax 1215 addl 4(%r9),%esi 1216 addl 8(%r9),%ecx 1217 addl 12(%r9),%edx 1218 movl %eax,0(%r9) 1219 addl 16(%r9),%ebp 1220 movl %esi,4(%r9) 1221 movl %esi,%ebx 1222 movl %ecx,8(%r9) 1223 movl %ecx,%edi 1224 movl %edx,12(%r9) 1225 xorl %edx,%edi 1226 movl %ebp,16(%r9) 1227 andl %edi,%esi 1228 jmp .Loop_ssse3 1229 1230.Ldone_ssse3: 1231 addl 16(%rsp),%ebx 1232 xorl %ebp,%esi 1233 movl %ecx,%edi 1234 roll $5,%ecx 1235 addl %esi,%ebx 1236 xorl %ebp,%edi 1237 rorl $7,%edx 1238 addl %ecx,%ebx 1239 addl 20(%rsp),%eax 1240 xorl %edx,%edi 1241 movl %ebx,%esi 1242 roll $5,%ebx 1243 addl %edi,%eax 1244 xorl %edx,%esi 1245 rorl $7,%ecx 1246 addl %ebx,%eax 1247 addl 24(%rsp),%ebp 1248 movups 16(%r15),%xmm1 1249.byte 102,15,56,220,208 1250 xorl %ecx,%esi 1251 movl %eax,%edi 1252 roll $5,%eax 1253 addl %esi,%ebp 1254 xorl %ecx,%edi 1255 rorl $7,%ebx 1256 addl %eax,%ebp 1257 addl 28(%rsp),%edx 1258 xorl %ebx,%edi 1259 movl %ebp,%esi 1260 roll $5,%ebp 1261 addl %edi,%edx 1262 xorl %ebx,%esi 1263 rorl $7,%eax 1264 addl %ebp,%edx 1265 addl 32(%rsp),%ecx 1266 xorl %eax,%esi 1267 movl %edx,%edi 1268 roll $5,%edx 1269 addl %esi,%ecx 1270 movups 32(%r15),%xmm0 1271.byte 102,15,56,220,209 1272 xorl %eax,%edi 1273 rorl $7,%ebp 1274 addl %edx,%ecx 1275 addl 36(%rsp),%ebx 1276 xorl %ebp,%edi 1277 movl %ecx,%esi 1278 roll $5,%ecx 1279 addl %edi,%ebx 1280 xorl %ebp,%esi 1281 rorl $7,%edx 1282 addl %ecx,%ebx 1283 addl 40(%rsp),%eax 1284 xorl %edx,%esi 1285 movl %ebx,%edi 1286 roll $5,%ebx 1287 addl %esi,%eax 1288 xorl %edx,%edi 1289 rorl $7,%ecx 1290 addl %ebx,%eax 1291 addl 44(%rsp),%ebp 1292 movups 48(%r15),%xmm1 1293.byte 102,15,56,220,208 1294 xorl %ecx,%edi 1295 movl %eax,%esi 1296 roll $5,%eax 1297 addl %edi,%ebp 1298 xorl %ecx,%esi 1299 rorl $7,%ebx 1300 addl %eax,%ebp 1301 addl 48(%rsp),%edx 1302 xorl %ebx,%esi 1303 movl %ebp,%edi 1304 roll $5,%ebp 1305 addl %esi,%edx 1306 xorl %ebx,%edi 1307 rorl $7,%eax 1308 addl %ebp,%edx 1309 addl 52(%rsp),%ecx 1310 xorl %eax,%edi 1311 movl %edx,%esi 1312 roll $5,%edx 1313 addl %edi,%ecx 1314 cmpl $11,%r8d 1315 jb .Laesenclast5 1316 movups 64(%r15),%xmm0 1317.byte 102,15,56,220,209 1318 movups 80(%r15),%xmm1 1319.byte 102,15,56,220,208 1320 je .Laesenclast5 1321 movups 96(%r15),%xmm0 1322.byte 102,15,56,220,209 1323 movups 112(%r15),%xmm1 1324.byte 102,15,56,220,208 1325.Laesenclast5: 1326.byte 102,15,56,221,209 1327 movups 16-112(%r15),%xmm0 1328 xorl %eax,%esi 1329 rorl $7,%ebp 1330 addl %edx,%ecx 1331 addl 56(%rsp),%ebx 1332 xorl %ebp,%esi 1333 movl %ecx,%edi 1334 roll $5,%ecx 1335 addl %esi,%ebx 1336 xorl %ebp,%edi 1337 rorl $7,%edx 1338 addl %ecx,%ebx 1339 addl 60(%rsp),%eax 1340 xorl %edx,%edi 1341 movl %ebx,%esi 1342 roll $5,%ebx 1343 addl %edi,%eax 1344 rorl $7,%ecx 1345 addl %ebx,%eax 1346 movups %xmm2,48(%r13,%r12,1) 1347 movq 88(%rsp),%r8 1348 1349 addl 0(%r9),%eax 1350 addl 4(%r9),%esi 1351 addl 8(%r9),%ecx 1352 movl %eax,0(%r9) 1353 addl 12(%r9),%edx 1354 movl %esi,4(%r9) 1355 addl 16(%r9),%ebp 1356 movl %ecx,8(%r9) 1357 movl %edx,12(%r9) 1358 movl %ebp,16(%r9) 1359 movups %xmm2,(%r8) 1360 leaq 104(%rsp),%rsi 1361 movq 0(%rsi),%r15 1362 movq 8(%rsi),%r14 1363 movq 16(%rsi),%r13 1364 movq 24(%rsi),%r12 1365 movq 32(%rsi),%rbp 1366 movq 40(%rsi),%rbx 1367 leaq 48(%rsi),%rsp 1368.Lepilogue_ssse3: 1369 .byte 0xf3,0xc3 1370.size aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3 1371.align 64 1372K_XX_XX: 1373.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 1374.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 1375.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc 1376.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 1377.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f 1378.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 1379 1380.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 1381.align 64 1382.type aesni_cbc_sha1_enc_shaext,@function 1383.align 32 1384aesni_cbc_sha1_enc_shaext: 1385 movq 8(%rsp),%r10 1386 movdqu (%r9),%xmm8 1387 movd 16(%r9),%xmm9 1388 movdqa K_XX_XX+80(%rip),%xmm7 1389 1390 movl 240(%rcx),%r11d 1391 subq %rdi,%rsi 1392 movups (%rcx),%xmm15 1393 movups 16(%rcx),%xmm0 1394 leaq 112(%rcx),%rcx 1395 1396 pshufd $27,%xmm8,%xmm8 1397 pshufd $27,%xmm9,%xmm9 1398 jmp .Loop_shaext 1399 1400.align 16 1401.Loop_shaext: 1402 movups 0(%rdi),%xmm14 1403 xorps %xmm15,%xmm14 1404 xorps %xmm14,%xmm2 1405 movups -80(%rcx),%xmm1 1406.byte 102,15,56,220,208 1407 movdqu (%r10),%xmm3 1408 movdqa %xmm9,%xmm12 1409.byte 102,15,56,0,223 1410 movdqu 16(%r10),%xmm4 1411 movdqa %xmm8,%xmm11 1412 movups -64(%rcx),%xmm0 1413.byte 102,15,56,220,209 1414.byte 102,15,56,0,231 1415 1416 paddd %xmm3,%xmm9 1417 movdqu 32(%r10),%xmm5 1418 leaq 64(%r10),%r10 1419 pxor %xmm12,%xmm3 1420 movups -48(%rcx),%xmm1 1421.byte 102,15,56,220,208 1422 pxor %xmm12,%xmm3 1423 movdqa %xmm8,%xmm10 1424.byte 102,15,56,0,239 1425.byte 69,15,58,204,193,0 1426.byte 68,15,56,200,212 1427 movups -32(%rcx),%xmm0 1428.byte 102,15,56,220,209 1429.byte 15,56,201,220 1430 movdqu -16(%r10),%xmm6 1431 movdqa %xmm8,%xmm9 1432.byte 102,15,56,0,247 1433 movups -16(%rcx),%xmm1 1434.byte 102,15,56,220,208 1435.byte 69,15,58,204,194,0 1436.byte 68,15,56,200,205 1437 pxor %xmm5,%xmm3 1438.byte 15,56,201,229 1439 movups 0(%rcx),%xmm0 1440.byte 102,15,56,220,209 1441 movdqa %xmm8,%xmm10 1442.byte 69,15,58,204,193,0 1443.byte 68,15,56,200,214 1444 movups 16(%rcx),%xmm1 1445.byte 102,15,56,220,208 1446.byte 15,56,202,222 1447 pxor %xmm6,%xmm4 1448.byte 15,56,201,238 1449 movups 32(%rcx),%xmm0 1450.byte 102,15,56,220,209 1451 movdqa %xmm8,%xmm9 1452.byte 69,15,58,204,194,0 1453.byte 68,15,56,200,203 1454 movups 48(%rcx),%xmm1 1455.byte 102,15,56,220,208 1456.byte 15,56,202,227 1457 pxor %xmm3,%xmm5 1458.byte 15,56,201,243 1459 cmpl $11,%r11d 1460 jb .Laesenclast6 1461 movups 64(%rcx),%xmm0 1462.byte 102,15,56,220,209 1463 movups 80(%rcx),%xmm1 1464.byte 102,15,56,220,208 1465 je .Laesenclast6 1466 movups 96(%rcx),%xmm0 1467.byte 102,15,56,220,209 1468 movups 112(%rcx),%xmm1 1469.byte 102,15,56,220,208 1470.Laesenclast6: 1471.byte 102,15,56,221,209 1472 movups 16-112(%rcx),%xmm0 1473 movdqa %xmm8,%xmm10 1474.byte 69,15,58,204,193,0 1475.byte 68,15,56,200,212 1476 movups 16(%rdi),%xmm14 1477 xorps %xmm15,%xmm14 1478 movups %xmm2,0(%rsi,%rdi,1) 1479 xorps %xmm14,%xmm2 1480 movups -80(%rcx),%xmm1 1481.byte 102,15,56,220,208 1482.byte 15,56,202,236 1483 pxor %xmm4,%xmm6 1484.byte 15,56,201,220 1485 movups -64(%rcx),%xmm0 1486.byte 102,15,56,220,209 1487 movdqa %xmm8,%xmm9 1488.byte 69,15,58,204,194,1 1489.byte 68,15,56,200,205 1490 movups -48(%rcx),%xmm1 1491.byte 102,15,56,220,208 1492.byte 15,56,202,245 1493 pxor %xmm5,%xmm3 1494.byte 15,56,201,229 1495 movups -32(%rcx),%xmm0 1496.byte 102,15,56,220,209 1497 movdqa %xmm8,%xmm10 1498.byte 69,15,58,204,193,1 1499.byte 68,15,56,200,214 1500 movups -16(%rcx),%xmm1 1501.byte 102,15,56,220,208 1502.byte 15,56,202,222 1503 pxor %xmm6,%xmm4 1504.byte 15,56,201,238 1505 movups 0(%rcx),%xmm0 1506.byte 102,15,56,220,209 1507 movdqa %xmm8,%xmm9 1508.byte 69,15,58,204,194,1 1509.byte 68,15,56,200,203 1510 movups 16(%rcx),%xmm1 1511.byte 102,15,56,220,208 1512.byte 15,56,202,227 1513 pxor %xmm3,%xmm5 1514.byte 15,56,201,243 1515 movups 32(%rcx),%xmm0 1516.byte 102,15,56,220,209 1517 movdqa %xmm8,%xmm10 1518.byte 69,15,58,204,193,1 1519.byte 68,15,56,200,212 1520 movups 48(%rcx),%xmm1 1521.byte 102,15,56,220,208 1522.byte 15,56,202,236 1523 pxor %xmm4,%xmm6 1524.byte 15,56,201,220 1525 cmpl $11,%r11d 1526 jb .Laesenclast7 1527 movups 64(%rcx),%xmm0 1528.byte 102,15,56,220,209 1529 movups 80(%rcx),%xmm1 1530.byte 102,15,56,220,208 1531 je .Laesenclast7 1532 movups 96(%rcx),%xmm0 1533.byte 102,15,56,220,209 1534 movups 112(%rcx),%xmm1 1535.byte 102,15,56,220,208 1536.Laesenclast7: 1537.byte 102,15,56,221,209 1538 movups 16-112(%rcx),%xmm0 1539 movdqa %xmm8,%xmm9 1540.byte 69,15,58,204,194,1 1541.byte 68,15,56,200,205 1542 movups 32(%rdi),%xmm14 1543 xorps %xmm15,%xmm14 1544 movups %xmm2,16(%rsi,%rdi,1) 1545 xorps %xmm14,%xmm2 1546 movups -80(%rcx),%xmm1 1547.byte 102,15,56,220,208 1548.byte 15,56,202,245 1549 pxor %xmm5,%xmm3 1550.byte 15,56,201,229 1551 movups -64(%rcx),%xmm0 1552.byte 102,15,56,220,209 1553 movdqa %xmm8,%xmm10 1554.byte 69,15,58,204,193,2 1555.byte 68,15,56,200,214 1556 movups -48(%rcx),%xmm1 1557.byte 102,15,56,220,208 1558.byte 15,56,202,222 1559 pxor %xmm6,%xmm4 1560.byte 15,56,201,238 1561 movups -32(%rcx),%xmm0 1562.byte 102,15,56,220,209 1563 movdqa %xmm8,%xmm9 1564.byte 69,15,58,204,194,2 1565.byte 68,15,56,200,203 1566 movups -16(%rcx),%xmm1 1567.byte 102,15,56,220,208 1568.byte 15,56,202,227 1569 pxor %xmm3,%xmm5 1570.byte 15,56,201,243 1571 movups 0(%rcx),%xmm0 1572.byte 102,15,56,220,209 1573 movdqa %xmm8,%xmm10 1574.byte 69,15,58,204,193,2 1575.byte 68,15,56,200,212 1576 movups 16(%rcx),%xmm1 1577.byte 102,15,56,220,208 1578.byte 15,56,202,236 1579 pxor %xmm4,%xmm6 1580.byte 15,56,201,220 1581 movups 32(%rcx),%xmm0 1582.byte 102,15,56,220,209 1583 movdqa %xmm8,%xmm9 1584.byte 69,15,58,204,194,2 1585.byte 68,15,56,200,205 1586 movups 48(%rcx),%xmm1 1587.byte 102,15,56,220,208 1588.byte 15,56,202,245 1589 pxor %xmm5,%xmm3 1590.byte 15,56,201,229 1591 cmpl $11,%r11d 1592 jb .Laesenclast8 1593 movups 64(%rcx),%xmm0 1594.byte 102,15,56,220,209 1595 movups 80(%rcx),%xmm1 1596.byte 102,15,56,220,208 1597 je .Laesenclast8 1598 movups 96(%rcx),%xmm0 1599.byte 102,15,56,220,209 1600 movups 112(%rcx),%xmm1 1601.byte 102,15,56,220,208 1602.Laesenclast8: 1603.byte 102,15,56,221,209 1604 movups 16-112(%rcx),%xmm0 1605 movdqa %xmm8,%xmm10 1606.byte 69,15,58,204,193,2 1607.byte 68,15,56,200,214 1608 movups 48(%rdi),%xmm14 1609 xorps %xmm15,%xmm14 1610 movups %xmm2,32(%rsi,%rdi,1) 1611 xorps %xmm14,%xmm2 1612 movups -80(%rcx),%xmm1 1613.byte 102,15,56,220,208 1614.byte 15,56,202,222 1615 pxor %xmm6,%xmm4 1616.byte 15,56,201,238 1617 movups -64(%rcx),%xmm0 1618.byte 102,15,56,220,209 1619 movdqa %xmm8,%xmm9 1620.byte 69,15,58,204,194,3 1621.byte 68,15,56,200,203 1622 movups -48(%rcx),%xmm1 1623.byte 102,15,56,220,208 1624.byte 15,56,202,227 1625 pxor %xmm3,%xmm5 1626.byte 15,56,201,243 1627 movups -32(%rcx),%xmm0 1628.byte 102,15,56,220,209 1629 movdqa %xmm8,%xmm10 1630.byte 69,15,58,204,193,3 1631.byte 68,15,56,200,212 1632.byte 15,56,202,236 1633 pxor %xmm4,%xmm6 1634 movups -16(%rcx),%xmm1 1635.byte 102,15,56,220,208 1636 movdqa %xmm8,%xmm9 1637.byte 69,15,58,204,194,3 1638.byte 68,15,56,200,205 1639.byte 15,56,202,245 1640 movups 0(%rcx),%xmm0 1641.byte 102,15,56,220,209 1642 movdqa %xmm12,%xmm5 1643 movdqa %xmm8,%xmm10 1644.byte 69,15,58,204,193,3 1645.byte 68,15,56,200,214 1646 movups 16(%rcx),%xmm1 1647.byte 102,15,56,220,208 1648 movdqa %xmm8,%xmm9 1649.byte 69,15,58,204,194,3 1650.byte 68,15,56,200,205 1651 movups 32(%rcx),%xmm0 1652.byte 102,15,56,220,209 1653 movups 48(%rcx),%xmm1 1654.byte 102,15,56,220,208 1655 cmpl $11,%r11d 1656 jb .Laesenclast9 1657 movups 64(%rcx),%xmm0 1658.byte 102,15,56,220,209 1659 movups 80(%rcx),%xmm1 1660.byte 102,15,56,220,208 1661 je .Laesenclast9 1662 movups 96(%rcx),%xmm0 1663.byte 102,15,56,220,209 1664 movups 112(%rcx),%xmm1 1665.byte 102,15,56,220,208 1666.Laesenclast9: 1667.byte 102,15,56,221,209 1668 movups 16-112(%rcx),%xmm0 1669 decq %rdx 1670 1671 paddd %xmm11,%xmm8 1672 movups %xmm2,48(%rsi,%rdi,1) 1673 leaq 64(%rdi),%rdi 1674 jnz .Loop_shaext 1675 1676 pshufd $27,%xmm8,%xmm8 1677 pshufd $27,%xmm9,%xmm9 1678 movups %xmm2,(%r8) 1679 movdqu %xmm8,(%r9) 1680 movd %xmm9,16(%r9) 1681 .byte 0xf3,0xc3 1682.size aesni_cbc_sha1_enc_shaext,.-aesni_cbc_sha1_enc_shaext 1683