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