1.file "crypto/bn/asm/bn-586.s" 2.text 3.globl bn_mul_add_words 4.type bn_mul_add_words,@function 5.align 16 6bn_mul_add_words: 7.L_bn_mul_add_words_begin: 8 pushl %ebp 9 pushl %ebx 10 pushl %esi 11 pushl %edi 12 13 xorl %esi,%esi 14 movl 20(%esp),%edi 15 movl 28(%esp),%ecx 16 movl 24(%esp),%ebx 17 andl $4294967288,%ecx 18 movl 32(%esp),%ebp 19 pushl %ecx 20 jz .L000maw_finish 21.align 16 22.L001maw_loop: 23 24 movl (%ebx),%eax 25 mull %ebp 26 addl %esi,%eax 27 adcl $0,%edx 28 addl (%edi),%eax 29 adcl $0,%edx 30 movl %eax,(%edi) 31 movl %edx,%esi 32 33 movl 4(%ebx),%eax 34 mull %ebp 35 addl %esi,%eax 36 adcl $0,%edx 37 addl 4(%edi),%eax 38 adcl $0,%edx 39 movl %eax,4(%edi) 40 movl %edx,%esi 41 42 movl 8(%ebx),%eax 43 mull %ebp 44 addl %esi,%eax 45 adcl $0,%edx 46 addl 8(%edi),%eax 47 adcl $0,%edx 48 movl %eax,8(%edi) 49 movl %edx,%esi 50 51 movl 12(%ebx),%eax 52 mull %ebp 53 addl %esi,%eax 54 adcl $0,%edx 55 addl 12(%edi),%eax 56 adcl $0,%edx 57 movl %eax,12(%edi) 58 movl %edx,%esi 59 60 movl 16(%ebx),%eax 61 mull %ebp 62 addl %esi,%eax 63 adcl $0,%edx 64 addl 16(%edi),%eax 65 adcl $0,%edx 66 movl %eax,16(%edi) 67 movl %edx,%esi 68 69 movl 20(%ebx),%eax 70 mull %ebp 71 addl %esi,%eax 72 adcl $0,%edx 73 addl 20(%edi),%eax 74 adcl $0,%edx 75 movl %eax,20(%edi) 76 movl %edx,%esi 77 78 movl 24(%ebx),%eax 79 mull %ebp 80 addl %esi,%eax 81 adcl $0,%edx 82 addl 24(%edi),%eax 83 adcl $0,%edx 84 movl %eax,24(%edi) 85 movl %edx,%esi 86 87 movl 28(%ebx),%eax 88 mull %ebp 89 addl %esi,%eax 90 adcl $0,%edx 91 addl 28(%edi),%eax 92 adcl $0,%edx 93 movl %eax,28(%edi) 94 movl %edx,%esi 95 96 subl $8,%ecx 97 leal 32(%ebx),%ebx 98 leal 32(%edi),%edi 99 jnz .L001maw_loop 100.L000maw_finish: 101 movl 32(%esp),%ecx 102 andl $7,%ecx 103 jnz .L002maw_finish2 104 jmp .L003maw_end 105.L002maw_finish2: 106 107 movl (%ebx),%eax 108 mull %ebp 109 addl %esi,%eax 110 adcl $0,%edx 111 addl (%edi),%eax 112 adcl $0,%edx 113 decl %ecx 114 movl %eax,(%edi) 115 movl %edx,%esi 116 jz .L003maw_end 117 118 movl 4(%ebx),%eax 119 mull %ebp 120 addl %esi,%eax 121 adcl $0,%edx 122 addl 4(%edi),%eax 123 adcl $0,%edx 124 decl %ecx 125 movl %eax,4(%edi) 126 movl %edx,%esi 127 jz .L003maw_end 128 129 movl 8(%ebx),%eax 130 mull %ebp 131 addl %esi,%eax 132 adcl $0,%edx 133 addl 8(%edi),%eax 134 adcl $0,%edx 135 decl %ecx 136 movl %eax,8(%edi) 137 movl %edx,%esi 138 jz .L003maw_end 139 140 movl 12(%ebx),%eax 141 mull %ebp 142 addl %esi,%eax 143 adcl $0,%edx 144 addl 12(%edi),%eax 145 adcl $0,%edx 146 decl %ecx 147 movl %eax,12(%edi) 148 movl %edx,%esi 149 jz .L003maw_end 150 151 movl 16(%ebx),%eax 152 mull %ebp 153 addl %esi,%eax 154 adcl $0,%edx 155 addl 16(%edi),%eax 156 adcl $0,%edx 157 decl %ecx 158 movl %eax,16(%edi) 159 movl %edx,%esi 160 jz .L003maw_end 161 162 movl 20(%ebx),%eax 163 mull %ebp 164 addl %esi,%eax 165 adcl $0,%edx 166 addl 20(%edi),%eax 167 adcl $0,%edx 168 decl %ecx 169 movl %eax,20(%edi) 170 movl %edx,%esi 171 jz .L003maw_end 172 173 movl 24(%ebx),%eax 174 mull %ebp 175 addl %esi,%eax 176 adcl $0,%edx 177 addl 24(%edi),%eax 178 adcl $0,%edx 179 movl %eax,24(%edi) 180 movl %edx,%esi 181.L003maw_end: 182 movl %esi,%eax 183 popl %ecx 184 popl %edi 185 popl %esi 186 popl %ebx 187 popl %ebp 188 ret 189.size bn_mul_add_words,.-.L_bn_mul_add_words_begin 190.globl bn_mul_words 191.type bn_mul_words,@function 192.align 16 193bn_mul_words: 194.L_bn_mul_words_begin: 195 pushl %ebp 196 pushl %ebx 197 pushl %esi 198 pushl %edi 199 200 xorl %esi,%esi 201 movl 20(%esp),%edi 202 movl 24(%esp),%ebx 203 movl 28(%esp),%ebp 204 movl 32(%esp),%ecx 205 andl $4294967288,%ebp 206 jz .L004mw_finish 207.L005mw_loop: 208 209 movl (%ebx),%eax 210 mull %ecx 211 addl %esi,%eax 212 adcl $0,%edx 213 movl %eax,(%edi) 214 movl %edx,%esi 215 216 movl 4(%ebx),%eax 217 mull %ecx 218 addl %esi,%eax 219 adcl $0,%edx 220 movl %eax,4(%edi) 221 movl %edx,%esi 222 223 movl 8(%ebx),%eax 224 mull %ecx 225 addl %esi,%eax 226 adcl $0,%edx 227 movl %eax,8(%edi) 228 movl %edx,%esi 229 230 movl 12(%ebx),%eax 231 mull %ecx 232 addl %esi,%eax 233 adcl $0,%edx 234 movl %eax,12(%edi) 235 movl %edx,%esi 236 237 movl 16(%ebx),%eax 238 mull %ecx 239 addl %esi,%eax 240 adcl $0,%edx 241 movl %eax,16(%edi) 242 movl %edx,%esi 243 244 movl 20(%ebx),%eax 245 mull %ecx 246 addl %esi,%eax 247 adcl $0,%edx 248 movl %eax,20(%edi) 249 movl %edx,%esi 250 251 movl 24(%ebx),%eax 252 mull %ecx 253 addl %esi,%eax 254 adcl $0,%edx 255 movl %eax,24(%edi) 256 movl %edx,%esi 257 258 movl 28(%ebx),%eax 259 mull %ecx 260 addl %esi,%eax 261 adcl $0,%edx 262 movl %eax,28(%edi) 263 movl %edx,%esi 264 265 addl $32,%ebx 266 addl $32,%edi 267 subl $8,%ebp 268 jz .L004mw_finish 269 jmp .L005mw_loop 270.L004mw_finish: 271 movl 28(%esp),%ebp 272 andl $7,%ebp 273 jnz .L006mw_finish2 274 jmp .L007mw_end 275.L006mw_finish2: 276 277 movl (%ebx),%eax 278 mull %ecx 279 addl %esi,%eax 280 adcl $0,%edx 281 movl %eax,(%edi) 282 movl %edx,%esi 283 decl %ebp 284 jz .L007mw_end 285 286 movl 4(%ebx),%eax 287 mull %ecx 288 addl %esi,%eax 289 adcl $0,%edx 290 movl %eax,4(%edi) 291 movl %edx,%esi 292 decl %ebp 293 jz .L007mw_end 294 295 movl 8(%ebx),%eax 296 mull %ecx 297 addl %esi,%eax 298 adcl $0,%edx 299 movl %eax,8(%edi) 300 movl %edx,%esi 301 decl %ebp 302 jz .L007mw_end 303 304 movl 12(%ebx),%eax 305 mull %ecx 306 addl %esi,%eax 307 adcl $0,%edx 308 movl %eax,12(%edi) 309 movl %edx,%esi 310 decl %ebp 311 jz .L007mw_end 312 313 movl 16(%ebx),%eax 314 mull %ecx 315 addl %esi,%eax 316 adcl $0,%edx 317 movl %eax,16(%edi) 318 movl %edx,%esi 319 decl %ebp 320 jz .L007mw_end 321 322 movl 20(%ebx),%eax 323 mull %ecx 324 addl %esi,%eax 325 adcl $0,%edx 326 movl %eax,20(%edi) 327 movl %edx,%esi 328 decl %ebp 329 jz .L007mw_end 330 331 movl 24(%ebx),%eax 332 mull %ecx 333 addl %esi,%eax 334 adcl $0,%edx 335 movl %eax,24(%edi) 336 movl %edx,%esi 337.L007mw_end: 338 movl %esi,%eax 339 popl %edi 340 popl %esi 341 popl %ebx 342 popl %ebp 343 ret 344.size bn_mul_words,.-.L_bn_mul_words_begin 345.globl bn_sqr_words 346.type bn_sqr_words,@function 347.align 16 348bn_sqr_words: 349.L_bn_sqr_words_begin: 350 pushl %ebp 351 pushl %ebx 352 pushl %esi 353 pushl %edi 354 355 movl 20(%esp),%esi 356 movl 24(%esp),%edi 357 movl 28(%esp),%ebx 358 andl $4294967288,%ebx 359 jz .L008sw_finish 360.L009sw_loop: 361 362 movl (%edi),%eax 363 mull %eax 364 movl %eax,(%esi) 365 movl %edx,4(%esi) 366 367 movl 4(%edi),%eax 368 mull %eax 369 movl %eax,8(%esi) 370 movl %edx,12(%esi) 371 372 movl 8(%edi),%eax 373 mull %eax 374 movl %eax,16(%esi) 375 movl %edx,20(%esi) 376 377 movl 12(%edi),%eax 378 mull %eax 379 movl %eax,24(%esi) 380 movl %edx,28(%esi) 381 382 movl 16(%edi),%eax 383 mull %eax 384 movl %eax,32(%esi) 385 movl %edx,36(%esi) 386 387 movl 20(%edi),%eax 388 mull %eax 389 movl %eax,40(%esi) 390 movl %edx,44(%esi) 391 392 movl 24(%edi),%eax 393 mull %eax 394 movl %eax,48(%esi) 395 movl %edx,52(%esi) 396 397 movl 28(%edi),%eax 398 mull %eax 399 movl %eax,56(%esi) 400 movl %edx,60(%esi) 401 402 addl $32,%edi 403 addl $64,%esi 404 subl $8,%ebx 405 jnz .L009sw_loop 406.L008sw_finish: 407 movl 28(%esp),%ebx 408 andl $7,%ebx 409 jz .L010sw_end 410 411 movl (%edi),%eax 412 mull %eax 413 movl %eax,(%esi) 414 decl %ebx 415 movl %edx,4(%esi) 416 jz .L010sw_end 417 418 movl 4(%edi),%eax 419 mull %eax 420 movl %eax,8(%esi) 421 decl %ebx 422 movl %edx,12(%esi) 423 jz .L010sw_end 424 425 movl 8(%edi),%eax 426 mull %eax 427 movl %eax,16(%esi) 428 decl %ebx 429 movl %edx,20(%esi) 430 jz .L010sw_end 431 432 movl 12(%edi),%eax 433 mull %eax 434 movl %eax,24(%esi) 435 decl %ebx 436 movl %edx,28(%esi) 437 jz .L010sw_end 438 439 movl 16(%edi),%eax 440 mull %eax 441 movl %eax,32(%esi) 442 decl %ebx 443 movl %edx,36(%esi) 444 jz .L010sw_end 445 446 movl 20(%edi),%eax 447 mull %eax 448 movl %eax,40(%esi) 449 decl %ebx 450 movl %edx,44(%esi) 451 jz .L010sw_end 452 453 movl 24(%edi),%eax 454 mull %eax 455 movl %eax,48(%esi) 456 movl %edx,52(%esi) 457.L010sw_end: 458 popl %edi 459 popl %esi 460 popl %ebx 461 popl %ebp 462 ret 463.size bn_sqr_words,.-.L_bn_sqr_words_begin 464.globl bn_div_words 465.type bn_div_words,@function 466.align 16 467bn_div_words: 468.L_bn_div_words_begin: 469 movl 4(%esp),%edx 470 movl 8(%esp),%eax 471 movl 12(%esp),%ecx 472 divl %ecx 473 ret 474.size bn_div_words,.-.L_bn_div_words_begin 475.globl bn_add_words 476.type bn_add_words,@function 477.align 16 478bn_add_words: 479.L_bn_add_words_begin: 480 pushl %ebp 481 pushl %ebx 482 pushl %esi 483 pushl %edi 484 485 movl 20(%esp),%ebx 486 movl 24(%esp),%esi 487 movl 28(%esp),%edi 488 movl 32(%esp),%ebp 489 xorl %eax,%eax 490 andl $4294967288,%ebp 491 jz .L011aw_finish 492.L012aw_loop: 493 494 movl (%esi),%ecx 495 movl (%edi),%edx 496 addl %eax,%ecx 497 movl $0,%eax 498 adcl %eax,%eax 499 addl %edx,%ecx 500 adcl $0,%eax 501 movl %ecx,(%ebx) 502 503 movl 4(%esi),%ecx 504 movl 4(%edi),%edx 505 addl %eax,%ecx 506 movl $0,%eax 507 adcl %eax,%eax 508 addl %edx,%ecx 509 adcl $0,%eax 510 movl %ecx,4(%ebx) 511 512 movl 8(%esi),%ecx 513 movl 8(%edi),%edx 514 addl %eax,%ecx 515 movl $0,%eax 516 adcl %eax,%eax 517 addl %edx,%ecx 518 adcl $0,%eax 519 movl %ecx,8(%ebx) 520 521 movl 12(%esi),%ecx 522 movl 12(%edi),%edx 523 addl %eax,%ecx 524 movl $0,%eax 525 adcl %eax,%eax 526 addl %edx,%ecx 527 adcl $0,%eax 528 movl %ecx,12(%ebx) 529 530 movl 16(%esi),%ecx 531 movl 16(%edi),%edx 532 addl %eax,%ecx 533 movl $0,%eax 534 adcl %eax,%eax 535 addl %edx,%ecx 536 adcl $0,%eax 537 movl %ecx,16(%ebx) 538 539 movl 20(%esi),%ecx 540 movl 20(%edi),%edx 541 addl %eax,%ecx 542 movl $0,%eax 543 adcl %eax,%eax 544 addl %edx,%ecx 545 adcl $0,%eax 546 movl %ecx,20(%ebx) 547 548 movl 24(%esi),%ecx 549 movl 24(%edi),%edx 550 addl %eax,%ecx 551 movl $0,%eax 552 adcl %eax,%eax 553 addl %edx,%ecx 554 adcl $0,%eax 555 movl %ecx,24(%ebx) 556 557 movl 28(%esi),%ecx 558 movl 28(%edi),%edx 559 addl %eax,%ecx 560 movl $0,%eax 561 adcl %eax,%eax 562 addl %edx,%ecx 563 adcl $0,%eax 564 movl %ecx,28(%ebx) 565 566 addl $32,%esi 567 addl $32,%edi 568 addl $32,%ebx 569 subl $8,%ebp 570 jnz .L012aw_loop 571.L011aw_finish: 572 movl 32(%esp),%ebp 573 andl $7,%ebp 574 jz .L013aw_end 575 576 movl (%esi),%ecx 577 movl (%edi),%edx 578 addl %eax,%ecx 579 movl $0,%eax 580 adcl %eax,%eax 581 addl %edx,%ecx 582 adcl $0,%eax 583 decl %ebp 584 movl %ecx,(%ebx) 585 jz .L013aw_end 586 587 movl 4(%esi),%ecx 588 movl 4(%edi),%edx 589 addl %eax,%ecx 590 movl $0,%eax 591 adcl %eax,%eax 592 addl %edx,%ecx 593 adcl $0,%eax 594 decl %ebp 595 movl %ecx,4(%ebx) 596 jz .L013aw_end 597 598 movl 8(%esi),%ecx 599 movl 8(%edi),%edx 600 addl %eax,%ecx 601 movl $0,%eax 602 adcl %eax,%eax 603 addl %edx,%ecx 604 adcl $0,%eax 605 decl %ebp 606 movl %ecx,8(%ebx) 607 jz .L013aw_end 608 609 movl 12(%esi),%ecx 610 movl 12(%edi),%edx 611 addl %eax,%ecx 612 movl $0,%eax 613 adcl %eax,%eax 614 addl %edx,%ecx 615 adcl $0,%eax 616 decl %ebp 617 movl %ecx,12(%ebx) 618 jz .L013aw_end 619 620 movl 16(%esi),%ecx 621 movl 16(%edi),%edx 622 addl %eax,%ecx 623 movl $0,%eax 624 adcl %eax,%eax 625 addl %edx,%ecx 626 adcl $0,%eax 627 decl %ebp 628 movl %ecx,16(%ebx) 629 jz .L013aw_end 630 631 movl 20(%esi),%ecx 632 movl 20(%edi),%edx 633 addl %eax,%ecx 634 movl $0,%eax 635 adcl %eax,%eax 636 addl %edx,%ecx 637 adcl $0,%eax 638 decl %ebp 639 movl %ecx,20(%ebx) 640 jz .L013aw_end 641 642 movl 24(%esi),%ecx 643 movl 24(%edi),%edx 644 addl %eax,%ecx 645 movl $0,%eax 646 adcl %eax,%eax 647 addl %edx,%ecx 648 adcl $0,%eax 649 movl %ecx,24(%ebx) 650.L013aw_end: 651 popl %edi 652 popl %esi 653 popl %ebx 654 popl %ebp 655 ret 656.size bn_add_words,.-.L_bn_add_words_begin 657.globl bn_sub_words 658.type bn_sub_words,@function 659.align 16 660bn_sub_words: 661.L_bn_sub_words_begin: 662 pushl %ebp 663 pushl %ebx 664 pushl %esi 665 pushl %edi 666 667 movl 20(%esp),%ebx 668 movl 24(%esp),%esi 669 movl 28(%esp),%edi 670 movl 32(%esp),%ebp 671 xorl %eax,%eax 672 andl $4294967288,%ebp 673 jz .L014aw_finish 674.L015aw_loop: 675 676 movl (%esi),%ecx 677 movl (%edi),%edx 678 subl %eax,%ecx 679 movl $0,%eax 680 adcl %eax,%eax 681 subl %edx,%ecx 682 adcl $0,%eax 683 movl %ecx,(%ebx) 684 685 movl 4(%esi),%ecx 686 movl 4(%edi),%edx 687 subl %eax,%ecx 688 movl $0,%eax 689 adcl %eax,%eax 690 subl %edx,%ecx 691 adcl $0,%eax 692 movl %ecx,4(%ebx) 693 694 movl 8(%esi),%ecx 695 movl 8(%edi),%edx 696 subl %eax,%ecx 697 movl $0,%eax 698 adcl %eax,%eax 699 subl %edx,%ecx 700 adcl $0,%eax 701 movl %ecx,8(%ebx) 702 703 movl 12(%esi),%ecx 704 movl 12(%edi),%edx 705 subl %eax,%ecx 706 movl $0,%eax 707 adcl %eax,%eax 708 subl %edx,%ecx 709 adcl $0,%eax 710 movl %ecx,12(%ebx) 711 712 movl 16(%esi),%ecx 713 movl 16(%edi),%edx 714 subl %eax,%ecx 715 movl $0,%eax 716 adcl %eax,%eax 717 subl %edx,%ecx 718 adcl $0,%eax 719 movl %ecx,16(%ebx) 720 721 movl 20(%esi),%ecx 722 movl 20(%edi),%edx 723 subl %eax,%ecx 724 movl $0,%eax 725 adcl %eax,%eax 726 subl %edx,%ecx 727 adcl $0,%eax 728 movl %ecx,20(%ebx) 729 730 movl 24(%esi),%ecx 731 movl 24(%edi),%edx 732 subl %eax,%ecx 733 movl $0,%eax 734 adcl %eax,%eax 735 subl %edx,%ecx 736 adcl $0,%eax 737 movl %ecx,24(%ebx) 738 739 movl 28(%esi),%ecx 740 movl 28(%edi),%edx 741 subl %eax,%ecx 742 movl $0,%eax 743 adcl %eax,%eax 744 subl %edx,%ecx 745 adcl $0,%eax 746 movl %ecx,28(%ebx) 747 748 addl $32,%esi 749 addl $32,%edi 750 addl $32,%ebx 751 subl $8,%ebp 752 jnz .L015aw_loop 753.L014aw_finish: 754 movl 32(%esp),%ebp 755 andl $7,%ebp 756 jz .L016aw_end 757 758 movl (%esi),%ecx 759 movl (%edi),%edx 760 subl %eax,%ecx 761 movl $0,%eax 762 adcl %eax,%eax 763 subl %edx,%ecx 764 adcl $0,%eax 765 decl %ebp 766 movl %ecx,(%ebx) 767 jz .L016aw_end 768 769 movl 4(%esi),%ecx 770 movl 4(%edi),%edx 771 subl %eax,%ecx 772 movl $0,%eax 773 adcl %eax,%eax 774 subl %edx,%ecx 775 adcl $0,%eax 776 decl %ebp 777 movl %ecx,4(%ebx) 778 jz .L016aw_end 779 780 movl 8(%esi),%ecx 781 movl 8(%edi),%edx 782 subl %eax,%ecx 783 movl $0,%eax 784 adcl %eax,%eax 785 subl %edx,%ecx 786 adcl $0,%eax 787 decl %ebp 788 movl %ecx,8(%ebx) 789 jz .L016aw_end 790 791 movl 12(%esi),%ecx 792 movl 12(%edi),%edx 793 subl %eax,%ecx 794 movl $0,%eax 795 adcl %eax,%eax 796 subl %edx,%ecx 797 adcl $0,%eax 798 decl %ebp 799 movl %ecx,12(%ebx) 800 jz .L016aw_end 801 802 movl 16(%esi),%ecx 803 movl 16(%edi),%edx 804 subl %eax,%ecx 805 movl $0,%eax 806 adcl %eax,%eax 807 subl %edx,%ecx 808 adcl $0,%eax 809 decl %ebp 810 movl %ecx,16(%ebx) 811 jz .L016aw_end 812 813 movl 20(%esi),%ecx 814 movl 20(%edi),%edx 815 subl %eax,%ecx 816 movl $0,%eax 817 adcl %eax,%eax 818 subl %edx,%ecx 819 adcl $0,%eax 820 decl %ebp 821 movl %ecx,20(%ebx) 822 jz .L016aw_end 823 824 movl 24(%esi),%ecx 825 movl 24(%edi),%edx 826 subl %eax,%ecx 827 movl $0,%eax 828 adcl %eax,%eax 829 subl %edx,%ecx 830 adcl $0,%eax 831 movl %ecx,24(%ebx) 832.L016aw_end: 833 popl %edi 834 popl %esi 835 popl %ebx 836 popl %ebp 837 ret 838.size bn_sub_words,.-.L_bn_sub_words_begin 839.globl bn_sub_part_words 840.type bn_sub_part_words,@function 841.align 16 842bn_sub_part_words: 843.L_bn_sub_part_words_begin: 844 pushl %ebp 845 pushl %ebx 846 pushl %esi 847 pushl %edi 848 849 movl 20(%esp),%ebx 850 movl 24(%esp),%esi 851 movl 28(%esp),%edi 852 movl 32(%esp),%ebp 853 xorl %eax,%eax 854 andl $4294967288,%ebp 855 jz .L017aw_finish 856.L018aw_loop: 857 858 movl (%esi),%ecx 859 movl (%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,(%ebx) 866 867 movl 4(%esi),%ecx 868 movl 4(%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,4(%ebx) 875 876 movl 8(%esi),%ecx 877 movl 8(%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,8(%ebx) 884 885 movl 12(%esi),%ecx 886 movl 12(%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,12(%ebx) 893 894 movl 16(%esi),%ecx 895 movl 16(%edi),%edx 896 subl %eax,%ecx 897 movl $0,%eax 898 adcl %eax,%eax 899 subl %edx,%ecx 900 adcl $0,%eax 901 movl %ecx,16(%ebx) 902 903 movl 20(%esi),%ecx 904 movl 20(%edi),%edx 905 subl %eax,%ecx 906 movl $0,%eax 907 adcl %eax,%eax 908 subl %edx,%ecx 909 adcl $0,%eax 910 movl %ecx,20(%ebx) 911 912 movl 24(%esi),%ecx 913 movl 24(%edi),%edx 914 subl %eax,%ecx 915 movl $0,%eax 916 adcl %eax,%eax 917 subl %edx,%ecx 918 adcl $0,%eax 919 movl %ecx,24(%ebx) 920 921 movl 28(%esi),%ecx 922 movl 28(%edi),%edx 923 subl %eax,%ecx 924 movl $0,%eax 925 adcl %eax,%eax 926 subl %edx,%ecx 927 adcl $0,%eax 928 movl %ecx,28(%ebx) 929 930 addl $32,%esi 931 addl $32,%edi 932 addl $32,%ebx 933 subl $8,%ebp 934 jnz .L018aw_loop 935.L017aw_finish: 936 movl 32(%esp),%ebp 937 andl $7,%ebp 938 jz .L019aw_end 939 940 movl (%esi),%ecx 941 movl (%edi),%edx 942 subl %eax,%ecx 943 movl $0,%eax 944 adcl %eax,%eax 945 subl %edx,%ecx 946 adcl $0,%eax 947 movl %ecx,(%ebx) 948 addl $4,%esi 949 addl $4,%edi 950 addl $4,%ebx 951 decl %ebp 952 jz .L019aw_end 953 954 movl (%esi),%ecx 955 movl (%edi),%edx 956 subl %eax,%ecx 957 movl $0,%eax 958 adcl %eax,%eax 959 subl %edx,%ecx 960 adcl $0,%eax 961 movl %ecx,(%ebx) 962 addl $4,%esi 963 addl $4,%edi 964 addl $4,%ebx 965 decl %ebp 966 jz .L019aw_end 967 968 movl (%esi),%ecx 969 movl (%edi),%edx 970 subl %eax,%ecx 971 movl $0,%eax 972 adcl %eax,%eax 973 subl %edx,%ecx 974 adcl $0,%eax 975 movl %ecx,(%ebx) 976 addl $4,%esi 977 addl $4,%edi 978 addl $4,%ebx 979 decl %ebp 980 jz .L019aw_end 981 982 movl (%esi),%ecx 983 movl (%edi),%edx 984 subl %eax,%ecx 985 movl $0,%eax 986 adcl %eax,%eax 987 subl %edx,%ecx 988 adcl $0,%eax 989 movl %ecx,(%ebx) 990 addl $4,%esi 991 addl $4,%edi 992 addl $4,%ebx 993 decl %ebp 994 jz .L019aw_end 995 996 movl (%esi),%ecx 997 movl (%edi),%edx 998 subl %eax,%ecx 999 movl $0,%eax 1000 adcl %eax,%eax 1001 subl %edx,%ecx 1002 adcl $0,%eax 1003 movl %ecx,(%ebx) 1004 addl $4,%esi 1005 addl $4,%edi 1006 addl $4,%ebx 1007 decl %ebp 1008 jz .L019aw_end 1009 1010 movl (%esi),%ecx 1011 movl (%edi),%edx 1012 subl %eax,%ecx 1013 movl $0,%eax 1014 adcl %eax,%eax 1015 subl %edx,%ecx 1016 adcl $0,%eax 1017 movl %ecx,(%ebx) 1018 addl $4,%esi 1019 addl $4,%edi 1020 addl $4,%ebx 1021 decl %ebp 1022 jz .L019aw_end 1023 1024 movl (%esi),%ecx 1025 movl (%edi),%edx 1026 subl %eax,%ecx 1027 movl $0,%eax 1028 adcl %eax,%eax 1029 subl %edx,%ecx 1030 adcl $0,%eax 1031 movl %ecx,(%ebx) 1032 addl $4,%esi 1033 addl $4,%edi 1034 addl $4,%ebx 1035.L019aw_end: 1036 cmpl $0,36(%esp) 1037 je .L020pw_end 1038 movl 36(%esp),%ebp 1039 cmpl $0,%ebp 1040 je .L020pw_end 1041 jge .L021pw_pos 1042 1043 movl $0,%edx 1044 subl %ebp,%edx 1045 movl %edx,%ebp 1046 andl $4294967288,%ebp 1047 jz .L022pw_neg_finish 1048.L023pw_neg_loop: 1049 1050 movl $0,%ecx 1051 movl (%edi),%edx 1052 subl %eax,%ecx 1053 movl $0,%eax 1054 adcl %eax,%eax 1055 subl %edx,%ecx 1056 adcl $0,%eax 1057 movl %ecx,(%ebx) 1058 1059 movl $0,%ecx 1060 movl 4(%edi),%edx 1061 subl %eax,%ecx 1062 movl $0,%eax 1063 adcl %eax,%eax 1064 subl %edx,%ecx 1065 adcl $0,%eax 1066 movl %ecx,4(%ebx) 1067 1068 movl $0,%ecx 1069 movl 8(%edi),%edx 1070 subl %eax,%ecx 1071 movl $0,%eax 1072 adcl %eax,%eax 1073 subl %edx,%ecx 1074 adcl $0,%eax 1075 movl %ecx,8(%ebx) 1076 1077 movl $0,%ecx 1078 movl 12(%edi),%edx 1079 subl %eax,%ecx 1080 movl $0,%eax 1081 adcl %eax,%eax 1082 subl %edx,%ecx 1083 adcl $0,%eax 1084 movl %ecx,12(%ebx) 1085 1086 movl $0,%ecx 1087 movl 16(%edi),%edx 1088 subl %eax,%ecx 1089 movl $0,%eax 1090 adcl %eax,%eax 1091 subl %edx,%ecx 1092 adcl $0,%eax 1093 movl %ecx,16(%ebx) 1094 1095 movl $0,%ecx 1096 movl 20(%edi),%edx 1097 subl %eax,%ecx 1098 movl $0,%eax 1099 adcl %eax,%eax 1100 subl %edx,%ecx 1101 adcl $0,%eax 1102 movl %ecx,20(%ebx) 1103 1104 movl $0,%ecx 1105 movl 24(%edi),%edx 1106 subl %eax,%ecx 1107 movl $0,%eax 1108 adcl %eax,%eax 1109 subl %edx,%ecx 1110 adcl $0,%eax 1111 movl %ecx,24(%ebx) 1112 1113 movl $0,%ecx 1114 movl 28(%edi),%edx 1115 subl %eax,%ecx 1116 movl $0,%eax 1117 adcl %eax,%eax 1118 subl %edx,%ecx 1119 adcl $0,%eax 1120 movl %ecx,28(%ebx) 1121 1122 addl $32,%edi 1123 addl $32,%ebx 1124 subl $8,%ebp 1125 jnz .L023pw_neg_loop 1126.L022pw_neg_finish: 1127 movl 36(%esp),%edx 1128 movl $0,%ebp 1129 subl %edx,%ebp 1130 andl $7,%ebp 1131 jz .L020pw_end 1132 1133 movl $0,%ecx 1134 movl (%edi),%edx 1135 subl %eax,%ecx 1136 movl $0,%eax 1137 adcl %eax,%eax 1138 subl %edx,%ecx 1139 adcl $0,%eax 1140 decl %ebp 1141 movl %ecx,(%ebx) 1142 jz .L020pw_end 1143 1144 movl $0,%ecx 1145 movl 4(%edi),%edx 1146 subl %eax,%ecx 1147 movl $0,%eax 1148 adcl %eax,%eax 1149 subl %edx,%ecx 1150 adcl $0,%eax 1151 decl %ebp 1152 movl %ecx,4(%ebx) 1153 jz .L020pw_end 1154 1155 movl $0,%ecx 1156 movl 8(%edi),%edx 1157 subl %eax,%ecx 1158 movl $0,%eax 1159 adcl %eax,%eax 1160 subl %edx,%ecx 1161 adcl $0,%eax 1162 decl %ebp 1163 movl %ecx,8(%ebx) 1164 jz .L020pw_end 1165 1166 movl $0,%ecx 1167 movl 12(%edi),%edx 1168 subl %eax,%ecx 1169 movl $0,%eax 1170 adcl %eax,%eax 1171 subl %edx,%ecx 1172 adcl $0,%eax 1173 decl %ebp 1174 movl %ecx,12(%ebx) 1175 jz .L020pw_end 1176 1177 movl $0,%ecx 1178 movl 16(%edi),%edx 1179 subl %eax,%ecx 1180 movl $0,%eax 1181 adcl %eax,%eax 1182 subl %edx,%ecx 1183 adcl $0,%eax 1184 decl %ebp 1185 movl %ecx,16(%ebx) 1186 jz .L020pw_end 1187 1188 movl $0,%ecx 1189 movl 20(%edi),%edx 1190 subl %eax,%ecx 1191 movl $0,%eax 1192 adcl %eax,%eax 1193 subl %edx,%ecx 1194 adcl $0,%eax 1195 decl %ebp 1196 movl %ecx,20(%ebx) 1197 jz .L020pw_end 1198 1199 movl $0,%ecx 1200 movl 24(%edi),%edx 1201 subl %eax,%ecx 1202 movl $0,%eax 1203 adcl %eax,%eax 1204 subl %edx,%ecx 1205 adcl $0,%eax 1206 movl %ecx,24(%ebx) 1207 jmp .L020pw_end 1208.L021pw_pos: 1209 andl $4294967288,%ebp 1210 jz .L024pw_pos_finish 1211.L025pw_pos_loop: 1212 1213 movl (%esi),%ecx 1214 subl %eax,%ecx 1215 movl %ecx,(%ebx) 1216 jnc .L026pw_nc0 1217 1218 movl 4(%esi),%ecx 1219 subl %eax,%ecx 1220 movl %ecx,4(%ebx) 1221 jnc .L027pw_nc1 1222 1223 movl 8(%esi),%ecx 1224 subl %eax,%ecx 1225 movl %ecx,8(%ebx) 1226 jnc .L028pw_nc2 1227 1228 movl 12(%esi),%ecx 1229 subl %eax,%ecx 1230 movl %ecx,12(%ebx) 1231 jnc .L029pw_nc3 1232 1233 movl 16(%esi),%ecx 1234 subl %eax,%ecx 1235 movl %ecx,16(%ebx) 1236 jnc .L030pw_nc4 1237 1238 movl 20(%esi),%ecx 1239 subl %eax,%ecx 1240 movl %ecx,20(%ebx) 1241 jnc .L031pw_nc5 1242 1243 movl 24(%esi),%ecx 1244 subl %eax,%ecx 1245 movl %ecx,24(%ebx) 1246 jnc .L032pw_nc6 1247 1248 movl 28(%esi),%ecx 1249 subl %eax,%ecx 1250 movl %ecx,28(%ebx) 1251 jnc .L033pw_nc7 1252 1253 addl $32,%esi 1254 addl $32,%ebx 1255 subl $8,%ebp 1256 jnz .L025pw_pos_loop 1257.L024pw_pos_finish: 1258 movl 36(%esp),%ebp 1259 andl $7,%ebp 1260 jz .L020pw_end 1261 1262 movl (%esi),%ecx 1263 subl %eax,%ecx 1264 movl %ecx,(%ebx) 1265 jnc .L034pw_tail_nc0 1266 decl %ebp 1267 jz .L020pw_end 1268 1269 movl 4(%esi),%ecx 1270 subl %eax,%ecx 1271 movl %ecx,4(%ebx) 1272 jnc .L035pw_tail_nc1 1273 decl %ebp 1274 jz .L020pw_end 1275 1276 movl 8(%esi),%ecx 1277 subl %eax,%ecx 1278 movl %ecx,8(%ebx) 1279 jnc .L036pw_tail_nc2 1280 decl %ebp 1281 jz .L020pw_end 1282 1283 movl 12(%esi),%ecx 1284 subl %eax,%ecx 1285 movl %ecx,12(%ebx) 1286 jnc .L037pw_tail_nc3 1287 decl %ebp 1288 jz .L020pw_end 1289 1290 movl 16(%esi),%ecx 1291 subl %eax,%ecx 1292 movl %ecx,16(%ebx) 1293 jnc .L038pw_tail_nc4 1294 decl %ebp 1295 jz .L020pw_end 1296 1297 movl 20(%esi),%ecx 1298 subl %eax,%ecx 1299 movl %ecx,20(%ebx) 1300 jnc .L039pw_tail_nc5 1301 decl %ebp 1302 jz .L020pw_end 1303 1304 movl 24(%esi),%ecx 1305 subl %eax,%ecx 1306 movl %ecx,24(%ebx) 1307 jnc .L040pw_tail_nc6 1308 movl $1,%eax 1309 jmp .L020pw_end 1310.L041pw_nc_loop: 1311 movl (%esi),%ecx 1312 movl %ecx,(%ebx) 1313.L026pw_nc0: 1314 movl 4(%esi),%ecx 1315 movl %ecx,4(%ebx) 1316.L027pw_nc1: 1317 movl 8(%esi),%ecx 1318 movl %ecx,8(%ebx) 1319.L028pw_nc2: 1320 movl 12(%esi),%ecx 1321 movl %ecx,12(%ebx) 1322.L029pw_nc3: 1323 movl 16(%esi),%ecx 1324 movl %ecx,16(%ebx) 1325.L030pw_nc4: 1326 movl 20(%esi),%ecx 1327 movl %ecx,20(%ebx) 1328.L031pw_nc5: 1329 movl 24(%esi),%ecx 1330 movl %ecx,24(%ebx) 1331.L032pw_nc6: 1332 movl 28(%esi),%ecx 1333 movl %ecx,28(%ebx) 1334.L033pw_nc7: 1335 1336 addl $32,%esi 1337 addl $32,%ebx 1338 subl $8,%ebp 1339 jnz .L041pw_nc_loop 1340 movl 36(%esp),%ebp 1341 andl $7,%ebp 1342 jz .L042pw_nc_end 1343 movl (%esi),%ecx 1344 movl %ecx,(%ebx) 1345.L034pw_tail_nc0: 1346 decl %ebp 1347 jz .L042pw_nc_end 1348 movl 4(%esi),%ecx 1349 movl %ecx,4(%ebx) 1350.L035pw_tail_nc1: 1351 decl %ebp 1352 jz .L042pw_nc_end 1353 movl 8(%esi),%ecx 1354 movl %ecx,8(%ebx) 1355.L036pw_tail_nc2: 1356 decl %ebp 1357 jz .L042pw_nc_end 1358 movl 12(%esi),%ecx 1359 movl %ecx,12(%ebx) 1360.L037pw_tail_nc3: 1361 decl %ebp 1362 jz .L042pw_nc_end 1363 movl 16(%esi),%ecx 1364 movl %ecx,16(%ebx) 1365.L038pw_tail_nc4: 1366 decl %ebp 1367 jz .L042pw_nc_end 1368 movl 20(%esi),%ecx 1369 movl %ecx,20(%ebx) 1370.L039pw_tail_nc5: 1371 decl %ebp 1372 jz .L042pw_nc_end 1373 movl 24(%esi),%ecx 1374 movl %ecx,24(%ebx) 1375.L040pw_tail_nc6: 1376.L042pw_nc_end: 1377 movl $0,%eax 1378.L020pw_end: 1379 popl %edi 1380 popl %esi 1381 popl %ebx 1382 popl %ebp 1383 ret 1384.size bn_sub_part_words,.-.L_bn_sub_part_words_begin 1385