1// This file is generated from a similarly-named Perl script in the BoringSSL 2// source tree. Do not edit by hand. 3 4#if defined(__i386__) 5#if defined(BORINGSSL_PREFIX) 6#include <boringssl_prefix_symbols_asm.h> 7#endif 8.text 9.globl _bn_mul_add_words 10.private_extern _bn_mul_add_words 11.align 4 12_bn_mul_add_words: 13L_bn_mul_add_words_begin: 14 call L000PIC_me_up 15L000PIC_me_up: 16 popl %eax 17 movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L000PIC_me_up(%eax),%eax 18 btl $26,(%eax) 19 jnc L001maw_non_sse2 20 movl 4(%esp),%eax 21 movl 8(%esp),%edx 22 movl 12(%esp),%ecx 23 movd 16(%esp),%mm0 24 pxor %mm1,%mm1 25 jmp L002maw_sse2_entry 26.align 4,0x90 27L003maw_sse2_unrolled: 28 movd (%eax),%mm3 29 paddq %mm3,%mm1 30 movd (%edx),%mm2 31 pmuludq %mm0,%mm2 32 movd 4(%edx),%mm4 33 pmuludq %mm0,%mm4 34 movd 8(%edx),%mm6 35 pmuludq %mm0,%mm6 36 movd 12(%edx),%mm7 37 pmuludq %mm0,%mm7 38 paddq %mm2,%mm1 39 movd 4(%eax),%mm3 40 paddq %mm4,%mm3 41 movd 8(%eax),%mm5 42 paddq %mm6,%mm5 43 movd 12(%eax),%mm4 44 paddq %mm4,%mm7 45 movd %mm1,(%eax) 46 movd 16(%edx),%mm2 47 pmuludq %mm0,%mm2 48 psrlq $32,%mm1 49 movd 20(%edx),%mm4 50 pmuludq %mm0,%mm4 51 paddq %mm3,%mm1 52 movd 24(%edx),%mm6 53 pmuludq %mm0,%mm6 54 movd %mm1,4(%eax) 55 psrlq $32,%mm1 56 movd 28(%edx),%mm3 57 addl $32,%edx 58 pmuludq %mm0,%mm3 59 paddq %mm5,%mm1 60 movd 16(%eax),%mm5 61 paddq %mm5,%mm2 62 movd %mm1,8(%eax) 63 psrlq $32,%mm1 64 paddq %mm7,%mm1 65 movd 20(%eax),%mm5 66 paddq %mm5,%mm4 67 movd %mm1,12(%eax) 68 psrlq $32,%mm1 69 paddq %mm2,%mm1 70 movd 24(%eax),%mm5 71 paddq %mm5,%mm6 72 movd %mm1,16(%eax) 73 psrlq $32,%mm1 74 paddq %mm4,%mm1 75 movd 28(%eax),%mm5 76 paddq %mm5,%mm3 77 movd %mm1,20(%eax) 78 psrlq $32,%mm1 79 paddq %mm6,%mm1 80 movd %mm1,24(%eax) 81 psrlq $32,%mm1 82 paddq %mm3,%mm1 83 movd %mm1,28(%eax) 84 leal 32(%eax),%eax 85 psrlq $32,%mm1 86 subl $8,%ecx 87 jz L004maw_sse2_exit 88L002maw_sse2_entry: 89 testl $4294967288,%ecx 90 jnz L003maw_sse2_unrolled 91.align 2,0x90 92L005maw_sse2_loop: 93 movd (%edx),%mm2 94 movd (%eax),%mm3 95 pmuludq %mm0,%mm2 96 leal 4(%edx),%edx 97 paddq %mm3,%mm1 98 paddq %mm2,%mm1 99 movd %mm1,(%eax) 100 subl $1,%ecx 101 psrlq $32,%mm1 102 leal 4(%eax),%eax 103 jnz L005maw_sse2_loop 104L004maw_sse2_exit: 105 movd %mm1,%eax 106 emms 107 ret 108.align 4,0x90 109L001maw_non_sse2: 110 pushl %ebp 111 pushl %ebx 112 pushl %esi 113 pushl %edi 114 115 xorl %esi,%esi 116 movl 20(%esp),%edi 117 movl 28(%esp),%ecx 118 movl 24(%esp),%ebx 119 andl $4294967288,%ecx 120 movl 32(%esp),%ebp 121 pushl %ecx 122 jz L006maw_finish 123.align 4,0x90 124L007maw_loop: 125 # Round 0 126 movl (%ebx),%eax 127 mull %ebp 128 addl %esi,%eax 129 adcl $0,%edx 130 addl (%edi),%eax 131 adcl $0,%edx 132 movl %eax,(%edi) 133 movl %edx,%esi 134 # Round 4 135 movl 4(%ebx),%eax 136 mull %ebp 137 addl %esi,%eax 138 adcl $0,%edx 139 addl 4(%edi),%eax 140 adcl $0,%edx 141 movl %eax,4(%edi) 142 movl %edx,%esi 143 # Round 8 144 movl 8(%ebx),%eax 145 mull %ebp 146 addl %esi,%eax 147 adcl $0,%edx 148 addl 8(%edi),%eax 149 adcl $0,%edx 150 movl %eax,8(%edi) 151 movl %edx,%esi 152 # Round 12 153 movl 12(%ebx),%eax 154 mull %ebp 155 addl %esi,%eax 156 adcl $0,%edx 157 addl 12(%edi),%eax 158 adcl $0,%edx 159 movl %eax,12(%edi) 160 movl %edx,%esi 161 # Round 16 162 movl 16(%ebx),%eax 163 mull %ebp 164 addl %esi,%eax 165 adcl $0,%edx 166 addl 16(%edi),%eax 167 adcl $0,%edx 168 movl %eax,16(%edi) 169 movl %edx,%esi 170 # Round 20 171 movl 20(%ebx),%eax 172 mull %ebp 173 addl %esi,%eax 174 adcl $0,%edx 175 addl 20(%edi),%eax 176 adcl $0,%edx 177 movl %eax,20(%edi) 178 movl %edx,%esi 179 # Round 24 180 movl 24(%ebx),%eax 181 mull %ebp 182 addl %esi,%eax 183 adcl $0,%edx 184 addl 24(%edi),%eax 185 adcl $0,%edx 186 movl %eax,24(%edi) 187 movl %edx,%esi 188 # Round 28 189 movl 28(%ebx),%eax 190 mull %ebp 191 addl %esi,%eax 192 adcl $0,%edx 193 addl 28(%edi),%eax 194 adcl $0,%edx 195 movl %eax,28(%edi) 196 movl %edx,%esi 197 198 subl $8,%ecx 199 leal 32(%ebx),%ebx 200 leal 32(%edi),%edi 201 jnz L007maw_loop 202L006maw_finish: 203 movl 32(%esp),%ecx 204 andl $7,%ecx 205 jnz L008maw_finish2 206 jmp L009maw_end 207L008maw_finish2: 208 # Tail Round 0 209 movl (%ebx),%eax 210 mull %ebp 211 addl %esi,%eax 212 adcl $0,%edx 213 addl (%edi),%eax 214 adcl $0,%edx 215 decl %ecx 216 movl %eax,(%edi) 217 movl %edx,%esi 218 jz L009maw_end 219 # Tail Round 1 220 movl 4(%ebx),%eax 221 mull %ebp 222 addl %esi,%eax 223 adcl $0,%edx 224 addl 4(%edi),%eax 225 adcl $0,%edx 226 decl %ecx 227 movl %eax,4(%edi) 228 movl %edx,%esi 229 jz L009maw_end 230 # Tail Round 2 231 movl 8(%ebx),%eax 232 mull %ebp 233 addl %esi,%eax 234 adcl $0,%edx 235 addl 8(%edi),%eax 236 adcl $0,%edx 237 decl %ecx 238 movl %eax,8(%edi) 239 movl %edx,%esi 240 jz L009maw_end 241 # Tail Round 3 242 movl 12(%ebx),%eax 243 mull %ebp 244 addl %esi,%eax 245 adcl $0,%edx 246 addl 12(%edi),%eax 247 adcl $0,%edx 248 decl %ecx 249 movl %eax,12(%edi) 250 movl %edx,%esi 251 jz L009maw_end 252 # Tail Round 4 253 movl 16(%ebx),%eax 254 mull %ebp 255 addl %esi,%eax 256 adcl $0,%edx 257 addl 16(%edi),%eax 258 adcl $0,%edx 259 decl %ecx 260 movl %eax,16(%edi) 261 movl %edx,%esi 262 jz L009maw_end 263 # Tail Round 5 264 movl 20(%ebx),%eax 265 mull %ebp 266 addl %esi,%eax 267 adcl $0,%edx 268 addl 20(%edi),%eax 269 adcl $0,%edx 270 decl %ecx 271 movl %eax,20(%edi) 272 movl %edx,%esi 273 jz L009maw_end 274 # Tail Round 6 275 movl 24(%ebx),%eax 276 mull %ebp 277 addl %esi,%eax 278 adcl $0,%edx 279 addl 24(%edi),%eax 280 adcl $0,%edx 281 movl %eax,24(%edi) 282 movl %edx,%esi 283L009maw_end: 284 movl %esi,%eax 285 popl %ecx 286 popl %edi 287 popl %esi 288 popl %ebx 289 popl %ebp 290 ret 291.globl _bn_mul_words 292.private_extern _bn_mul_words 293.align 4 294_bn_mul_words: 295L_bn_mul_words_begin: 296 call L010PIC_me_up 297L010PIC_me_up: 298 popl %eax 299 movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%eax),%eax 300 btl $26,(%eax) 301 jnc L011mw_non_sse2 302 movl 4(%esp),%eax 303 movl 8(%esp),%edx 304 movl 12(%esp),%ecx 305 movd 16(%esp),%mm0 306 pxor %mm1,%mm1 307.align 4,0x90 308L012mw_sse2_loop: 309 movd (%edx),%mm2 310 pmuludq %mm0,%mm2 311 leal 4(%edx),%edx 312 paddq %mm2,%mm1 313 movd %mm1,(%eax) 314 subl $1,%ecx 315 psrlq $32,%mm1 316 leal 4(%eax),%eax 317 jnz L012mw_sse2_loop 318 movd %mm1,%eax 319 emms 320 ret 321.align 4,0x90 322L011mw_non_sse2: 323 pushl %ebp 324 pushl %ebx 325 pushl %esi 326 pushl %edi 327 328 xorl %esi,%esi 329 movl 20(%esp),%edi 330 movl 24(%esp),%ebx 331 movl 28(%esp),%ebp 332 movl 32(%esp),%ecx 333 andl $4294967288,%ebp 334 jz L013mw_finish 335L014mw_loop: 336 # Round 0 337 movl (%ebx),%eax 338 mull %ecx 339 addl %esi,%eax 340 adcl $0,%edx 341 movl %eax,(%edi) 342 movl %edx,%esi 343 # Round 4 344 movl 4(%ebx),%eax 345 mull %ecx 346 addl %esi,%eax 347 adcl $0,%edx 348 movl %eax,4(%edi) 349 movl %edx,%esi 350 # Round 8 351 movl 8(%ebx),%eax 352 mull %ecx 353 addl %esi,%eax 354 adcl $0,%edx 355 movl %eax,8(%edi) 356 movl %edx,%esi 357 # Round 12 358 movl 12(%ebx),%eax 359 mull %ecx 360 addl %esi,%eax 361 adcl $0,%edx 362 movl %eax,12(%edi) 363 movl %edx,%esi 364 # Round 16 365 movl 16(%ebx),%eax 366 mull %ecx 367 addl %esi,%eax 368 adcl $0,%edx 369 movl %eax,16(%edi) 370 movl %edx,%esi 371 # Round 20 372 movl 20(%ebx),%eax 373 mull %ecx 374 addl %esi,%eax 375 adcl $0,%edx 376 movl %eax,20(%edi) 377 movl %edx,%esi 378 # Round 24 379 movl 24(%ebx),%eax 380 mull %ecx 381 addl %esi,%eax 382 adcl $0,%edx 383 movl %eax,24(%edi) 384 movl %edx,%esi 385 # Round 28 386 movl 28(%ebx),%eax 387 mull %ecx 388 addl %esi,%eax 389 adcl $0,%edx 390 movl %eax,28(%edi) 391 movl %edx,%esi 392 393 addl $32,%ebx 394 addl $32,%edi 395 subl $8,%ebp 396 jz L013mw_finish 397 jmp L014mw_loop 398L013mw_finish: 399 movl 28(%esp),%ebp 400 andl $7,%ebp 401 jnz L015mw_finish2 402 jmp L016mw_end 403L015mw_finish2: 404 # Tail Round 0 405 movl (%ebx),%eax 406 mull %ecx 407 addl %esi,%eax 408 adcl $0,%edx 409 movl %eax,(%edi) 410 movl %edx,%esi 411 decl %ebp 412 jz L016mw_end 413 # Tail Round 1 414 movl 4(%ebx),%eax 415 mull %ecx 416 addl %esi,%eax 417 adcl $0,%edx 418 movl %eax,4(%edi) 419 movl %edx,%esi 420 decl %ebp 421 jz L016mw_end 422 # Tail Round 2 423 movl 8(%ebx),%eax 424 mull %ecx 425 addl %esi,%eax 426 adcl $0,%edx 427 movl %eax,8(%edi) 428 movl %edx,%esi 429 decl %ebp 430 jz L016mw_end 431 # Tail Round 3 432 movl 12(%ebx),%eax 433 mull %ecx 434 addl %esi,%eax 435 adcl $0,%edx 436 movl %eax,12(%edi) 437 movl %edx,%esi 438 decl %ebp 439 jz L016mw_end 440 # Tail Round 4 441 movl 16(%ebx),%eax 442 mull %ecx 443 addl %esi,%eax 444 adcl $0,%edx 445 movl %eax,16(%edi) 446 movl %edx,%esi 447 decl %ebp 448 jz L016mw_end 449 # Tail Round 5 450 movl 20(%ebx),%eax 451 mull %ecx 452 addl %esi,%eax 453 adcl $0,%edx 454 movl %eax,20(%edi) 455 movl %edx,%esi 456 decl %ebp 457 jz L016mw_end 458 # Tail Round 6 459 movl 24(%ebx),%eax 460 mull %ecx 461 addl %esi,%eax 462 adcl $0,%edx 463 movl %eax,24(%edi) 464 movl %edx,%esi 465L016mw_end: 466 movl %esi,%eax 467 popl %edi 468 popl %esi 469 popl %ebx 470 popl %ebp 471 ret 472.globl _bn_sqr_words 473.private_extern _bn_sqr_words 474.align 4 475_bn_sqr_words: 476L_bn_sqr_words_begin: 477 call L017PIC_me_up 478L017PIC_me_up: 479 popl %eax 480 movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L017PIC_me_up(%eax),%eax 481 btl $26,(%eax) 482 jnc L018sqr_non_sse2 483 movl 4(%esp),%eax 484 movl 8(%esp),%edx 485 movl 12(%esp),%ecx 486.align 4,0x90 487L019sqr_sse2_loop: 488 movd (%edx),%mm0 489 pmuludq %mm0,%mm0 490 leal 4(%edx),%edx 491 movq %mm0,(%eax) 492 subl $1,%ecx 493 leal 8(%eax),%eax 494 jnz L019sqr_sse2_loop 495 emms 496 ret 497.align 4,0x90 498L018sqr_non_sse2: 499 pushl %ebp 500 pushl %ebx 501 pushl %esi 502 pushl %edi 503 504 movl 20(%esp),%esi 505 movl 24(%esp),%edi 506 movl 28(%esp),%ebx 507 andl $4294967288,%ebx 508 jz L020sw_finish 509L021sw_loop: 510 # Round 0 511 movl (%edi),%eax 512 mull %eax 513 movl %eax,(%esi) 514 movl %edx,4(%esi) 515 # Round 4 516 movl 4(%edi),%eax 517 mull %eax 518 movl %eax,8(%esi) 519 movl %edx,12(%esi) 520 # Round 8 521 movl 8(%edi),%eax 522 mull %eax 523 movl %eax,16(%esi) 524 movl %edx,20(%esi) 525 # Round 12 526 movl 12(%edi),%eax 527 mull %eax 528 movl %eax,24(%esi) 529 movl %edx,28(%esi) 530 # Round 16 531 movl 16(%edi),%eax 532 mull %eax 533 movl %eax,32(%esi) 534 movl %edx,36(%esi) 535 # Round 20 536 movl 20(%edi),%eax 537 mull %eax 538 movl %eax,40(%esi) 539 movl %edx,44(%esi) 540 # Round 24 541 movl 24(%edi),%eax 542 mull %eax 543 movl %eax,48(%esi) 544 movl %edx,52(%esi) 545 # Round 28 546 movl 28(%edi),%eax 547 mull %eax 548 movl %eax,56(%esi) 549 movl %edx,60(%esi) 550 551 addl $32,%edi 552 addl $64,%esi 553 subl $8,%ebx 554 jnz L021sw_loop 555L020sw_finish: 556 movl 28(%esp),%ebx 557 andl $7,%ebx 558 jz L022sw_end 559 # Tail Round 0 560 movl (%edi),%eax 561 mull %eax 562 movl %eax,(%esi) 563 decl %ebx 564 movl %edx,4(%esi) 565 jz L022sw_end 566 # Tail Round 1 567 movl 4(%edi),%eax 568 mull %eax 569 movl %eax,8(%esi) 570 decl %ebx 571 movl %edx,12(%esi) 572 jz L022sw_end 573 # Tail Round 2 574 movl 8(%edi),%eax 575 mull %eax 576 movl %eax,16(%esi) 577 decl %ebx 578 movl %edx,20(%esi) 579 jz L022sw_end 580 # Tail Round 3 581 movl 12(%edi),%eax 582 mull %eax 583 movl %eax,24(%esi) 584 decl %ebx 585 movl %edx,28(%esi) 586 jz L022sw_end 587 # Tail Round 4 588 movl 16(%edi),%eax 589 mull %eax 590 movl %eax,32(%esi) 591 decl %ebx 592 movl %edx,36(%esi) 593 jz L022sw_end 594 # Tail Round 5 595 movl 20(%edi),%eax 596 mull %eax 597 movl %eax,40(%esi) 598 decl %ebx 599 movl %edx,44(%esi) 600 jz L022sw_end 601 # Tail Round 6 602 movl 24(%edi),%eax 603 mull %eax 604 movl %eax,48(%esi) 605 movl %edx,52(%esi) 606L022sw_end: 607 popl %edi 608 popl %esi 609 popl %ebx 610 popl %ebp 611 ret 612.globl _bn_div_words 613.private_extern _bn_div_words 614.align 4 615_bn_div_words: 616L_bn_div_words_begin: 617 movl 4(%esp),%edx 618 movl 8(%esp),%eax 619 movl 12(%esp),%ecx 620 divl %ecx 621 ret 622.globl _bn_add_words 623.private_extern _bn_add_words 624.align 4 625_bn_add_words: 626L_bn_add_words_begin: 627 pushl %ebp 628 pushl %ebx 629 pushl %esi 630 pushl %edi 631 632 movl 20(%esp),%ebx 633 movl 24(%esp),%esi 634 movl 28(%esp),%edi 635 movl 32(%esp),%ebp 636 xorl %eax,%eax 637 andl $4294967288,%ebp 638 jz L023aw_finish 639L024aw_loop: 640 # Round 0 641 movl (%esi),%ecx 642 movl (%edi),%edx 643 addl %eax,%ecx 644 movl $0,%eax 645 adcl %eax,%eax 646 addl %edx,%ecx 647 adcl $0,%eax 648 movl %ecx,(%ebx) 649 # Round 1 650 movl 4(%esi),%ecx 651 movl 4(%edi),%edx 652 addl %eax,%ecx 653 movl $0,%eax 654 adcl %eax,%eax 655 addl %edx,%ecx 656 adcl $0,%eax 657 movl %ecx,4(%ebx) 658 # Round 2 659 movl 8(%esi),%ecx 660 movl 8(%edi),%edx 661 addl %eax,%ecx 662 movl $0,%eax 663 adcl %eax,%eax 664 addl %edx,%ecx 665 adcl $0,%eax 666 movl %ecx,8(%ebx) 667 # Round 3 668 movl 12(%esi),%ecx 669 movl 12(%edi),%edx 670 addl %eax,%ecx 671 movl $0,%eax 672 adcl %eax,%eax 673 addl %edx,%ecx 674 adcl $0,%eax 675 movl %ecx,12(%ebx) 676 # Round 4 677 movl 16(%esi),%ecx 678 movl 16(%edi),%edx 679 addl %eax,%ecx 680 movl $0,%eax 681 adcl %eax,%eax 682 addl %edx,%ecx 683 adcl $0,%eax 684 movl %ecx,16(%ebx) 685 # Round 5 686 movl 20(%esi),%ecx 687 movl 20(%edi),%edx 688 addl %eax,%ecx 689 movl $0,%eax 690 adcl %eax,%eax 691 addl %edx,%ecx 692 adcl $0,%eax 693 movl %ecx,20(%ebx) 694 # Round 6 695 movl 24(%esi),%ecx 696 movl 24(%edi),%edx 697 addl %eax,%ecx 698 movl $0,%eax 699 adcl %eax,%eax 700 addl %edx,%ecx 701 adcl $0,%eax 702 movl %ecx,24(%ebx) 703 # Round 7 704 movl 28(%esi),%ecx 705 movl 28(%edi),%edx 706 addl %eax,%ecx 707 movl $0,%eax 708 adcl %eax,%eax 709 addl %edx,%ecx 710 adcl $0,%eax 711 movl %ecx,28(%ebx) 712 713 addl $32,%esi 714 addl $32,%edi 715 addl $32,%ebx 716 subl $8,%ebp 717 jnz L024aw_loop 718L023aw_finish: 719 movl 32(%esp),%ebp 720 andl $7,%ebp 721 jz L025aw_end 722 # Tail Round 0 723 movl (%esi),%ecx 724 movl (%edi),%edx 725 addl %eax,%ecx 726 movl $0,%eax 727 adcl %eax,%eax 728 addl %edx,%ecx 729 adcl $0,%eax 730 decl %ebp 731 movl %ecx,(%ebx) 732 jz L025aw_end 733 # Tail Round 1 734 movl 4(%esi),%ecx 735 movl 4(%edi),%edx 736 addl %eax,%ecx 737 movl $0,%eax 738 adcl %eax,%eax 739 addl %edx,%ecx 740 adcl $0,%eax 741 decl %ebp 742 movl %ecx,4(%ebx) 743 jz L025aw_end 744 # Tail Round 2 745 movl 8(%esi),%ecx 746 movl 8(%edi),%edx 747 addl %eax,%ecx 748 movl $0,%eax 749 adcl %eax,%eax 750 addl %edx,%ecx 751 adcl $0,%eax 752 decl %ebp 753 movl %ecx,8(%ebx) 754 jz L025aw_end 755 # Tail Round 3 756 movl 12(%esi),%ecx 757 movl 12(%edi),%edx 758 addl %eax,%ecx 759 movl $0,%eax 760 adcl %eax,%eax 761 addl %edx,%ecx 762 adcl $0,%eax 763 decl %ebp 764 movl %ecx,12(%ebx) 765 jz L025aw_end 766 # Tail Round 4 767 movl 16(%esi),%ecx 768 movl 16(%edi),%edx 769 addl %eax,%ecx 770 movl $0,%eax 771 adcl %eax,%eax 772 addl %edx,%ecx 773 adcl $0,%eax 774 decl %ebp 775 movl %ecx,16(%ebx) 776 jz L025aw_end 777 # Tail Round 5 778 movl 20(%esi),%ecx 779 movl 20(%edi),%edx 780 addl %eax,%ecx 781 movl $0,%eax 782 adcl %eax,%eax 783 addl %edx,%ecx 784 adcl $0,%eax 785 decl %ebp 786 movl %ecx,20(%ebx) 787 jz L025aw_end 788 # Tail Round 6 789 movl 24(%esi),%ecx 790 movl 24(%edi),%edx 791 addl %eax,%ecx 792 movl $0,%eax 793 adcl %eax,%eax 794 addl %edx,%ecx 795 adcl $0,%eax 796 movl %ecx,24(%ebx) 797L025aw_end: 798 popl %edi 799 popl %esi 800 popl %ebx 801 popl %ebp 802 ret 803.globl _bn_sub_words 804.private_extern _bn_sub_words 805.align 4 806_bn_sub_words: 807L_bn_sub_words_begin: 808 pushl %ebp 809 pushl %ebx 810 pushl %esi 811 pushl %edi 812 813 movl 20(%esp),%ebx 814 movl 24(%esp),%esi 815 movl 28(%esp),%edi 816 movl 32(%esp),%ebp 817 xorl %eax,%eax 818 andl $4294967288,%ebp 819 jz L026aw_finish 820L027aw_loop: 821 # Round 0 822 movl (%esi),%ecx 823 movl (%edi),%edx 824 subl %eax,%ecx 825 movl $0,%eax 826 adcl %eax,%eax 827 subl %edx,%ecx 828 adcl $0,%eax 829 movl %ecx,(%ebx) 830 # Round 1 831 movl 4(%esi),%ecx 832 movl 4(%edi),%edx 833 subl %eax,%ecx 834 movl $0,%eax 835 adcl %eax,%eax 836 subl %edx,%ecx 837 adcl $0,%eax 838 movl %ecx,4(%ebx) 839 # Round 2 840 movl 8(%esi),%ecx 841 movl 8(%edi),%edx 842 subl %eax,%ecx 843 movl $0,%eax 844 adcl %eax,%eax 845 subl %edx,%ecx 846 adcl $0,%eax 847 movl %ecx,8(%ebx) 848 # Round 3 849 movl 12(%esi),%ecx 850 movl 12(%edi),%edx 851 subl %eax,%ecx 852 movl $0,%eax 853 adcl %eax,%eax 854 subl %edx,%ecx 855 adcl $0,%eax 856 movl %ecx,12(%ebx) 857 # Round 4 858 movl 16(%esi),%ecx 859 movl 16(%edi),%edx 860 subl %eax,%ecx 861 movl $0,%eax 862 adcl %eax,%eax 863 subl %edx,%ecx 864 adcl $0,%eax 865 movl %ecx,16(%ebx) 866 # Round 5 867 movl 20(%esi),%ecx 868 movl 20(%edi),%edx 869 subl %eax,%ecx 870 movl $0,%eax 871 adcl %eax,%eax 872 subl %edx,%ecx 873 adcl $0,%eax 874 movl %ecx,20(%ebx) 875 # Round 6 876 movl 24(%esi),%ecx 877 movl 24(%edi),%edx 878 subl %eax,%ecx 879 movl $0,%eax 880 adcl %eax,%eax 881 subl %edx,%ecx 882 adcl $0,%eax 883 movl %ecx,24(%ebx) 884 # Round 7 885 movl 28(%esi),%ecx 886 movl 28(%edi),%edx 887 subl %eax,%ecx 888 movl $0,%eax 889 adcl %eax,%eax 890 subl %edx,%ecx 891 adcl $0,%eax 892 movl %ecx,28(%ebx) 893 894 addl $32,%esi 895 addl $32,%edi 896 addl $32,%ebx 897 subl $8,%ebp 898 jnz L027aw_loop 899L026aw_finish: 900 movl 32(%esp),%ebp 901 andl $7,%ebp 902 jz L028aw_end 903 # Tail Round 0 904 movl (%esi),%ecx 905 movl (%edi),%edx 906 subl %eax,%ecx 907 movl $0,%eax 908 adcl %eax,%eax 909 subl %edx,%ecx 910 adcl $0,%eax 911 decl %ebp 912 movl %ecx,(%ebx) 913 jz L028aw_end 914 # Tail Round 1 915 movl 4(%esi),%ecx 916 movl 4(%edi),%edx 917 subl %eax,%ecx 918 movl $0,%eax 919 adcl %eax,%eax 920 subl %edx,%ecx 921 adcl $0,%eax 922 decl %ebp 923 movl %ecx,4(%ebx) 924 jz L028aw_end 925 # Tail Round 2 926 movl 8(%esi),%ecx 927 movl 8(%edi),%edx 928 subl %eax,%ecx 929 movl $0,%eax 930 adcl %eax,%eax 931 subl %edx,%ecx 932 adcl $0,%eax 933 decl %ebp 934 movl %ecx,8(%ebx) 935 jz L028aw_end 936 # Tail Round 3 937 movl 12(%esi),%ecx 938 movl 12(%edi),%edx 939 subl %eax,%ecx 940 movl $0,%eax 941 adcl %eax,%eax 942 subl %edx,%ecx 943 adcl $0,%eax 944 decl %ebp 945 movl %ecx,12(%ebx) 946 jz L028aw_end 947 # Tail Round 4 948 movl 16(%esi),%ecx 949 movl 16(%edi),%edx 950 subl %eax,%ecx 951 movl $0,%eax 952 adcl %eax,%eax 953 subl %edx,%ecx 954 adcl $0,%eax 955 decl %ebp 956 movl %ecx,16(%ebx) 957 jz L028aw_end 958 # Tail Round 5 959 movl 20(%esi),%ecx 960 movl 20(%edi),%edx 961 subl %eax,%ecx 962 movl $0,%eax 963 adcl %eax,%eax 964 subl %edx,%ecx 965 adcl $0,%eax 966 decl %ebp 967 movl %ecx,20(%ebx) 968 jz L028aw_end 969 # Tail Round 6 970 movl 24(%esi),%ecx 971 movl 24(%edi),%edx 972 subl %eax,%ecx 973 movl $0,%eax 974 adcl %eax,%eax 975 subl %edx,%ecx 976 adcl $0,%eax 977 movl %ecx,24(%ebx) 978L028aw_end: 979 popl %edi 980 popl %esi 981 popl %ebx 982 popl %ebp 983 ret 984.section __IMPORT,__pointers,non_lazy_symbol_pointers 985L_OPENSSL_ia32cap_P$non_lazy_ptr: 986.indirect_symbol _OPENSSL_ia32cap_P 987.long 0 988#endif 989