1.text 2.globl aesni_encrypt 3.type aesni_encrypt,@function 4.align 16 5aesni_encrypt: 6 movups (%rdi),%xmm0 7 movl 240(%rdx),%eax 8 movaps (%rdx),%xmm4 9 movaps 16(%rdx),%xmm5 10 leaq 32(%rdx),%rdx 11 pxor %xmm4,%xmm0 12.Loop_enc1_1: 13.byte 102,15,56,220,197 14 decl %eax 15 movaps (%rdx),%xmm5 16 leaq 16(%rdx),%rdx 17 jnz .Loop_enc1_1 18.byte 102,15,56,221,197 19 movups %xmm0,(%rsi) 20 .byte 0xf3,0xc3 21.size aesni_encrypt,.-aesni_encrypt 22 23.globl aesni_decrypt 24.type aesni_decrypt,@function 25.align 16 26aesni_decrypt: 27 movups (%rdi),%xmm0 28 movl 240(%rdx),%eax 29 movaps (%rdx),%xmm4 30 movaps 16(%rdx),%xmm5 31 leaq 32(%rdx),%rdx 32 pxor %xmm4,%xmm0 33.Loop_dec1_2: 34.byte 102,15,56,222,197 35 decl %eax 36 movaps (%rdx),%xmm5 37 leaq 16(%rdx),%rdx 38 jnz .Loop_dec1_2 39.byte 102,15,56,223,197 40 movups %xmm0,(%rsi) 41 .byte 0xf3,0xc3 42.size aesni_decrypt, .-aesni_decrypt 43.type _aesni_encrypt3,@function 44.align 16 45_aesni_encrypt3: 46 movaps (%rcx),%xmm4 47 shrl $1,%eax 48 movaps 16(%rcx),%xmm5 49 leaq 32(%rcx),%rcx 50 pxor %xmm4,%xmm0 51 pxor %xmm4,%xmm1 52 pxor %xmm4,%xmm2 53 54.Lenc_loop3: 55.byte 102,15,56,220,197 56 movaps (%rcx),%xmm4 57.byte 102,15,56,220,205 58 decl %eax 59.byte 102,15,56,220,213 60.byte 102,15,56,220,196 61 movaps 16(%rcx),%xmm5 62.byte 102,15,56,220,204 63 leaq 32(%rcx),%rcx 64.byte 102,15,56,220,212 65 jnz .Lenc_loop3 66 67.byte 102,15,56,220,197 68 movaps (%rcx),%xmm4 69.byte 102,15,56,220,205 70.byte 102,15,56,220,213 71.byte 102,15,56,221,196 72.byte 102,15,56,221,204 73.byte 102,15,56,221,212 74 .byte 0xf3,0xc3 75.size _aesni_encrypt3,.-_aesni_encrypt3 76.type _aesni_decrypt3,@function 77.align 16 78_aesni_decrypt3: 79 movaps (%rcx),%xmm4 80 shrl $1,%eax 81 movaps 16(%rcx),%xmm5 82 leaq 32(%rcx),%rcx 83 pxor %xmm4,%xmm0 84 pxor %xmm4,%xmm1 85 pxor %xmm4,%xmm2 86 87.Ldec_loop3: 88.byte 102,15,56,222,197 89 movaps (%rcx),%xmm4 90.byte 102,15,56,222,205 91 decl %eax 92.byte 102,15,56,222,213 93.byte 102,15,56,222,196 94 movaps 16(%rcx),%xmm5 95.byte 102,15,56,222,204 96 leaq 32(%rcx),%rcx 97.byte 102,15,56,222,212 98 jnz .Ldec_loop3 99 100.byte 102,15,56,222,197 101 movaps (%rcx),%xmm4 102.byte 102,15,56,222,205 103.byte 102,15,56,222,213 104.byte 102,15,56,223,196 105.byte 102,15,56,223,204 106.byte 102,15,56,223,212 107 .byte 0xf3,0xc3 108.size _aesni_decrypt3,.-_aesni_decrypt3 109.type _aesni_encrypt4,@function 110.align 16 111_aesni_encrypt4: 112 movaps (%rcx),%xmm4 113 shrl $1,%eax 114 movaps 16(%rcx),%xmm5 115 leaq 32(%rcx),%rcx 116 pxor %xmm4,%xmm0 117 pxor %xmm4,%xmm1 118 pxor %xmm4,%xmm2 119 pxor %xmm4,%xmm3 120 121.Lenc_loop4: 122.byte 102,15,56,220,197 123 movaps (%rcx),%xmm4 124.byte 102,15,56,220,205 125 decl %eax 126.byte 102,15,56,220,213 127.byte 102,15,56,220,221 128.byte 102,15,56,220,196 129 movaps 16(%rcx),%xmm5 130.byte 102,15,56,220,204 131 leaq 32(%rcx),%rcx 132.byte 102,15,56,220,212 133.byte 102,15,56,220,220 134 jnz .Lenc_loop4 135 136.byte 102,15,56,220,197 137 movaps (%rcx),%xmm4 138.byte 102,15,56,220,205 139.byte 102,15,56,220,213 140.byte 102,15,56,220,221 141.byte 102,15,56,221,196 142.byte 102,15,56,221,204 143.byte 102,15,56,221,212 144.byte 102,15,56,221,220 145 .byte 0xf3,0xc3 146.size _aesni_encrypt4,.-_aesni_encrypt4 147.type _aesni_decrypt4,@function 148.align 16 149_aesni_decrypt4: 150 movaps (%rcx),%xmm4 151 shrl $1,%eax 152 movaps 16(%rcx),%xmm5 153 leaq 32(%rcx),%rcx 154 pxor %xmm4,%xmm0 155 pxor %xmm4,%xmm1 156 pxor %xmm4,%xmm2 157 pxor %xmm4,%xmm3 158 159.Ldec_loop4: 160.byte 102,15,56,222,197 161 movaps (%rcx),%xmm4 162.byte 102,15,56,222,205 163 decl %eax 164.byte 102,15,56,222,213 165.byte 102,15,56,222,221 166.byte 102,15,56,222,196 167 movaps 16(%rcx),%xmm5 168.byte 102,15,56,222,204 169 leaq 32(%rcx),%rcx 170.byte 102,15,56,222,212 171.byte 102,15,56,222,220 172 jnz .Ldec_loop4 173 174.byte 102,15,56,222,197 175 movaps (%rcx),%xmm4 176.byte 102,15,56,222,205 177.byte 102,15,56,222,213 178.byte 102,15,56,222,221 179.byte 102,15,56,223,196 180.byte 102,15,56,223,204 181.byte 102,15,56,223,212 182.byte 102,15,56,223,220 183 .byte 0xf3,0xc3 184.size _aesni_decrypt4,.-_aesni_decrypt4 185.globl aesni_ecb_encrypt 186.type aesni_ecb_encrypt,@function 187.align 16 188aesni_ecb_encrypt: 189 cmpq $16,%rdx 190 jb .Lecb_ret 191 192 movl 240(%rcx),%eax 193 andq $-16,%rdx 194 movq %rcx,%r11 195 testl %r8d,%r8d 196 movl %eax,%r10d 197 jz .Lecb_decrypt 198 199 subq $64,%rdx 200 jbe .Lecb_enc_tail 201 jmp .Lecb_enc_loop3 202.align 16 203.Lecb_enc_loop3: 204 movups (%rdi),%xmm0 205 movups 16(%rdi),%xmm1 206 movups 32(%rdi),%xmm2 207 call _aesni_encrypt3 208 subq $48,%rdx 209 leaq 48(%rdi),%rdi 210 leaq 48(%rsi),%rsi 211 movups %xmm0,-48(%rsi) 212 movl %r10d,%eax 213 movups %xmm1,-32(%rsi) 214 movq %r11,%rcx 215 movups %xmm2,-16(%rsi) 216 ja .Lecb_enc_loop3 217 218.Lecb_enc_tail: 219 addq $64,%rdx 220 jz .Lecb_ret 221 222 cmpq $16,%rdx 223 movups (%rdi),%xmm0 224 je .Lecb_enc_one 225 cmpq $32,%rdx 226 movups 16(%rdi),%xmm1 227 je .Lecb_enc_two 228 cmpq $48,%rdx 229 movups 32(%rdi),%xmm2 230 je .Lecb_enc_three 231 movups 48(%rdi),%xmm3 232 call _aesni_encrypt4 233 movups %xmm0,(%rsi) 234 movups %xmm1,16(%rsi) 235 movups %xmm2,32(%rsi) 236 movups %xmm3,48(%rsi) 237 jmp .Lecb_ret 238.align 16 239.Lecb_enc_one: 240 movaps (%rcx),%xmm4 241 movaps 16(%rcx),%xmm5 242 leaq 32(%rcx),%rcx 243 pxor %xmm4,%xmm0 244.Loop_enc1_3: 245.byte 102,15,56,220,197 246 decl %eax 247 movaps (%rcx),%xmm5 248 leaq 16(%rcx),%rcx 249 jnz .Loop_enc1_3 250.byte 102,15,56,221,197 251 movups %xmm0,(%rsi) 252 jmp .Lecb_ret 253.align 16 254.Lecb_enc_two: 255 call _aesni_encrypt3 256 movups %xmm0,(%rsi) 257 movups %xmm1,16(%rsi) 258 jmp .Lecb_ret 259.align 16 260.Lecb_enc_three: 261 call _aesni_encrypt3 262 movups %xmm0,(%rsi) 263 movups %xmm1,16(%rsi) 264 movups %xmm2,32(%rsi) 265 jmp .Lecb_ret 266 267.align 16 268.Lecb_decrypt: 269 subq $64,%rdx 270 jbe .Lecb_dec_tail 271 jmp .Lecb_dec_loop3 272.align 16 273.Lecb_dec_loop3: 274 movups (%rdi),%xmm0 275 movups 16(%rdi),%xmm1 276 movups 32(%rdi),%xmm2 277 call _aesni_decrypt3 278 subq $48,%rdx 279 leaq 48(%rdi),%rdi 280 leaq 48(%rsi),%rsi 281 movups %xmm0,-48(%rsi) 282 movl %r10d,%eax 283 movups %xmm1,-32(%rsi) 284 movq %r11,%rcx 285 movups %xmm2,-16(%rsi) 286 ja .Lecb_dec_loop3 287 288.Lecb_dec_tail: 289 addq $64,%rdx 290 jz .Lecb_ret 291 292 cmpq $16,%rdx 293 movups (%rdi),%xmm0 294 je .Lecb_dec_one 295 cmpq $32,%rdx 296 movups 16(%rdi),%xmm1 297 je .Lecb_dec_two 298 cmpq $48,%rdx 299 movups 32(%rdi),%xmm2 300 je .Lecb_dec_three 301 movups 48(%rdi),%xmm3 302 call _aesni_decrypt4 303 movups %xmm0,(%rsi) 304 movups %xmm1,16(%rsi) 305 movups %xmm2,32(%rsi) 306 movups %xmm3,48(%rsi) 307 jmp .Lecb_ret 308.align 16 309.Lecb_dec_one: 310 movaps (%rcx),%xmm4 311 movaps 16(%rcx),%xmm5 312 leaq 32(%rcx),%rcx 313 pxor %xmm4,%xmm0 314.Loop_dec1_4: 315.byte 102,15,56,222,197 316 decl %eax 317 movaps (%rcx),%xmm5 318 leaq 16(%rcx),%rcx 319 jnz .Loop_dec1_4 320.byte 102,15,56,223,197 321 movups %xmm0,(%rsi) 322 jmp .Lecb_ret 323.align 16 324.Lecb_dec_two: 325 call _aesni_decrypt3 326 movups %xmm0,(%rsi) 327 movups %xmm1,16(%rsi) 328 jmp .Lecb_ret 329.align 16 330.Lecb_dec_three: 331 call _aesni_decrypt3 332 movups %xmm0,(%rsi) 333 movups %xmm1,16(%rsi) 334 movups %xmm2,32(%rsi) 335 336.Lecb_ret: 337 .byte 0xf3,0xc3 338.size aesni_ecb_encrypt,.-aesni_ecb_encrypt 339.globl aesni_cbc_encrypt 340.type aesni_cbc_encrypt,@function 341.align 16 342aesni_cbc_encrypt: 343 testq %rdx,%rdx 344 jz .Lcbc_ret 345 346 movl 240(%rcx),%r10d 347 movq %rcx,%r11 348 testl %r9d,%r9d 349 jz .Lcbc_decrypt 350 351 movups (%r8),%xmm0 352 cmpq $16,%rdx 353 movl %r10d,%eax 354 jb .Lcbc_enc_tail 355 subq $16,%rdx 356 jmp .Lcbc_enc_loop 357.align 16 358.Lcbc_enc_loop: 359 movups (%rdi),%xmm1 360 leaq 16(%rdi),%rdi 361 pxor %xmm1,%xmm0 362 movaps (%rcx),%xmm4 363 movaps 16(%rcx),%xmm5 364 leaq 32(%rcx),%rcx 365 pxor %xmm4,%xmm0 366.Loop_enc1_5: 367.byte 102,15,56,220,197 368 decl %eax 369 movaps (%rcx),%xmm5 370 leaq 16(%rcx),%rcx 371 jnz .Loop_enc1_5 372.byte 102,15,56,221,197 373 subq $16,%rdx 374 leaq 16(%rsi),%rsi 375 movl %r10d,%eax 376 movq %r11,%rcx 377 movups %xmm0,-16(%rsi) 378 jnc .Lcbc_enc_loop 379 addq $16,%rdx 380 jnz .Lcbc_enc_tail 381 movups %xmm0,(%r8) 382 jmp .Lcbc_ret 383 384.Lcbc_enc_tail: 385 movq %rdx,%rcx 386 xchgq %rdi,%rsi 387.long 0x9066A4F3 388 movl $16,%ecx 389 subq %rdx,%rcx 390 xorl %eax,%eax 391.long 0x9066AAF3 392 leaq -16(%rdi),%rdi 393 movl %r10d,%eax 394 movq %rdi,%rsi 395 movq %r11,%rcx 396 xorq %rdx,%rdx 397 jmp .Lcbc_enc_loop 398 399.align 16 400.Lcbc_decrypt: 401 movups (%r8),%xmm6 402 subq $64,%rdx 403 movl %r10d,%eax 404 jbe .Lcbc_dec_tail 405 jmp .Lcbc_dec_loop3 406.align 16 407.Lcbc_dec_loop3: 408 movups (%rdi),%xmm0 409 movups 16(%rdi),%xmm1 410 movups 32(%rdi),%xmm2 411 movaps %xmm0,%xmm7 412 movaps %xmm1,%xmm8 413 movaps %xmm2,%xmm9 414 call _aesni_decrypt3 415 subq $48,%rdx 416 leaq 48(%rdi),%rdi 417 leaq 48(%rsi),%rsi 418 pxor %xmm6,%xmm0 419 pxor %xmm7,%xmm1 420 movaps %xmm9,%xmm6 421 pxor %xmm8,%xmm2 422 movups %xmm0,-48(%rsi) 423 movl %r10d,%eax 424 movups %xmm1,-32(%rsi) 425 movq %r11,%rcx 426 movups %xmm2,-16(%rsi) 427 ja .Lcbc_dec_loop3 428 429.Lcbc_dec_tail: 430 addq $64,%rdx 431 movups %xmm6,(%r8) 432 jz .Lcbc_dec_ret 433 434 movups (%rdi),%xmm0 435 cmpq $16,%rdx 436 movaps %xmm0,%xmm7 437 jbe .Lcbc_dec_one 438 movups 16(%rdi),%xmm1 439 cmpq $32,%rdx 440 movaps %xmm1,%xmm8 441 jbe .Lcbc_dec_two 442 movups 32(%rdi),%xmm2 443 cmpq $48,%rdx 444 movaps %xmm2,%xmm9 445 jbe .Lcbc_dec_three 446 movups 48(%rdi),%xmm3 447 call _aesni_decrypt4 448 pxor %xmm6,%xmm0 449 movups 48(%rdi),%xmm6 450 pxor %xmm7,%xmm1 451 movups %xmm0,(%rsi) 452 pxor %xmm8,%xmm2 453 movups %xmm1,16(%rsi) 454 pxor %xmm9,%xmm3 455 movups %xmm2,32(%rsi) 456 movaps %xmm3,%xmm0 457 leaq 48(%rsi),%rsi 458 jmp .Lcbc_dec_tail_collected 459.align 16 460.Lcbc_dec_one: 461 movaps (%rcx),%xmm4 462 movaps 16(%rcx),%xmm5 463 leaq 32(%rcx),%rcx 464 pxor %xmm4,%xmm0 465.Loop_dec1_6: 466.byte 102,15,56,222,197 467 decl %eax 468 movaps (%rcx),%xmm5 469 leaq 16(%rcx),%rcx 470 jnz .Loop_dec1_6 471.byte 102,15,56,223,197 472 pxor %xmm6,%xmm0 473 movaps %xmm7,%xmm6 474 jmp .Lcbc_dec_tail_collected 475.align 16 476.Lcbc_dec_two: 477 call _aesni_decrypt3 478 pxor %xmm6,%xmm0 479 pxor %xmm7,%xmm1 480 movups %xmm0,(%rsi) 481 movaps %xmm8,%xmm6 482 movaps %xmm1,%xmm0 483 leaq 16(%rsi),%rsi 484 jmp .Lcbc_dec_tail_collected 485.align 16 486.Lcbc_dec_three: 487 call _aesni_decrypt3 488 pxor %xmm6,%xmm0 489 pxor %xmm7,%xmm1 490 movups %xmm0,(%rsi) 491 pxor %xmm8,%xmm2 492 movups %xmm1,16(%rsi) 493 movaps %xmm9,%xmm6 494 movaps %xmm2,%xmm0 495 leaq 32(%rsi),%rsi 496 jmp .Lcbc_dec_tail_collected 497.align 16 498.Lcbc_dec_tail_collected: 499 andq $15,%rdx 500 movups %xmm6,(%r8) 501 jnz .Lcbc_dec_tail_partial 502 movups %xmm0,(%rsi) 503 jmp .Lcbc_dec_ret 504.Lcbc_dec_tail_partial: 505 movaps %xmm0,-24(%rsp) 506 movq %rsi,%rdi 507 movq %rdx,%rcx 508 leaq -24(%rsp),%rsi 509.long 0x9066A4F3 510 511.Lcbc_dec_ret: 512.Lcbc_ret: 513 .byte 0xf3,0xc3 514.size aesni_cbc_encrypt,.-aesni_cbc_encrypt 515.globl aesni_set_decrypt_key 516.type aesni_set_decrypt_key,@function 517.align 16 518aesni_set_decrypt_key: 519.byte 0x48,0x83,0xEC,0x08 520 call _aesni_set_encrypt_key 521 shll $4,%esi 522 testl %eax,%eax 523 jnz .Ldec_key_ret 524 leaq 16(%rdx,%rsi,1),%rdi 525 526 movaps (%rdx),%xmm0 527 movaps (%rdi),%xmm1 528 movaps %xmm0,(%rdi) 529 movaps %xmm1,(%rdx) 530 leaq 16(%rdx),%rdx 531 leaq -16(%rdi),%rdi 532 533.Ldec_key_inverse: 534 movaps (%rdx),%xmm0 535 movaps (%rdi),%xmm1 536.byte 102,15,56,219,192 537.byte 102,15,56,219,201 538 leaq 16(%rdx),%rdx 539 leaq -16(%rdi),%rdi 540 cmpq %rdx,%rdi 541 movaps %xmm0,16(%rdi) 542 movaps %xmm1,-16(%rdx) 543 ja .Ldec_key_inverse 544 545 movaps (%rdx),%xmm0 546.byte 102,15,56,219,192 547 movaps %xmm0,(%rdi) 548.Ldec_key_ret: 549 addq $8,%rsp 550 .byte 0xf3,0xc3 551.LSEH_end_set_decrypt_key: 552.size aesni_set_decrypt_key,.-aesni_set_decrypt_key 553.globl aesni_set_encrypt_key 554.type aesni_set_encrypt_key,@function 555.align 16 556aesni_set_encrypt_key: 557_aesni_set_encrypt_key: 558.byte 0x48,0x83,0xEC,0x08 559 testq %rdi,%rdi 560 movq $-1,%rax 561 jz .Lenc_key_ret 562 testq %rdx,%rdx 563 jz .Lenc_key_ret 564 565 movups (%rdi),%xmm0 566 pxor %xmm4,%xmm4 567 leaq 16(%rdx),%rax 568 cmpl $256,%esi 569 je .L14rounds 570 cmpl $192,%esi 571 je .L12rounds 572 cmpl $128,%esi 573 jne .Lbad_keybits 574 575.L10rounds: 576 movl $9,%esi 577 movaps %xmm0,(%rdx) 578.byte 102,15,58,223,200,1 579 call .Lkey_expansion_128_cold 580.byte 102,15,58,223,200,2 581 call .Lkey_expansion_128 582.byte 102,15,58,223,200,4 583 call .Lkey_expansion_128 584.byte 102,15,58,223,200,8 585 call .Lkey_expansion_128 586.byte 102,15,58,223,200,16 587 call .Lkey_expansion_128 588.byte 102,15,58,223,200,32 589 call .Lkey_expansion_128 590.byte 102,15,58,223,200,64 591 call .Lkey_expansion_128 592.byte 102,15,58,223,200,128 593 call .Lkey_expansion_128 594.byte 102,15,58,223,200,27 595 call .Lkey_expansion_128 596.byte 102,15,58,223,200,54 597 call .Lkey_expansion_128 598 movaps %xmm0,(%rax) 599 movl %esi,80(%rax) 600 xorl %eax,%eax 601 jmp .Lenc_key_ret 602 603.align 16 604.L12rounds: 605 movq 16(%rdi),%xmm2 606 movl $11,%esi 607 movaps %xmm0,(%rdx) 608.byte 102,15,58,223,202,1 609 call .Lkey_expansion_192a_cold 610.byte 102,15,58,223,202,2 611 call .Lkey_expansion_192b 612.byte 102,15,58,223,202,4 613 call .Lkey_expansion_192a 614.byte 102,15,58,223,202,8 615 call .Lkey_expansion_192b 616.byte 102,15,58,223,202,16 617 call .Lkey_expansion_192a 618.byte 102,15,58,223,202,32 619 call .Lkey_expansion_192b 620.byte 102,15,58,223,202,64 621 call .Lkey_expansion_192a 622.byte 102,15,58,223,202,128 623 call .Lkey_expansion_192b 624 movaps %xmm0,(%rax) 625 movl %esi,48(%rax) 626 xorq %rax,%rax 627 jmp .Lenc_key_ret 628 629.align 16 630.L14rounds: 631 movups 16(%rdi),%xmm2 632 movl $13,%esi 633 leaq 16(%rax),%rax 634 movaps %xmm0,(%rdx) 635 movaps %xmm2,16(%rdx) 636.byte 102,15,58,223,202,1 637 call .Lkey_expansion_256a_cold 638.byte 102,15,58,223,200,1 639 call .Lkey_expansion_256b 640.byte 102,15,58,223,202,2 641 call .Lkey_expansion_256a 642.byte 102,15,58,223,200,2 643 call .Lkey_expansion_256b 644.byte 102,15,58,223,202,4 645 call .Lkey_expansion_256a 646.byte 102,15,58,223,200,4 647 call .Lkey_expansion_256b 648.byte 102,15,58,223,202,8 649 call .Lkey_expansion_256a 650.byte 102,15,58,223,200,8 651 call .Lkey_expansion_256b 652.byte 102,15,58,223,202,16 653 call .Lkey_expansion_256a 654.byte 102,15,58,223,200,16 655 call .Lkey_expansion_256b 656.byte 102,15,58,223,202,32 657 call .Lkey_expansion_256a 658.byte 102,15,58,223,200,32 659 call .Lkey_expansion_256b 660.byte 102,15,58,223,202,64 661 call .Lkey_expansion_256a 662 movaps %xmm0,(%rax) 663 movl %esi,16(%rax) 664 xorq %rax,%rax 665 jmp .Lenc_key_ret 666 667.align 16 668.Lbad_keybits: 669 movq $-2,%rax 670.Lenc_key_ret: 671 addq $8,%rsp 672 .byte 0xf3,0xc3 673.LSEH_end_set_encrypt_key: 674 675.align 16 676.Lkey_expansion_128: 677 movaps %xmm0,(%rax) 678 leaq 16(%rax),%rax 679.Lkey_expansion_128_cold: 680 shufps $16,%xmm0,%xmm4 681 pxor %xmm4,%xmm0 682 shufps $140,%xmm0,%xmm4 683 pxor %xmm4,%xmm0 684 pshufd $255,%xmm1,%xmm1 685 pxor %xmm1,%xmm0 686 .byte 0xf3,0xc3 687 688.align 16 689.Lkey_expansion_192a: 690 movaps %xmm0,(%rax) 691 leaq 16(%rax),%rax 692.Lkey_expansion_192a_cold: 693 movaps %xmm2,%xmm5 694.Lkey_expansion_192b_warm: 695 shufps $16,%xmm0,%xmm4 696 movaps %xmm2,%xmm3 697 pxor %xmm4,%xmm0 698 shufps $140,%xmm0,%xmm4 699 pslldq $4,%xmm3 700 pxor %xmm4,%xmm0 701 pshufd $85,%xmm1,%xmm1 702 pxor %xmm3,%xmm2 703 pxor %xmm1,%xmm0 704 pshufd $255,%xmm0,%xmm3 705 pxor %xmm3,%xmm2 706 .byte 0xf3,0xc3 707 708.align 16 709.Lkey_expansion_192b: 710 movaps %xmm0,%xmm3 711 shufps $68,%xmm0,%xmm5 712 movaps %xmm5,(%rax) 713 shufps $78,%xmm2,%xmm3 714 movaps %xmm3,16(%rax) 715 leaq 32(%rax),%rax 716 jmp .Lkey_expansion_192b_warm 717 718.align 16 719.Lkey_expansion_256a: 720 movaps %xmm2,(%rax) 721 leaq 16(%rax),%rax 722.Lkey_expansion_256a_cold: 723 shufps $16,%xmm0,%xmm4 724 pxor %xmm4,%xmm0 725 shufps $140,%xmm0,%xmm4 726 pxor %xmm4,%xmm0 727 pshufd $255,%xmm1,%xmm1 728 pxor %xmm1,%xmm0 729 .byte 0xf3,0xc3 730 731.align 16 732.Lkey_expansion_256b: 733 movaps %xmm0,(%rax) 734 leaq 16(%rax),%rax 735 736 shufps $16,%xmm2,%xmm4 737 pxor %xmm4,%xmm2 738 shufps $140,%xmm2,%xmm4 739 pxor %xmm4,%xmm2 740 pshufd $170,%xmm1,%xmm1 741 pxor %xmm1,%xmm2 742 .byte 0xf3,0xc3 743.size aesni_set_encrypt_key,.-aesni_set_encrypt_key 744.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,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 745.align 64 746