1/* Do not modify. This file is auto-generated from x86-gf2m.pl. */ 2#ifdef PIC 3.text 4.type _mul_1x1_mmx,@function 5.align 16 6_mul_1x1_mmx: 7 subl $36,%esp 8 movl %eax,%ecx 9 leal (%eax,%eax,1),%edx 10 andl $1073741823,%ecx 11 leal (%edx,%edx,1),%ebp 12 movl $0,(%esp) 13 andl $2147483647,%edx 14 movd %eax,%mm2 15 movd %ebx,%mm3 16 movl %ecx,4(%esp) 17 xorl %edx,%ecx 18 pxor %mm5,%mm5 19 pxor %mm4,%mm4 20 movl %edx,8(%esp) 21 xorl %ebp,%edx 22 movl %ecx,12(%esp) 23 pcmpgtd %mm2,%mm5 24 paddd %mm2,%mm2 25 xorl %edx,%ecx 26 movl %ebp,16(%esp) 27 xorl %edx,%ebp 28 pand %mm3,%mm5 29 pcmpgtd %mm2,%mm4 30 movl %ecx,20(%esp) 31 xorl %ecx,%ebp 32 psllq $31,%mm5 33 pand %mm3,%mm4 34 movl %edx,24(%esp) 35 movl $7,%esi 36 movl %ebp,28(%esp) 37 movl %esi,%ebp 38 andl %ebx,%esi 39 shrl $3,%ebx 40 movl %ebp,%edi 41 psllq $30,%mm4 42 andl %ebx,%edi 43 shrl $3,%ebx 44 movd (%esp,%esi,4),%mm0 45 movl %ebp,%esi 46 andl %ebx,%esi 47 shrl $3,%ebx 48 movd (%esp,%edi,4),%mm2 49 movl %ebp,%edi 50 psllq $3,%mm2 51 andl %ebx,%edi 52 shrl $3,%ebx 53 pxor %mm2,%mm0 54 movd (%esp,%esi,4),%mm1 55 movl %ebp,%esi 56 psllq $6,%mm1 57 andl %ebx,%esi 58 shrl $3,%ebx 59 pxor %mm1,%mm0 60 movd (%esp,%edi,4),%mm2 61 movl %ebp,%edi 62 psllq $9,%mm2 63 andl %ebx,%edi 64 shrl $3,%ebx 65 pxor %mm2,%mm0 66 movd (%esp,%esi,4),%mm1 67 movl %ebp,%esi 68 psllq $12,%mm1 69 andl %ebx,%esi 70 shrl $3,%ebx 71 pxor %mm1,%mm0 72 movd (%esp,%edi,4),%mm2 73 movl %ebp,%edi 74 psllq $15,%mm2 75 andl %ebx,%edi 76 shrl $3,%ebx 77 pxor %mm2,%mm0 78 movd (%esp,%esi,4),%mm1 79 movl %ebp,%esi 80 psllq $18,%mm1 81 andl %ebx,%esi 82 shrl $3,%ebx 83 pxor %mm1,%mm0 84 movd (%esp,%edi,4),%mm2 85 movl %ebp,%edi 86 psllq $21,%mm2 87 andl %ebx,%edi 88 shrl $3,%ebx 89 pxor %mm2,%mm0 90 movd (%esp,%esi,4),%mm1 91 movl %ebp,%esi 92 psllq $24,%mm1 93 andl %ebx,%esi 94 shrl $3,%ebx 95 pxor %mm1,%mm0 96 movd (%esp,%edi,4),%mm2 97 pxor %mm4,%mm0 98 psllq $27,%mm2 99 pxor %mm2,%mm0 100 movd (%esp,%esi,4),%mm1 101 pxor %mm5,%mm0 102 psllq $30,%mm1 103 addl $36,%esp 104 pxor %mm1,%mm0 105 ret 106.size _mul_1x1_mmx,.-_mul_1x1_mmx 107.type _mul_1x1_ialu,@function 108.align 16 109_mul_1x1_ialu: 110 subl $36,%esp 111 movl %eax,%ecx 112 leal (%eax,%eax,1),%edx 113 leal (,%eax,4),%ebp 114 andl $1073741823,%ecx 115 leal (%eax,%eax,1),%edi 116 sarl $31,%eax 117 movl $0,(%esp) 118 andl $2147483647,%edx 119 movl %ecx,4(%esp) 120 xorl %edx,%ecx 121 movl %edx,8(%esp) 122 xorl %ebp,%edx 123 movl %ecx,12(%esp) 124 xorl %edx,%ecx 125 movl %ebp,16(%esp) 126 xorl %edx,%ebp 127 movl %ecx,20(%esp) 128 xorl %ecx,%ebp 129 sarl $31,%edi 130 andl %ebx,%eax 131 movl %edx,24(%esp) 132 andl %ebx,%edi 133 movl %ebp,28(%esp) 134 movl %eax,%edx 135 shll $31,%eax 136 movl %edi,%ecx 137 shrl $1,%edx 138 movl $7,%esi 139 shll $30,%edi 140 andl %ebx,%esi 141 shrl $2,%ecx 142 xorl %edi,%eax 143 shrl $3,%ebx 144 movl $7,%edi 145 andl %ebx,%edi 146 shrl $3,%ebx 147 xorl %ecx,%edx 148 xorl (%esp,%esi,4),%eax 149 movl $7,%esi 150 andl %ebx,%esi 151 shrl $3,%ebx 152 movl (%esp,%edi,4),%ebp 153 movl $7,%edi 154 movl %ebp,%ecx 155 shll $3,%ebp 156 andl %ebx,%edi 157 shrl $29,%ecx 158 xorl %ebp,%eax 159 shrl $3,%ebx 160 xorl %ecx,%edx 161 movl (%esp,%esi,4),%ecx 162 movl $7,%esi 163 movl %ecx,%ebp 164 shll $6,%ecx 165 andl %ebx,%esi 166 shrl $26,%ebp 167 xorl %ecx,%eax 168 shrl $3,%ebx 169 xorl %ebp,%edx 170 movl (%esp,%edi,4),%ebp 171 movl $7,%edi 172 movl %ebp,%ecx 173 shll $9,%ebp 174 andl %ebx,%edi 175 shrl $23,%ecx 176 xorl %ebp,%eax 177 shrl $3,%ebx 178 xorl %ecx,%edx 179 movl (%esp,%esi,4),%ecx 180 movl $7,%esi 181 movl %ecx,%ebp 182 shll $12,%ecx 183 andl %ebx,%esi 184 shrl $20,%ebp 185 xorl %ecx,%eax 186 shrl $3,%ebx 187 xorl %ebp,%edx 188 movl (%esp,%edi,4),%ebp 189 movl $7,%edi 190 movl %ebp,%ecx 191 shll $15,%ebp 192 andl %ebx,%edi 193 shrl $17,%ecx 194 xorl %ebp,%eax 195 shrl $3,%ebx 196 xorl %ecx,%edx 197 movl (%esp,%esi,4),%ecx 198 movl $7,%esi 199 movl %ecx,%ebp 200 shll $18,%ecx 201 andl %ebx,%esi 202 shrl $14,%ebp 203 xorl %ecx,%eax 204 shrl $3,%ebx 205 xorl %ebp,%edx 206 movl (%esp,%edi,4),%ebp 207 movl $7,%edi 208 movl %ebp,%ecx 209 shll $21,%ebp 210 andl %ebx,%edi 211 shrl $11,%ecx 212 xorl %ebp,%eax 213 shrl $3,%ebx 214 xorl %ecx,%edx 215 movl (%esp,%esi,4),%ecx 216 movl $7,%esi 217 movl %ecx,%ebp 218 shll $24,%ecx 219 andl %ebx,%esi 220 shrl $8,%ebp 221 xorl %ecx,%eax 222 shrl $3,%ebx 223 xorl %ebp,%edx 224 movl (%esp,%edi,4),%ebp 225 movl %ebp,%ecx 226 shll $27,%ebp 227 movl (%esp,%esi,4),%edi 228 shrl $5,%ecx 229 movl %edi,%esi 230 xorl %ebp,%eax 231 shll $30,%edi 232 xorl %ecx,%edx 233 shrl $2,%esi 234 xorl %edi,%eax 235 xorl %esi,%edx 236 addl $36,%esp 237 ret 238.size _mul_1x1_ialu,.-_mul_1x1_ialu 239.globl bn_GF2m_mul_2x2 240.type bn_GF2m_mul_2x2,@function 241.align 16 242bn_GF2m_mul_2x2: 243.L_bn_GF2m_mul_2x2_begin: 244 call .L000PIC_me_up 245.L000PIC_me_up: 246 popl %edx 247 leal OPENSSL_ia32cap_P-.L000PIC_me_up(%edx),%edx 248 movl (%edx),%eax 249 movl 4(%edx),%edx 250 testl $8388608,%eax 251 jz .L001ialu 252 testl $16777216,%eax 253 jz .L002mmx 254 testl $2,%edx 255 jz .L002mmx 256 movups 8(%esp),%xmm0 257 shufps $177,%xmm0,%xmm0 258.byte 102,15,58,68,192,1 259 movl 4(%esp),%eax 260 movups %xmm0,(%eax) 261 ret 262.align 16 263.L002mmx: 264 pushl %ebp 265 pushl %ebx 266 pushl %esi 267 pushl %edi 268 movl 24(%esp),%eax 269 movl 32(%esp),%ebx 270 call _mul_1x1_mmx 271 movq %mm0,%mm7 272 movl 28(%esp),%eax 273 movl 36(%esp),%ebx 274 call _mul_1x1_mmx 275 movq %mm0,%mm6 276 movl 24(%esp),%eax 277 movl 32(%esp),%ebx 278 xorl 28(%esp),%eax 279 xorl 36(%esp),%ebx 280 call _mul_1x1_mmx 281 pxor %mm7,%mm0 282 movl 20(%esp),%eax 283 pxor %mm6,%mm0 284 movq %mm0,%mm2 285 psllq $32,%mm0 286 popl %edi 287 psrlq $32,%mm2 288 popl %esi 289 pxor %mm6,%mm0 290 popl %ebx 291 pxor %mm7,%mm2 292 movq %mm0,(%eax) 293 popl %ebp 294 movq %mm2,8(%eax) 295 emms 296 ret 297.align 16 298.L001ialu: 299 pushl %ebp 300 pushl %ebx 301 pushl %esi 302 pushl %edi 303 subl $20,%esp 304 movl 44(%esp),%eax 305 movl 52(%esp),%ebx 306 call _mul_1x1_ialu 307 movl %eax,8(%esp) 308 movl %edx,12(%esp) 309 movl 48(%esp),%eax 310 movl 56(%esp),%ebx 311 call _mul_1x1_ialu 312 movl %eax,(%esp) 313 movl %edx,4(%esp) 314 movl 44(%esp),%eax 315 movl 52(%esp),%ebx 316 xorl 48(%esp),%eax 317 xorl 56(%esp),%ebx 318 call _mul_1x1_ialu 319 movl 40(%esp),%ebp 320 movl (%esp),%ebx 321 movl 4(%esp),%ecx 322 movl 8(%esp),%edi 323 movl 12(%esp),%esi 324 xorl %edx,%eax 325 xorl %ecx,%edx 326 xorl %ebx,%eax 327 movl %ebx,(%ebp) 328 xorl %edi,%edx 329 movl %esi,12(%ebp) 330 xorl %esi,%eax 331 addl $20,%esp 332 xorl %esi,%edx 333 popl %edi 334 xorl %edx,%eax 335 popl %esi 336 movl %edx,8(%ebp) 337 popl %ebx 338 movl %eax,4(%ebp) 339 popl %ebp 340 ret 341.size bn_GF2m_mul_2x2,.-.L_bn_GF2m_mul_2x2_begin 342.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105 343.byte 99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32 344.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 345.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 346.byte 62,0 347.comm OPENSSL_ia32cap_P,16,4 348#else 349.text 350.type _mul_1x1_mmx,@function 351.align 16 352_mul_1x1_mmx: 353 subl $36,%esp 354 movl %eax,%ecx 355 leal (%eax,%eax,1),%edx 356 andl $1073741823,%ecx 357 leal (%edx,%edx,1),%ebp 358 movl $0,(%esp) 359 andl $2147483647,%edx 360 movd %eax,%mm2 361 movd %ebx,%mm3 362 movl %ecx,4(%esp) 363 xorl %edx,%ecx 364 pxor %mm5,%mm5 365 pxor %mm4,%mm4 366 movl %edx,8(%esp) 367 xorl %ebp,%edx 368 movl %ecx,12(%esp) 369 pcmpgtd %mm2,%mm5 370 paddd %mm2,%mm2 371 xorl %edx,%ecx 372 movl %ebp,16(%esp) 373 xorl %edx,%ebp 374 pand %mm3,%mm5 375 pcmpgtd %mm2,%mm4 376 movl %ecx,20(%esp) 377 xorl %ecx,%ebp 378 psllq $31,%mm5 379 pand %mm3,%mm4 380 movl %edx,24(%esp) 381 movl $7,%esi 382 movl %ebp,28(%esp) 383 movl %esi,%ebp 384 andl %ebx,%esi 385 shrl $3,%ebx 386 movl %ebp,%edi 387 psllq $30,%mm4 388 andl %ebx,%edi 389 shrl $3,%ebx 390 movd (%esp,%esi,4),%mm0 391 movl %ebp,%esi 392 andl %ebx,%esi 393 shrl $3,%ebx 394 movd (%esp,%edi,4),%mm2 395 movl %ebp,%edi 396 psllq $3,%mm2 397 andl %ebx,%edi 398 shrl $3,%ebx 399 pxor %mm2,%mm0 400 movd (%esp,%esi,4),%mm1 401 movl %ebp,%esi 402 psllq $6,%mm1 403 andl %ebx,%esi 404 shrl $3,%ebx 405 pxor %mm1,%mm0 406 movd (%esp,%edi,4),%mm2 407 movl %ebp,%edi 408 psllq $9,%mm2 409 andl %ebx,%edi 410 shrl $3,%ebx 411 pxor %mm2,%mm0 412 movd (%esp,%esi,4),%mm1 413 movl %ebp,%esi 414 psllq $12,%mm1 415 andl %ebx,%esi 416 shrl $3,%ebx 417 pxor %mm1,%mm0 418 movd (%esp,%edi,4),%mm2 419 movl %ebp,%edi 420 psllq $15,%mm2 421 andl %ebx,%edi 422 shrl $3,%ebx 423 pxor %mm2,%mm0 424 movd (%esp,%esi,4),%mm1 425 movl %ebp,%esi 426 psllq $18,%mm1 427 andl %ebx,%esi 428 shrl $3,%ebx 429 pxor %mm1,%mm0 430 movd (%esp,%edi,4),%mm2 431 movl %ebp,%edi 432 psllq $21,%mm2 433 andl %ebx,%edi 434 shrl $3,%ebx 435 pxor %mm2,%mm0 436 movd (%esp,%esi,4),%mm1 437 movl %ebp,%esi 438 psllq $24,%mm1 439 andl %ebx,%esi 440 shrl $3,%ebx 441 pxor %mm1,%mm0 442 movd (%esp,%edi,4),%mm2 443 pxor %mm4,%mm0 444 psllq $27,%mm2 445 pxor %mm2,%mm0 446 movd (%esp,%esi,4),%mm1 447 pxor %mm5,%mm0 448 psllq $30,%mm1 449 addl $36,%esp 450 pxor %mm1,%mm0 451 ret 452.size _mul_1x1_mmx,.-_mul_1x1_mmx 453.type _mul_1x1_ialu,@function 454.align 16 455_mul_1x1_ialu: 456 subl $36,%esp 457 movl %eax,%ecx 458 leal (%eax,%eax,1),%edx 459 leal (,%eax,4),%ebp 460 andl $1073741823,%ecx 461 leal (%eax,%eax,1),%edi 462 sarl $31,%eax 463 movl $0,(%esp) 464 andl $2147483647,%edx 465 movl %ecx,4(%esp) 466 xorl %edx,%ecx 467 movl %edx,8(%esp) 468 xorl %ebp,%edx 469 movl %ecx,12(%esp) 470 xorl %edx,%ecx 471 movl %ebp,16(%esp) 472 xorl %edx,%ebp 473 movl %ecx,20(%esp) 474 xorl %ecx,%ebp 475 sarl $31,%edi 476 andl %ebx,%eax 477 movl %edx,24(%esp) 478 andl %ebx,%edi 479 movl %ebp,28(%esp) 480 movl %eax,%edx 481 shll $31,%eax 482 movl %edi,%ecx 483 shrl $1,%edx 484 movl $7,%esi 485 shll $30,%edi 486 andl %ebx,%esi 487 shrl $2,%ecx 488 xorl %edi,%eax 489 shrl $3,%ebx 490 movl $7,%edi 491 andl %ebx,%edi 492 shrl $3,%ebx 493 xorl %ecx,%edx 494 xorl (%esp,%esi,4),%eax 495 movl $7,%esi 496 andl %ebx,%esi 497 shrl $3,%ebx 498 movl (%esp,%edi,4),%ebp 499 movl $7,%edi 500 movl %ebp,%ecx 501 shll $3,%ebp 502 andl %ebx,%edi 503 shrl $29,%ecx 504 xorl %ebp,%eax 505 shrl $3,%ebx 506 xorl %ecx,%edx 507 movl (%esp,%esi,4),%ecx 508 movl $7,%esi 509 movl %ecx,%ebp 510 shll $6,%ecx 511 andl %ebx,%esi 512 shrl $26,%ebp 513 xorl %ecx,%eax 514 shrl $3,%ebx 515 xorl %ebp,%edx 516 movl (%esp,%edi,4),%ebp 517 movl $7,%edi 518 movl %ebp,%ecx 519 shll $9,%ebp 520 andl %ebx,%edi 521 shrl $23,%ecx 522 xorl %ebp,%eax 523 shrl $3,%ebx 524 xorl %ecx,%edx 525 movl (%esp,%esi,4),%ecx 526 movl $7,%esi 527 movl %ecx,%ebp 528 shll $12,%ecx 529 andl %ebx,%esi 530 shrl $20,%ebp 531 xorl %ecx,%eax 532 shrl $3,%ebx 533 xorl %ebp,%edx 534 movl (%esp,%edi,4),%ebp 535 movl $7,%edi 536 movl %ebp,%ecx 537 shll $15,%ebp 538 andl %ebx,%edi 539 shrl $17,%ecx 540 xorl %ebp,%eax 541 shrl $3,%ebx 542 xorl %ecx,%edx 543 movl (%esp,%esi,4),%ecx 544 movl $7,%esi 545 movl %ecx,%ebp 546 shll $18,%ecx 547 andl %ebx,%esi 548 shrl $14,%ebp 549 xorl %ecx,%eax 550 shrl $3,%ebx 551 xorl %ebp,%edx 552 movl (%esp,%edi,4),%ebp 553 movl $7,%edi 554 movl %ebp,%ecx 555 shll $21,%ebp 556 andl %ebx,%edi 557 shrl $11,%ecx 558 xorl %ebp,%eax 559 shrl $3,%ebx 560 xorl %ecx,%edx 561 movl (%esp,%esi,4),%ecx 562 movl $7,%esi 563 movl %ecx,%ebp 564 shll $24,%ecx 565 andl %ebx,%esi 566 shrl $8,%ebp 567 xorl %ecx,%eax 568 shrl $3,%ebx 569 xorl %ebp,%edx 570 movl (%esp,%edi,4),%ebp 571 movl %ebp,%ecx 572 shll $27,%ebp 573 movl (%esp,%esi,4),%edi 574 shrl $5,%ecx 575 movl %edi,%esi 576 xorl %ebp,%eax 577 shll $30,%edi 578 xorl %ecx,%edx 579 shrl $2,%esi 580 xorl %edi,%eax 581 xorl %esi,%edx 582 addl $36,%esp 583 ret 584.size _mul_1x1_ialu,.-_mul_1x1_ialu 585.globl bn_GF2m_mul_2x2 586.type bn_GF2m_mul_2x2,@function 587.align 16 588bn_GF2m_mul_2x2: 589.L_bn_GF2m_mul_2x2_begin: 590 leal OPENSSL_ia32cap_P,%edx 591 movl (%edx),%eax 592 movl 4(%edx),%edx 593 testl $8388608,%eax 594 jz .L000ialu 595 testl $16777216,%eax 596 jz .L001mmx 597 testl $2,%edx 598 jz .L001mmx 599 movups 8(%esp),%xmm0 600 shufps $177,%xmm0,%xmm0 601.byte 102,15,58,68,192,1 602 movl 4(%esp),%eax 603 movups %xmm0,(%eax) 604 ret 605.align 16 606.L001mmx: 607 pushl %ebp 608 pushl %ebx 609 pushl %esi 610 pushl %edi 611 movl 24(%esp),%eax 612 movl 32(%esp),%ebx 613 call _mul_1x1_mmx 614 movq %mm0,%mm7 615 movl 28(%esp),%eax 616 movl 36(%esp),%ebx 617 call _mul_1x1_mmx 618 movq %mm0,%mm6 619 movl 24(%esp),%eax 620 movl 32(%esp),%ebx 621 xorl 28(%esp),%eax 622 xorl 36(%esp),%ebx 623 call _mul_1x1_mmx 624 pxor %mm7,%mm0 625 movl 20(%esp),%eax 626 pxor %mm6,%mm0 627 movq %mm0,%mm2 628 psllq $32,%mm0 629 popl %edi 630 psrlq $32,%mm2 631 popl %esi 632 pxor %mm6,%mm0 633 popl %ebx 634 pxor %mm7,%mm2 635 movq %mm0,(%eax) 636 popl %ebp 637 movq %mm2,8(%eax) 638 emms 639 ret 640.align 16 641.L000ialu: 642 pushl %ebp 643 pushl %ebx 644 pushl %esi 645 pushl %edi 646 subl $20,%esp 647 movl 44(%esp),%eax 648 movl 52(%esp),%ebx 649 call _mul_1x1_ialu 650 movl %eax,8(%esp) 651 movl %edx,12(%esp) 652 movl 48(%esp),%eax 653 movl 56(%esp),%ebx 654 call _mul_1x1_ialu 655 movl %eax,(%esp) 656 movl %edx,4(%esp) 657 movl 44(%esp),%eax 658 movl 52(%esp),%ebx 659 xorl 48(%esp),%eax 660 xorl 56(%esp),%ebx 661 call _mul_1x1_ialu 662 movl 40(%esp),%ebp 663 movl (%esp),%ebx 664 movl 4(%esp),%ecx 665 movl 8(%esp),%edi 666 movl 12(%esp),%esi 667 xorl %edx,%eax 668 xorl %ecx,%edx 669 xorl %ebx,%eax 670 movl %ebx,(%ebp) 671 xorl %edi,%edx 672 movl %esi,12(%ebp) 673 xorl %esi,%eax 674 addl $20,%esp 675 xorl %esi,%edx 676 popl %edi 677 xorl %edx,%eax 678 popl %esi 679 movl %edx,8(%ebp) 680 popl %ebx 681 movl %eax,4(%ebp) 682 popl %ebp 683 ret 684.size bn_GF2m_mul_2x2,.-.L_bn_GF2m_mul_2x2_begin 685.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105 686.byte 99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32 687.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 688.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 689.byte 62,0 690.comm OPENSSL_ia32cap_P,16,4 691#endif 692