1// This file is generated from a similarly-named Perl script in the BoringSSL 2// source tree. Do not edit by hand. 3 4#include <ring-core/asm_base.h> 5 6#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) 7.text 8#ifdef BORINGSSL_DISPATCH_TEST 9#endif 10.globl aes_hw_encrypt 11.hidden aes_hw_encrypt 12.type aes_hw_encrypt,@function 13.align 16 14aes_hw_encrypt: 15.L_aes_hw_encrypt_begin: 16#ifdef BORINGSSL_DISPATCH_TEST 17 pushl %ebx 18 pushl %edx 19 call .L000pic 20.L000pic: 21 popl %ebx 22 leal BORINGSSL_function_hit+1-.L000pic(%ebx),%ebx 23 movl $1,%edx 24 movb %dl,(%ebx) 25 popl %edx 26 popl %ebx 27#endif 28 movl 4(%esp),%eax 29 movl 12(%esp),%edx 30 movups (%eax),%xmm2 31 movl 240(%edx),%ecx 32 movl 8(%esp),%eax 33 movups (%edx),%xmm0 34 movups 16(%edx),%xmm1 35 leal 32(%edx),%edx 36 xorps %xmm0,%xmm2 37.L001enc1_loop_1: 38.byte 102,15,56,220,209 39 decl %ecx 40 movups (%edx),%xmm1 41 leal 16(%edx),%edx 42 jnz .L001enc1_loop_1 43.byte 102,15,56,221,209 44 pxor %xmm0,%xmm0 45 pxor %xmm1,%xmm1 46 movups %xmm2,(%eax) 47 pxor %xmm2,%xmm2 48 ret 49.size aes_hw_encrypt,.-.L_aes_hw_encrypt_begin 50.hidden _aesni_encrypt2 51.type _aesni_encrypt2,@function 52.align 16 53_aesni_encrypt2: 54 movups (%edx),%xmm0 55 shll $4,%ecx 56 movups 16(%edx),%xmm1 57 xorps %xmm0,%xmm2 58 pxor %xmm0,%xmm3 59 movups 32(%edx),%xmm0 60 leal 32(%edx,%ecx,1),%edx 61 negl %ecx 62 addl $16,%ecx 63.L002enc2_loop: 64.byte 102,15,56,220,209 65.byte 102,15,56,220,217 66 movups (%edx,%ecx,1),%xmm1 67 addl $32,%ecx 68.byte 102,15,56,220,208 69.byte 102,15,56,220,216 70 movups -16(%edx,%ecx,1),%xmm0 71 jnz .L002enc2_loop 72.byte 102,15,56,220,209 73.byte 102,15,56,220,217 74.byte 102,15,56,221,208 75.byte 102,15,56,221,216 76 ret 77.size _aesni_encrypt2,.-_aesni_encrypt2 78.hidden _aesni_encrypt3 79.type _aesni_encrypt3,@function 80.align 16 81_aesni_encrypt3: 82 movups (%edx),%xmm0 83 shll $4,%ecx 84 movups 16(%edx),%xmm1 85 xorps %xmm0,%xmm2 86 pxor %xmm0,%xmm3 87 pxor %xmm0,%xmm4 88 movups 32(%edx),%xmm0 89 leal 32(%edx,%ecx,1),%edx 90 negl %ecx 91 addl $16,%ecx 92.L003enc3_loop: 93.byte 102,15,56,220,209 94.byte 102,15,56,220,217 95.byte 102,15,56,220,225 96 movups (%edx,%ecx,1),%xmm1 97 addl $32,%ecx 98.byte 102,15,56,220,208 99.byte 102,15,56,220,216 100.byte 102,15,56,220,224 101 movups -16(%edx,%ecx,1),%xmm0 102 jnz .L003enc3_loop 103.byte 102,15,56,220,209 104.byte 102,15,56,220,217 105.byte 102,15,56,220,225 106.byte 102,15,56,221,208 107.byte 102,15,56,221,216 108.byte 102,15,56,221,224 109 ret 110.size _aesni_encrypt3,.-_aesni_encrypt3 111.hidden _aesni_encrypt4 112.type _aesni_encrypt4,@function 113.align 16 114_aesni_encrypt4: 115 movups (%edx),%xmm0 116 movups 16(%edx),%xmm1 117 shll $4,%ecx 118 xorps %xmm0,%xmm2 119 pxor %xmm0,%xmm3 120 pxor %xmm0,%xmm4 121 pxor %xmm0,%xmm5 122 movups 32(%edx),%xmm0 123 leal 32(%edx,%ecx,1),%edx 124 negl %ecx 125.byte 15,31,64,0 126 addl $16,%ecx 127.L004enc4_loop: 128.byte 102,15,56,220,209 129.byte 102,15,56,220,217 130.byte 102,15,56,220,225 131.byte 102,15,56,220,233 132 movups (%edx,%ecx,1),%xmm1 133 addl $32,%ecx 134.byte 102,15,56,220,208 135.byte 102,15,56,220,216 136.byte 102,15,56,220,224 137.byte 102,15,56,220,232 138 movups -16(%edx,%ecx,1),%xmm0 139 jnz .L004enc4_loop 140.byte 102,15,56,220,209 141.byte 102,15,56,220,217 142.byte 102,15,56,220,225 143.byte 102,15,56,220,233 144.byte 102,15,56,221,208 145.byte 102,15,56,221,216 146.byte 102,15,56,221,224 147.byte 102,15,56,221,232 148 ret 149.size _aesni_encrypt4,.-_aesni_encrypt4 150.hidden _aesni_encrypt6 151.type _aesni_encrypt6,@function 152.align 16 153_aesni_encrypt6: 154 movups (%edx),%xmm0 155 shll $4,%ecx 156 movups 16(%edx),%xmm1 157 xorps %xmm0,%xmm2 158 pxor %xmm0,%xmm3 159 pxor %xmm0,%xmm4 160.byte 102,15,56,220,209 161 pxor %xmm0,%xmm5 162 pxor %xmm0,%xmm6 163.byte 102,15,56,220,217 164 leal 32(%edx,%ecx,1),%edx 165 negl %ecx 166.byte 102,15,56,220,225 167 pxor %xmm0,%xmm7 168 movups (%edx,%ecx,1),%xmm0 169 addl $16,%ecx 170 jmp .L005_aesni_encrypt6_inner 171.align 16 172.L006enc6_loop: 173.byte 102,15,56,220,209 174.byte 102,15,56,220,217 175.byte 102,15,56,220,225 176.L005_aesni_encrypt6_inner: 177.byte 102,15,56,220,233 178.byte 102,15,56,220,241 179.byte 102,15,56,220,249 180.L_aesni_encrypt6_enter: 181 movups (%edx,%ecx,1),%xmm1 182 addl $32,%ecx 183.byte 102,15,56,220,208 184.byte 102,15,56,220,216 185.byte 102,15,56,220,224 186.byte 102,15,56,220,232 187.byte 102,15,56,220,240 188.byte 102,15,56,220,248 189 movups -16(%edx,%ecx,1),%xmm0 190 jnz .L006enc6_loop 191.byte 102,15,56,220,209 192.byte 102,15,56,220,217 193.byte 102,15,56,220,225 194.byte 102,15,56,220,233 195.byte 102,15,56,220,241 196.byte 102,15,56,220,249 197.byte 102,15,56,221,208 198.byte 102,15,56,221,216 199.byte 102,15,56,221,224 200.byte 102,15,56,221,232 201.byte 102,15,56,221,240 202.byte 102,15,56,221,248 203 ret 204.size _aesni_encrypt6,.-_aesni_encrypt6 205.globl aes_hw_ctr32_encrypt_blocks 206.hidden aes_hw_ctr32_encrypt_blocks 207.type aes_hw_ctr32_encrypt_blocks,@function 208.align 16 209aes_hw_ctr32_encrypt_blocks: 210.L_aes_hw_ctr32_encrypt_blocks_begin: 211 pushl %ebp 212 pushl %ebx 213 pushl %esi 214 pushl %edi 215#ifdef BORINGSSL_DISPATCH_TEST 216 pushl %ebx 217 pushl %edx 218 call .L007pic 219.L007pic: 220 popl %ebx 221 leal BORINGSSL_function_hit+0-.L007pic(%ebx),%ebx 222 movl $1,%edx 223 movb %dl,(%ebx) 224 popl %edx 225 popl %ebx 226#endif 227 movl 20(%esp),%esi 228 movl 24(%esp),%edi 229 movl 28(%esp),%eax 230 movl 32(%esp),%edx 231 movl 36(%esp),%ebx 232 movl %esp,%ebp 233 subl $88,%esp 234 andl $-16,%esp 235 movl %ebp,80(%esp) 236 cmpl $1,%eax 237 je .L008ctr32_one_shortcut 238 movdqu (%ebx),%xmm7 239 movl $202182159,(%esp) 240 movl $134810123,4(%esp) 241 movl $67438087,8(%esp) 242 movl $66051,12(%esp) 243 movl $6,%ecx 244 xorl %ebp,%ebp 245 movl %ecx,16(%esp) 246 movl %ecx,20(%esp) 247 movl %ecx,24(%esp) 248 movl %ebp,28(%esp) 249.byte 102,15,58,22,251,3 250.byte 102,15,58,34,253,3 251 movl 240(%edx),%ecx 252 bswap %ebx 253 pxor %xmm0,%xmm0 254 pxor %xmm1,%xmm1 255 movdqa (%esp),%xmm2 256.byte 102,15,58,34,195,0 257 leal 3(%ebx),%ebp 258.byte 102,15,58,34,205,0 259 incl %ebx 260.byte 102,15,58,34,195,1 261 incl %ebp 262.byte 102,15,58,34,205,1 263 incl %ebx 264.byte 102,15,58,34,195,2 265 incl %ebp 266.byte 102,15,58,34,205,2 267 movdqa %xmm0,48(%esp) 268.byte 102,15,56,0,194 269 movdqu (%edx),%xmm6 270 movdqa %xmm1,64(%esp) 271.byte 102,15,56,0,202 272 pshufd $192,%xmm0,%xmm2 273 pshufd $128,%xmm0,%xmm3 274 cmpl $6,%eax 275 jb .L009ctr32_tail 276 pxor %xmm6,%xmm7 277 shll $4,%ecx 278 movl $16,%ebx 279 movdqa %xmm7,32(%esp) 280 movl %edx,%ebp 281 subl %ecx,%ebx 282 leal 32(%edx,%ecx,1),%edx 283 subl $6,%eax 284 jmp .L010ctr32_loop6 285.align 16 286.L010ctr32_loop6: 287 pshufd $64,%xmm0,%xmm4 288 movdqa 32(%esp),%xmm0 289 pshufd $192,%xmm1,%xmm5 290 pxor %xmm0,%xmm2 291 pshufd $128,%xmm1,%xmm6 292 pxor %xmm0,%xmm3 293 pshufd $64,%xmm1,%xmm7 294 movups 16(%ebp),%xmm1 295 pxor %xmm0,%xmm4 296 pxor %xmm0,%xmm5 297.byte 102,15,56,220,209 298 pxor %xmm0,%xmm6 299 pxor %xmm0,%xmm7 300.byte 102,15,56,220,217 301 movups 32(%ebp),%xmm0 302 movl %ebx,%ecx 303.byte 102,15,56,220,225 304.byte 102,15,56,220,233 305.byte 102,15,56,220,241 306.byte 102,15,56,220,249 307 call .L_aesni_encrypt6_enter 308 movups (%esi),%xmm1 309 movups 16(%esi),%xmm0 310 xorps %xmm1,%xmm2 311 movups 32(%esi),%xmm1 312 xorps %xmm0,%xmm3 313 movups %xmm2,(%edi) 314 movdqa 16(%esp),%xmm0 315 xorps %xmm1,%xmm4 316 movdqa 64(%esp),%xmm1 317 movups %xmm3,16(%edi) 318 movups %xmm4,32(%edi) 319 paddd %xmm0,%xmm1 320 paddd 48(%esp),%xmm0 321 movdqa (%esp),%xmm2 322 movups 48(%esi),%xmm3 323 movups 64(%esi),%xmm4 324 xorps %xmm3,%xmm5 325 movups 80(%esi),%xmm3 326 leal 96(%esi),%esi 327 movdqa %xmm0,48(%esp) 328.byte 102,15,56,0,194 329 xorps %xmm4,%xmm6 330 movups %xmm5,48(%edi) 331 xorps %xmm3,%xmm7 332 movdqa %xmm1,64(%esp) 333.byte 102,15,56,0,202 334 movups %xmm6,64(%edi) 335 pshufd $192,%xmm0,%xmm2 336 movups %xmm7,80(%edi) 337 leal 96(%edi),%edi 338 pshufd $128,%xmm0,%xmm3 339 subl $6,%eax 340 jnc .L010ctr32_loop6 341 addl $6,%eax 342 jz .L011ctr32_ret 343 movdqu (%ebp),%xmm7 344 movl %ebp,%edx 345 pxor 32(%esp),%xmm7 346 movl 240(%ebp),%ecx 347.L009ctr32_tail: 348 por %xmm7,%xmm2 349 cmpl $2,%eax 350 jb .L012ctr32_one 351 pshufd $64,%xmm0,%xmm4 352 por %xmm7,%xmm3 353 je .L013ctr32_two 354 pshufd $192,%xmm1,%xmm5 355 por %xmm7,%xmm4 356 cmpl $4,%eax 357 jb .L014ctr32_three 358 pshufd $128,%xmm1,%xmm6 359 por %xmm7,%xmm5 360 je .L015ctr32_four 361 por %xmm7,%xmm6 362 call _aesni_encrypt6 363 movups (%esi),%xmm1 364 movups 16(%esi),%xmm0 365 xorps %xmm1,%xmm2 366 movups 32(%esi),%xmm1 367 xorps %xmm0,%xmm3 368 movups 48(%esi),%xmm0 369 xorps %xmm1,%xmm4 370 movups 64(%esi),%xmm1 371 xorps %xmm0,%xmm5 372 movups %xmm2,(%edi) 373 xorps %xmm1,%xmm6 374 movups %xmm3,16(%edi) 375 movups %xmm4,32(%edi) 376 movups %xmm5,48(%edi) 377 movups %xmm6,64(%edi) 378 jmp .L011ctr32_ret 379.align 16 380.L008ctr32_one_shortcut: 381 movups (%ebx),%xmm2 382 movl 240(%edx),%ecx 383.L012ctr32_one: 384 movups (%edx),%xmm0 385 movups 16(%edx),%xmm1 386 leal 32(%edx),%edx 387 xorps %xmm0,%xmm2 388.L016enc1_loop_2: 389.byte 102,15,56,220,209 390 decl %ecx 391 movups (%edx),%xmm1 392 leal 16(%edx),%edx 393 jnz .L016enc1_loop_2 394.byte 102,15,56,221,209 395 movups (%esi),%xmm6 396 xorps %xmm2,%xmm6 397 movups %xmm6,(%edi) 398 jmp .L011ctr32_ret 399.align 16 400.L013ctr32_two: 401 call _aesni_encrypt2 402 movups (%esi),%xmm5 403 movups 16(%esi),%xmm6 404 xorps %xmm5,%xmm2 405 xorps %xmm6,%xmm3 406 movups %xmm2,(%edi) 407 movups %xmm3,16(%edi) 408 jmp .L011ctr32_ret 409.align 16 410.L014ctr32_three: 411 call _aesni_encrypt3 412 movups (%esi),%xmm5 413 movups 16(%esi),%xmm6 414 xorps %xmm5,%xmm2 415 movups 32(%esi),%xmm7 416 xorps %xmm6,%xmm3 417 movups %xmm2,(%edi) 418 xorps %xmm7,%xmm4 419 movups %xmm3,16(%edi) 420 movups %xmm4,32(%edi) 421 jmp .L011ctr32_ret 422.align 16 423.L015ctr32_four: 424 call _aesni_encrypt4 425 movups (%esi),%xmm6 426 movups 16(%esi),%xmm7 427 movups 32(%esi),%xmm1 428 xorps %xmm6,%xmm2 429 movups 48(%esi),%xmm0 430 xorps %xmm7,%xmm3 431 movups %xmm2,(%edi) 432 xorps %xmm1,%xmm4 433 movups %xmm3,16(%edi) 434 xorps %xmm0,%xmm5 435 movups %xmm4,32(%edi) 436 movups %xmm5,48(%edi) 437.L011ctr32_ret: 438 pxor %xmm0,%xmm0 439 pxor %xmm1,%xmm1 440 pxor %xmm2,%xmm2 441 pxor %xmm3,%xmm3 442 pxor %xmm4,%xmm4 443 movdqa %xmm0,32(%esp) 444 pxor %xmm5,%xmm5 445 movdqa %xmm0,48(%esp) 446 pxor %xmm6,%xmm6 447 movdqa %xmm0,64(%esp) 448 pxor %xmm7,%xmm7 449 movl 80(%esp),%esp 450 popl %edi 451 popl %esi 452 popl %ebx 453 popl %ebp 454 ret 455.size aes_hw_ctr32_encrypt_blocks,.-.L_aes_hw_ctr32_encrypt_blocks_begin 456.hidden _aesni_set_encrypt_key 457.type _aesni_set_encrypt_key,@function 458.align 16 459_aesni_set_encrypt_key: 460 pushl %ebp 461 pushl %ebx 462 testl %eax,%eax 463 jz .L017bad_pointer 464 testl %edx,%edx 465 jz .L017bad_pointer 466 call .L018pic 467.L018pic: 468 popl %ebx 469 leal .Lkey_const-.L018pic(%ebx),%ebx 470 leal OPENSSL_ia32cap_P-.Lkey_const(%ebx),%ebp 471 movups (%eax),%xmm0 472 xorps %xmm4,%xmm4 473 movl 4(%ebp),%ebp 474 leal 16(%edx),%edx 475 andl $268437504,%ebp 476 cmpl $256,%ecx 477 je .L01914rounds 478 cmpl $128,%ecx 479 jne .L020bad_keybits 480.align 16 481.L02110rounds: 482 cmpl $268435456,%ebp 483 je .L02210rounds_alt 484 movl $9,%ecx 485 movups %xmm0,-16(%edx) 486.byte 102,15,58,223,200,1 487 call .L023key_128_cold 488.byte 102,15,58,223,200,2 489 call .L024key_128 490.byte 102,15,58,223,200,4 491 call .L024key_128 492.byte 102,15,58,223,200,8 493 call .L024key_128 494.byte 102,15,58,223,200,16 495 call .L024key_128 496.byte 102,15,58,223,200,32 497 call .L024key_128 498.byte 102,15,58,223,200,64 499 call .L024key_128 500.byte 102,15,58,223,200,128 501 call .L024key_128 502.byte 102,15,58,223,200,27 503 call .L024key_128 504.byte 102,15,58,223,200,54 505 call .L024key_128 506 movups %xmm0,(%edx) 507 movl %ecx,80(%edx) 508 jmp .L025good_key 509.align 16 510.L024key_128: 511 movups %xmm0,(%edx) 512 leal 16(%edx),%edx 513.L023key_128_cold: 514 shufps $16,%xmm0,%xmm4 515 xorps %xmm4,%xmm0 516 shufps $140,%xmm0,%xmm4 517 xorps %xmm4,%xmm0 518 shufps $255,%xmm1,%xmm1 519 xorps %xmm1,%xmm0 520 ret 521.align 16 522.L02210rounds_alt: 523 movdqa (%ebx),%xmm5 524 movl $8,%ecx 525 movdqa 32(%ebx),%xmm4 526 movdqa %xmm0,%xmm2 527 movdqu %xmm0,-16(%edx) 528.L026loop_key128: 529.byte 102,15,56,0,197 530.byte 102,15,56,221,196 531 pslld $1,%xmm4 532 leal 16(%edx),%edx 533 movdqa %xmm2,%xmm3 534 pslldq $4,%xmm2 535 pxor %xmm2,%xmm3 536 pslldq $4,%xmm2 537 pxor %xmm2,%xmm3 538 pslldq $4,%xmm2 539 pxor %xmm3,%xmm2 540 pxor %xmm2,%xmm0 541 movdqu %xmm0,-16(%edx) 542 movdqa %xmm0,%xmm2 543 decl %ecx 544 jnz .L026loop_key128 545 movdqa 48(%ebx),%xmm4 546.byte 102,15,56,0,197 547.byte 102,15,56,221,196 548 pslld $1,%xmm4 549 movdqa %xmm2,%xmm3 550 pslldq $4,%xmm2 551 pxor %xmm2,%xmm3 552 pslldq $4,%xmm2 553 pxor %xmm2,%xmm3 554 pslldq $4,%xmm2 555 pxor %xmm3,%xmm2 556 pxor %xmm2,%xmm0 557 movdqu %xmm0,(%edx) 558 movdqa %xmm0,%xmm2 559.byte 102,15,56,0,197 560.byte 102,15,56,221,196 561 movdqa %xmm2,%xmm3 562 pslldq $4,%xmm2 563 pxor %xmm2,%xmm3 564 pslldq $4,%xmm2 565 pxor %xmm2,%xmm3 566 pslldq $4,%xmm2 567 pxor %xmm3,%xmm2 568 pxor %xmm2,%xmm0 569 movdqu %xmm0,16(%edx) 570 movl $9,%ecx 571 movl %ecx,96(%edx) 572 jmp .L025good_key 573.align 16 574.L01914rounds: 575 movups 16(%eax),%xmm2 576 leal 16(%edx),%edx 577 cmpl $268435456,%ebp 578 je .L02714rounds_alt 579 movl $13,%ecx 580 movups %xmm0,-32(%edx) 581 movups %xmm2,-16(%edx) 582.byte 102,15,58,223,202,1 583 call .L028key_256a_cold 584.byte 102,15,58,223,200,1 585 call .L029key_256b 586.byte 102,15,58,223,202,2 587 call .L030key_256a 588.byte 102,15,58,223,200,2 589 call .L029key_256b 590.byte 102,15,58,223,202,4 591 call .L030key_256a 592.byte 102,15,58,223,200,4 593 call .L029key_256b 594.byte 102,15,58,223,202,8 595 call .L030key_256a 596.byte 102,15,58,223,200,8 597 call .L029key_256b 598.byte 102,15,58,223,202,16 599 call .L030key_256a 600.byte 102,15,58,223,200,16 601 call .L029key_256b 602.byte 102,15,58,223,202,32 603 call .L030key_256a 604.byte 102,15,58,223,200,32 605 call .L029key_256b 606.byte 102,15,58,223,202,64 607 call .L030key_256a 608 movups %xmm0,(%edx) 609 movl %ecx,16(%edx) 610 xorl %eax,%eax 611 jmp .L025good_key 612.align 16 613.L030key_256a: 614 movups %xmm2,(%edx) 615 leal 16(%edx),%edx 616.L028key_256a_cold: 617 shufps $16,%xmm0,%xmm4 618 xorps %xmm4,%xmm0 619 shufps $140,%xmm0,%xmm4 620 xorps %xmm4,%xmm0 621 shufps $255,%xmm1,%xmm1 622 xorps %xmm1,%xmm0 623 ret 624.align 16 625.L029key_256b: 626 movups %xmm0,(%edx) 627 leal 16(%edx),%edx 628 shufps $16,%xmm2,%xmm4 629 xorps %xmm4,%xmm2 630 shufps $140,%xmm2,%xmm4 631 xorps %xmm4,%xmm2 632 shufps $170,%xmm1,%xmm1 633 xorps %xmm1,%xmm2 634 ret 635.align 16 636.L02714rounds_alt: 637 movdqa (%ebx),%xmm5 638 movdqa 32(%ebx),%xmm4 639 movl $7,%ecx 640 movdqu %xmm0,-32(%edx) 641 movdqa %xmm2,%xmm1 642 movdqu %xmm2,-16(%edx) 643.L031loop_key256: 644.byte 102,15,56,0,213 645.byte 102,15,56,221,212 646 movdqa %xmm0,%xmm3 647 pslldq $4,%xmm0 648 pxor %xmm0,%xmm3 649 pslldq $4,%xmm0 650 pxor %xmm0,%xmm3 651 pslldq $4,%xmm0 652 pxor %xmm3,%xmm0 653 pslld $1,%xmm4 654 pxor %xmm2,%xmm0 655 movdqu %xmm0,(%edx) 656 decl %ecx 657 jz .L032done_key256 658 pshufd $255,%xmm0,%xmm2 659 pxor %xmm3,%xmm3 660.byte 102,15,56,221,211 661 movdqa %xmm1,%xmm3 662 pslldq $4,%xmm1 663 pxor %xmm1,%xmm3 664 pslldq $4,%xmm1 665 pxor %xmm1,%xmm3 666 pslldq $4,%xmm1 667 pxor %xmm3,%xmm1 668 pxor %xmm1,%xmm2 669 movdqu %xmm2,16(%edx) 670 leal 32(%edx),%edx 671 movdqa %xmm2,%xmm1 672 jmp .L031loop_key256 673.L032done_key256: 674 movl $13,%ecx 675 movl %ecx,16(%edx) 676.L025good_key: 677 pxor %xmm0,%xmm0 678 pxor %xmm1,%xmm1 679 pxor %xmm2,%xmm2 680 pxor %xmm3,%xmm3 681 pxor %xmm4,%xmm4 682 pxor %xmm5,%xmm5 683 xorl %eax,%eax 684 popl %ebx 685 popl %ebp 686 ret 687.align 4 688.L017bad_pointer: 689 movl $-1,%eax 690 popl %ebx 691 popl %ebp 692 ret 693.align 4 694.L020bad_keybits: 695 pxor %xmm0,%xmm0 696 movl $-2,%eax 697 popl %ebx 698 popl %ebp 699 ret 700.size _aesni_set_encrypt_key,.-_aesni_set_encrypt_key 701.globl aes_hw_set_encrypt_key 702.hidden aes_hw_set_encrypt_key 703.type aes_hw_set_encrypt_key,@function 704.align 16 705aes_hw_set_encrypt_key: 706.L_aes_hw_set_encrypt_key_begin: 707#ifdef BORINGSSL_DISPATCH_TEST 708 pushl %ebx 709 pushl %edx 710 call .L033pic 711.L033pic: 712 popl %ebx 713 leal BORINGSSL_function_hit+3-.L033pic(%ebx),%ebx 714 movl $1,%edx 715 movb %dl,(%ebx) 716 popl %edx 717 popl %ebx 718#endif 719 movl 4(%esp),%eax 720 movl 8(%esp),%ecx 721 movl 12(%esp),%edx 722 call _aesni_set_encrypt_key 723 ret 724.size aes_hw_set_encrypt_key,.-.L_aes_hw_set_encrypt_key_begin 725.align 64 726.Lkey_const: 727.long 202313229,202313229,202313229,202313229 728.long 67569157,67569157,67569157,67569157 729.long 1,1,1,1 730.long 27,27,27,27 731.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 732.byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 733.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 734.byte 115,108,46,111,114,103,62,0 735#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) 736