The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/crypto/openssl/i386/bn-586.S

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $FreeBSD$ */
    2 /* Do not modify. This file is auto-generated from bn-586.pl. */
    3 #ifdef PIC
    4 .text
    5 .globl  bn_mul_add_words
    6 .type   bn_mul_add_words,@function
    7 .align  16
    8 bn_mul_add_words:
    9 .L_bn_mul_add_words_begin:
   10         call    .L000PIC_me_up
   11 .L000PIC_me_up:
   12         popl    %eax
   13         leal    OPENSSL_ia32cap_P-.L000PIC_me_up(%eax),%eax
   14         btl     $26,(%eax)
   15         jnc     .L001maw_non_sse2
   16         movl    4(%esp),%eax
   17         movl    8(%esp),%edx
   18         movl    12(%esp),%ecx
   19         movd    16(%esp),%mm0
   20         pxor    %mm1,%mm1
   21         jmp     .L002maw_sse2_entry
   22 .align  16
   23 .L003maw_sse2_unrolled:
   24         movd    (%eax),%mm3
   25         paddq   %mm3,%mm1
   26         movd    (%edx),%mm2
   27         pmuludq %mm0,%mm2
   28         movd    4(%edx),%mm4
   29         pmuludq %mm0,%mm4
   30         movd    8(%edx),%mm6
   31         pmuludq %mm0,%mm6
   32         movd    12(%edx),%mm7
   33         pmuludq %mm0,%mm7
   34         paddq   %mm2,%mm1
   35         movd    4(%eax),%mm3
   36         paddq   %mm4,%mm3
   37         movd    8(%eax),%mm5
   38         paddq   %mm6,%mm5
   39         movd    12(%eax),%mm4
   40         paddq   %mm4,%mm7
   41         movd    %mm1,(%eax)
   42         movd    16(%edx),%mm2
   43         pmuludq %mm0,%mm2
   44         psrlq   $32,%mm1
   45         movd    20(%edx),%mm4
   46         pmuludq %mm0,%mm4
   47         paddq   %mm3,%mm1
   48         movd    24(%edx),%mm6
   49         pmuludq %mm0,%mm6
   50         movd    %mm1,4(%eax)
   51         psrlq   $32,%mm1
   52         movd    28(%edx),%mm3
   53         addl    $32,%edx
   54         pmuludq %mm0,%mm3
   55         paddq   %mm5,%mm1
   56         movd    16(%eax),%mm5
   57         paddq   %mm5,%mm2
   58         movd    %mm1,8(%eax)
   59         psrlq   $32,%mm1
   60         paddq   %mm7,%mm1
   61         movd    20(%eax),%mm5
   62         paddq   %mm5,%mm4
   63         movd    %mm1,12(%eax)
   64         psrlq   $32,%mm1
   65         paddq   %mm2,%mm1
   66         movd    24(%eax),%mm5
   67         paddq   %mm5,%mm6
   68         movd    %mm1,16(%eax)
   69         psrlq   $32,%mm1
   70         paddq   %mm4,%mm1
   71         movd    28(%eax),%mm5
   72         paddq   %mm5,%mm3
   73         movd    %mm1,20(%eax)
   74         psrlq   $32,%mm1
   75         paddq   %mm6,%mm1
   76         movd    %mm1,24(%eax)
   77         psrlq   $32,%mm1
   78         paddq   %mm3,%mm1
   79         movd    %mm1,28(%eax)
   80         leal    32(%eax),%eax
   81         psrlq   $32,%mm1
   82         subl    $8,%ecx
   83         jz      .L004maw_sse2_exit
   84 .L002maw_sse2_entry:
   85         testl   $4294967288,%ecx
   86         jnz     .L003maw_sse2_unrolled
   87 .align  4
   88 .L005maw_sse2_loop:
   89         movd    (%edx),%mm2
   90         movd    (%eax),%mm3
   91         pmuludq %mm0,%mm2
   92         leal    4(%edx),%edx
   93         paddq   %mm3,%mm1
   94         paddq   %mm2,%mm1
   95         movd    %mm1,(%eax)
   96         subl    $1,%ecx
   97         psrlq   $32,%mm1
   98         leal    4(%eax),%eax
   99         jnz     .L005maw_sse2_loop
  100 .L004maw_sse2_exit:
  101         movd    %mm1,%eax
  102         emms
  103         ret
  104 .align  16
  105 .L001maw_non_sse2:
  106         pushl   %ebp
  107         pushl   %ebx
  108         pushl   %esi
  109         pushl   %edi
  110 
  111         xorl    %esi,%esi
  112         movl    20(%esp),%edi
  113         movl    28(%esp),%ecx
  114         movl    24(%esp),%ebx
  115         andl    $4294967288,%ecx
  116         movl    32(%esp),%ebp
  117         pushl   %ecx
  118         jz      .L006maw_finish
  119 .align  16
  120 .L007maw_loop:
  121 
  122         movl    (%ebx),%eax
  123         mull    %ebp
  124         addl    %esi,%eax
  125         adcl    $0,%edx
  126         addl    (%edi),%eax
  127         adcl    $0,%edx
  128         movl    %eax,(%edi)
  129         movl    %edx,%esi
  130 
  131         movl    4(%ebx),%eax
  132         mull    %ebp
  133         addl    %esi,%eax
  134         adcl    $0,%edx
  135         addl    4(%edi),%eax
  136         adcl    $0,%edx
  137         movl    %eax,4(%edi)
  138         movl    %edx,%esi
  139 
  140         movl    8(%ebx),%eax
  141         mull    %ebp
  142         addl    %esi,%eax
  143         adcl    $0,%edx
  144         addl    8(%edi),%eax
  145         adcl    $0,%edx
  146         movl    %eax,8(%edi)
  147         movl    %edx,%esi
  148 
  149         movl    12(%ebx),%eax
  150         mull    %ebp
  151         addl    %esi,%eax
  152         adcl    $0,%edx
  153         addl    12(%edi),%eax
  154         adcl    $0,%edx
  155         movl    %eax,12(%edi)
  156         movl    %edx,%esi
  157 
  158         movl    16(%ebx),%eax
  159         mull    %ebp
  160         addl    %esi,%eax
  161         adcl    $0,%edx
  162         addl    16(%edi),%eax
  163         adcl    $0,%edx
  164         movl    %eax,16(%edi)
  165         movl    %edx,%esi
  166 
  167         movl    20(%ebx),%eax
  168         mull    %ebp
  169         addl    %esi,%eax
  170         adcl    $0,%edx
  171         addl    20(%edi),%eax
  172         adcl    $0,%edx
  173         movl    %eax,20(%edi)
  174         movl    %edx,%esi
  175 
  176         movl    24(%ebx),%eax
  177         mull    %ebp
  178         addl    %esi,%eax
  179         adcl    $0,%edx
  180         addl    24(%edi),%eax
  181         adcl    $0,%edx
  182         movl    %eax,24(%edi)
  183         movl    %edx,%esi
  184 
  185         movl    28(%ebx),%eax
  186         mull    %ebp
  187         addl    %esi,%eax
  188         adcl    $0,%edx
  189         addl    28(%edi),%eax
  190         adcl    $0,%edx
  191         movl    %eax,28(%edi)
  192         movl    %edx,%esi
  193 
  194         subl    $8,%ecx
  195         leal    32(%ebx),%ebx
  196         leal    32(%edi),%edi
  197         jnz     .L007maw_loop
  198 .L006maw_finish:
  199         movl    32(%esp),%ecx
  200         andl    $7,%ecx
  201         jnz     .L008maw_finish2
  202         jmp     .L009maw_end
  203 .L008maw_finish2:
  204 
  205         movl    (%ebx),%eax
  206         mull    %ebp
  207         addl    %esi,%eax
  208         adcl    $0,%edx
  209         addl    (%edi),%eax
  210         adcl    $0,%edx
  211         decl    %ecx
  212         movl    %eax,(%edi)
  213         movl    %edx,%esi
  214         jz      .L009maw_end
  215 
  216         movl    4(%ebx),%eax
  217         mull    %ebp
  218         addl    %esi,%eax
  219         adcl    $0,%edx
  220         addl    4(%edi),%eax
  221         adcl    $0,%edx
  222         decl    %ecx
  223         movl    %eax,4(%edi)
  224         movl    %edx,%esi
  225         jz      .L009maw_end
  226 
  227         movl    8(%ebx),%eax
  228         mull    %ebp
  229         addl    %esi,%eax
  230         adcl    $0,%edx
  231         addl    8(%edi),%eax
  232         adcl    $0,%edx
  233         decl    %ecx
  234         movl    %eax,8(%edi)
  235         movl    %edx,%esi
  236         jz      .L009maw_end
  237 
  238         movl    12(%ebx),%eax
  239         mull    %ebp
  240         addl    %esi,%eax
  241         adcl    $0,%edx
  242         addl    12(%edi),%eax
  243         adcl    $0,%edx
  244         decl    %ecx
  245         movl    %eax,12(%edi)
  246         movl    %edx,%esi
  247         jz      .L009maw_end
  248 
  249         movl    16(%ebx),%eax
  250         mull    %ebp
  251         addl    %esi,%eax
  252         adcl    $0,%edx
  253         addl    16(%edi),%eax
  254         adcl    $0,%edx
  255         decl    %ecx
  256         movl    %eax,16(%edi)
  257         movl    %edx,%esi
  258         jz      .L009maw_end
  259 
  260         movl    20(%ebx),%eax
  261         mull    %ebp
  262         addl    %esi,%eax
  263         adcl    $0,%edx
  264         addl    20(%edi),%eax
  265         adcl    $0,%edx
  266         decl    %ecx
  267         movl    %eax,20(%edi)
  268         movl    %edx,%esi
  269         jz      .L009maw_end
  270 
  271         movl    24(%ebx),%eax
  272         mull    %ebp
  273         addl    %esi,%eax
  274         adcl    $0,%edx
  275         addl    24(%edi),%eax
  276         adcl    $0,%edx
  277         movl    %eax,24(%edi)
  278         movl    %edx,%esi
  279 .L009maw_end:
  280         movl    %esi,%eax
  281         popl    %ecx
  282         popl    %edi
  283         popl    %esi
  284         popl    %ebx
  285         popl    %ebp
  286         ret
  287 .size   bn_mul_add_words,.-.L_bn_mul_add_words_begin
  288 .globl  bn_mul_words
  289 .type   bn_mul_words,@function
  290 .align  16
  291 bn_mul_words:
  292 .L_bn_mul_words_begin:
  293         call    .L010PIC_me_up
  294 .L010PIC_me_up:
  295         popl    %eax
  296         leal    OPENSSL_ia32cap_P-.L010PIC_me_up(%eax),%eax
  297         btl     $26,(%eax)
  298         jnc     .L011mw_non_sse2
  299         movl    4(%esp),%eax
  300         movl    8(%esp),%edx
  301         movl    12(%esp),%ecx
  302         movd    16(%esp),%mm0
  303         pxor    %mm1,%mm1
  304 .align  16
  305 .L012mw_sse2_loop:
  306         movd    (%edx),%mm2
  307         pmuludq %mm0,%mm2
  308         leal    4(%edx),%edx
  309         paddq   %mm2,%mm1
  310         movd    %mm1,(%eax)
  311         subl    $1,%ecx
  312         psrlq   $32,%mm1
  313         leal    4(%eax),%eax
  314         jnz     .L012mw_sse2_loop
  315         movd    %mm1,%eax
  316         emms
  317         ret
  318 .align  16
  319 .L011mw_non_sse2:
  320         pushl   %ebp
  321         pushl   %ebx
  322         pushl   %esi
  323         pushl   %edi
  324 
  325         xorl    %esi,%esi
  326         movl    20(%esp),%edi
  327         movl    24(%esp),%ebx
  328         movl    28(%esp),%ebp
  329         movl    32(%esp),%ecx
  330         andl    $4294967288,%ebp
  331         jz      .L013mw_finish
  332 .L014mw_loop:
  333 
  334         movl    (%ebx),%eax
  335         mull    %ecx
  336         addl    %esi,%eax
  337         adcl    $0,%edx
  338         movl    %eax,(%edi)
  339         movl    %edx,%esi
  340 
  341         movl    4(%ebx),%eax
  342         mull    %ecx
  343         addl    %esi,%eax
  344         adcl    $0,%edx
  345         movl    %eax,4(%edi)
  346         movl    %edx,%esi
  347 
  348         movl    8(%ebx),%eax
  349         mull    %ecx
  350         addl    %esi,%eax
  351         adcl    $0,%edx
  352         movl    %eax,8(%edi)
  353         movl    %edx,%esi
  354 
  355         movl    12(%ebx),%eax
  356         mull    %ecx
  357         addl    %esi,%eax
  358         adcl    $0,%edx
  359         movl    %eax,12(%edi)
  360         movl    %edx,%esi
  361 
  362         movl    16(%ebx),%eax
  363         mull    %ecx
  364         addl    %esi,%eax
  365         adcl    $0,%edx
  366         movl    %eax,16(%edi)
  367         movl    %edx,%esi
  368 
  369         movl    20(%ebx),%eax
  370         mull    %ecx
  371         addl    %esi,%eax
  372         adcl    $0,%edx
  373         movl    %eax,20(%edi)
  374         movl    %edx,%esi
  375 
  376         movl    24(%ebx),%eax
  377         mull    %ecx
  378         addl    %esi,%eax
  379         adcl    $0,%edx
  380         movl    %eax,24(%edi)
  381         movl    %edx,%esi
  382 
  383         movl    28(%ebx),%eax
  384         mull    %ecx
  385         addl    %esi,%eax
  386         adcl    $0,%edx
  387         movl    %eax,28(%edi)
  388         movl    %edx,%esi
  389 
  390         addl    $32,%ebx
  391         addl    $32,%edi
  392         subl    $8,%ebp
  393         jz      .L013mw_finish
  394         jmp     .L014mw_loop
  395 .L013mw_finish:
  396         movl    28(%esp),%ebp
  397         andl    $7,%ebp
  398         jnz     .L015mw_finish2
  399         jmp     .L016mw_end
  400 .L015mw_finish2:
  401 
  402         movl    (%ebx),%eax
  403         mull    %ecx
  404         addl    %esi,%eax
  405         adcl    $0,%edx
  406         movl    %eax,(%edi)
  407         movl    %edx,%esi
  408         decl    %ebp
  409         jz      .L016mw_end
  410 
  411         movl    4(%ebx),%eax
  412         mull    %ecx
  413         addl    %esi,%eax
  414         adcl    $0,%edx
  415         movl    %eax,4(%edi)
  416         movl    %edx,%esi
  417         decl    %ebp
  418         jz      .L016mw_end
  419 
  420         movl    8(%ebx),%eax
  421         mull    %ecx
  422         addl    %esi,%eax
  423         adcl    $0,%edx
  424         movl    %eax,8(%edi)
  425         movl    %edx,%esi
  426         decl    %ebp
  427         jz      .L016mw_end
  428 
  429         movl    12(%ebx),%eax
  430         mull    %ecx
  431         addl    %esi,%eax
  432         adcl    $0,%edx
  433         movl    %eax,12(%edi)
  434         movl    %edx,%esi
  435         decl    %ebp
  436         jz      .L016mw_end
  437 
  438         movl    16(%ebx),%eax
  439         mull    %ecx
  440         addl    %esi,%eax
  441         adcl    $0,%edx
  442         movl    %eax,16(%edi)
  443         movl    %edx,%esi
  444         decl    %ebp
  445         jz      .L016mw_end
  446 
  447         movl    20(%ebx),%eax
  448         mull    %ecx
  449         addl    %esi,%eax
  450         adcl    $0,%edx
  451         movl    %eax,20(%edi)
  452         movl    %edx,%esi
  453         decl    %ebp
  454         jz      .L016mw_end
  455 
  456         movl    24(%ebx),%eax
  457         mull    %ecx
  458         addl    %esi,%eax
  459         adcl    $0,%edx
  460         movl    %eax,24(%edi)
  461         movl    %edx,%esi
  462 .L016mw_end:
  463         movl    %esi,%eax
  464         popl    %edi
  465         popl    %esi
  466         popl    %ebx
  467         popl    %ebp
  468         ret
  469 .size   bn_mul_words,.-.L_bn_mul_words_begin
  470 .globl  bn_sqr_words
  471 .type   bn_sqr_words,@function
  472 .align  16
  473 bn_sqr_words:
  474 .L_bn_sqr_words_begin:
  475         call    .L017PIC_me_up
  476 .L017PIC_me_up:
  477         popl    %eax
  478         leal    OPENSSL_ia32cap_P-.L017PIC_me_up(%eax),%eax
  479         btl     $26,(%eax)
  480         jnc     .L018sqr_non_sse2
  481         movl    4(%esp),%eax
  482         movl    8(%esp),%edx
  483         movl    12(%esp),%ecx
  484 .align  16
  485 .L019sqr_sse2_loop:
  486         movd    (%edx),%mm0
  487         pmuludq %mm0,%mm0
  488         leal    4(%edx),%edx
  489         movq    %mm0,(%eax)
  490         subl    $1,%ecx
  491         leal    8(%eax),%eax
  492         jnz     .L019sqr_sse2_loop
  493         emms
  494         ret
  495 .align  16
  496 .L018sqr_non_sse2:
  497         pushl   %ebp
  498         pushl   %ebx
  499         pushl   %esi
  500         pushl   %edi
  501 
  502         movl    20(%esp),%esi
  503         movl    24(%esp),%edi
  504         movl    28(%esp),%ebx
  505         andl    $4294967288,%ebx
  506         jz      .L020sw_finish
  507 .L021sw_loop:
  508 
  509         movl    (%edi),%eax
  510         mull    %eax
  511         movl    %eax,(%esi)
  512         movl    %edx,4(%esi)
  513 
  514         movl    4(%edi),%eax
  515         mull    %eax
  516         movl    %eax,8(%esi)
  517         movl    %edx,12(%esi)
  518 
  519         movl    8(%edi),%eax
  520         mull    %eax
  521         movl    %eax,16(%esi)
  522         movl    %edx,20(%esi)
  523 
  524         movl    12(%edi),%eax
  525         mull    %eax
  526         movl    %eax,24(%esi)
  527         movl    %edx,28(%esi)
  528 
  529         movl    16(%edi),%eax
  530         mull    %eax
  531         movl    %eax,32(%esi)
  532         movl    %edx,36(%esi)
  533 
  534         movl    20(%edi),%eax
  535         mull    %eax
  536         movl    %eax,40(%esi)
  537         movl    %edx,44(%esi)
  538 
  539         movl    24(%edi),%eax
  540         mull    %eax
  541         movl    %eax,48(%esi)
  542         movl    %edx,52(%esi)
  543 
  544         movl    28(%edi),%eax
  545         mull    %eax
  546         movl    %eax,56(%esi)
  547         movl    %edx,60(%esi)
  548 
  549         addl    $32,%edi
  550         addl    $64,%esi
  551         subl    $8,%ebx
  552         jnz     .L021sw_loop
  553 .L020sw_finish:
  554         movl    28(%esp),%ebx
  555         andl    $7,%ebx
  556         jz      .L022sw_end
  557 
  558         movl    (%edi),%eax
  559         mull    %eax
  560         movl    %eax,(%esi)
  561         decl    %ebx
  562         movl    %edx,4(%esi)
  563         jz      .L022sw_end
  564 
  565         movl    4(%edi),%eax
  566         mull    %eax
  567         movl    %eax,8(%esi)
  568         decl    %ebx
  569         movl    %edx,12(%esi)
  570         jz      .L022sw_end
  571 
  572         movl    8(%edi),%eax
  573         mull    %eax
  574         movl    %eax,16(%esi)
  575         decl    %ebx
  576         movl    %edx,20(%esi)
  577         jz      .L022sw_end
  578 
  579         movl    12(%edi),%eax
  580         mull    %eax
  581         movl    %eax,24(%esi)
  582         decl    %ebx
  583         movl    %edx,28(%esi)
  584         jz      .L022sw_end
  585 
  586         movl    16(%edi),%eax
  587         mull    %eax
  588         movl    %eax,32(%esi)
  589         decl    %ebx
  590         movl    %edx,36(%esi)
  591         jz      .L022sw_end
  592 
  593         movl    20(%edi),%eax
  594         mull    %eax
  595         movl    %eax,40(%esi)
  596         decl    %ebx
  597         movl    %edx,44(%esi)
  598         jz      .L022sw_end
  599 
  600         movl    24(%edi),%eax
  601         mull    %eax
  602         movl    %eax,48(%esi)
  603         movl    %edx,52(%esi)
  604 .L022sw_end:
  605         popl    %edi
  606         popl    %esi
  607         popl    %ebx
  608         popl    %ebp
  609         ret
  610 .size   bn_sqr_words,.-.L_bn_sqr_words_begin
  611 .globl  bn_div_words
  612 .type   bn_div_words,@function
  613 .align  16
  614 bn_div_words:
  615 .L_bn_div_words_begin:
  616         movl    4(%esp),%edx
  617         movl    8(%esp),%eax
  618         movl    12(%esp),%ecx
  619         divl    %ecx
  620         ret
  621 .size   bn_div_words,.-.L_bn_div_words_begin
  622 .globl  bn_add_words
  623 .type   bn_add_words,@function
  624 .align  16
  625 bn_add_words:
  626 .L_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
  639 .L024aw_loop:
  640 
  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 
  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 
  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 
  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 
  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 
  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 
  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 
  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
  718 .L023aw_finish:
  719         movl    32(%esp),%ebp
  720         andl    $7,%ebp
  721         jz      .L025aw_end
  722 
  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 
  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 
  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 
  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 
  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 
  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 
  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)
  797 .L025aw_end:
  798         popl    %edi
  799         popl    %esi
  800         popl    %ebx
  801         popl    %ebp
  802         ret
  803 .size   bn_add_words,.-.L_bn_add_words_begin
  804 .globl  bn_sub_words
  805 .type   bn_sub_words,@function
  806 .align  16
  807 bn_sub_words:
  808 .L_bn_sub_words_begin:
  809         pushl   %ebp
  810         pushl   %ebx
  811         pushl   %esi
  812         pushl   %edi
  813 
  814         movl    20(%esp),%ebx
  815         movl    24(%esp),%esi
  816         movl    28(%esp),%edi
  817         movl    32(%esp),%ebp
  818         xorl    %eax,%eax
  819         andl    $4294967288,%ebp
  820         jz      .L026aw_finish
  821 .L027aw_loop:
  822 
  823         movl    (%esi),%ecx
  824         movl    (%edi),%edx
  825         subl    %eax,%ecx
  826         movl    $0,%eax
  827         adcl    %eax,%eax
  828         subl    %edx,%ecx
  829         adcl    $0,%eax
  830         movl    %ecx,(%ebx)
  831 
  832         movl    4(%esi),%ecx
  833         movl    4(%edi),%edx
  834         subl    %eax,%ecx
  835         movl    $0,%eax
  836         adcl    %eax,%eax
  837         subl    %edx,%ecx
  838         adcl    $0,%eax
  839         movl    %ecx,4(%ebx)
  840 
  841         movl    8(%esi),%ecx
  842         movl    8(%edi),%edx
  843         subl    %eax,%ecx
  844         movl    $0,%eax
  845         adcl    %eax,%eax
  846         subl    %edx,%ecx
  847         adcl    $0,%eax
  848         movl    %ecx,8(%ebx)
  849 
  850         movl    12(%esi),%ecx
  851         movl    12(%edi),%edx
  852         subl    %eax,%ecx
  853         movl    $0,%eax
  854         adcl    %eax,%eax
  855         subl    %edx,%ecx
  856         adcl    $0,%eax
  857         movl    %ecx,12(%ebx)
  858 
  859         movl    16(%esi),%ecx
  860         movl    16(%edi),%edx
  861         subl    %eax,%ecx
  862         movl    $0,%eax
  863         adcl    %eax,%eax
  864         subl    %edx,%ecx
  865         adcl    $0,%eax
  866         movl    %ecx,16(%ebx)
  867 
  868         movl    20(%esi),%ecx
  869         movl    20(%edi),%edx
  870         subl    %eax,%ecx
  871         movl    $0,%eax
  872         adcl    %eax,%eax
  873         subl    %edx,%ecx
  874         adcl    $0,%eax
  875         movl    %ecx,20(%ebx)
  876 
  877         movl    24(%esi),%ecx
  878         movl    24(%edi),%edx
  879         subl    %eax,%ecx
  880         movl    $0,%eax
  881         adcl    %eax,%eax
  882         subl    %edx,%ecx
  883         adcl    $0,%eax
  884         movl    %ecx,24(%ebx)
  885 
  886         movl    28(%esi),%ecx
  887         movl    28(%edi),%edx
  888         subl    %eax,%ecx
  889         movl    $0,%eax
  890         adcl    %eax,%eax
  891         subl    %edx,%ecx
  892         adcl    $0,%eax
  893         movl    %ecx,28(%ebx)
  894 
  895         addl    $32,%esi
  896         addl    $32,%edi
  897         addl    $32,%ebx
  898         subl    $8,%ebp
  899         jnz     .L027aw_loop
  900 .L026aw_finish:
  901         movl    32(%esp),%ebp
  902         andl    $7,%ebp
  903         jz      .L028aw_end
  904 
  905         movl    (%esi),%ecx
  906         movl    (%edi),%edx
  907         subl    %eax,%ecx
  908         movl    $0,%eax
  909         adcl    %eax,%eax
  910         subl    %edx,%ecx
  911         adcl    $0,%eax
  912         decl    %ebp
  913         movl    %ecx,(%ebx)
  914         jz      .L028aw_end
  915 
  916         movl    4(%esi),%ecx
  917         movl    4(%edi),%edx
  918         subl    %eax,%ecx
  919         movl    $0,%eax
  920         adcl    %eax,%eax
  921         subl    %edx,%ecx
  922         adcl    $0,%eax
  923         decl    %ebp
  924         movl    %ecx,4(%ebx)
  925         jz      .L028aw_end
  926 
  927         movl    8(%esi),%ecx
  928         movl    8(%edi),%edx
  929         subl    %eax,%ecx
  930         movl    $0,%eax
  931         adcl    %eax,%eax
  932         subl    %edx,%ecx
  933         adcl    $0,%eax
  934         decl    %ebp
  935         movl    %ecx,8(%ebx)
  936         jz      .L028aw_end
  937 
  938         movl    12(%esi),%ecx
  939         movl    12(%edi),%edx
  940         subl    %eax,%ecx
  941         movl    $0,%eax
  942         adcl    %eax,%eax
  943         subl    %edx,%ecx
  944         adcl    $0,%eax
  945         decl    %ebp
  946         movl    %ecx,12(%ebx)
  947         jz      .L028aw_end
  948 
  949         movl    16(%esi),%ecx
  950         movl    16(%edi),%edx
  951         subl    %eax,%ecx
  952         movl    $0,%eax
  953         adcl    %eax,%eax
  954         subl    %edx,%ecx
  955         adcl    $0,%eax
  956         decl    %ebp
  957         movl    %ecx,16(%ebx)
  958         jz      .L028aw_end
  959 
  960         movl    20(%esi),%ecx
  961         movl    20(%edi),%edx
  962         subl    %eax,%ecx
  963         movl    $0,%eax
  964         adcl    %eax,%eax
  965         subl    %edx,%ecx
  966         adcl    $0,%eax
  967         decl    %ebp
  968         movl    %ecx,20(%ebx)
  969         jz      .L028aw_end
  970 
  971         movl    24(%esi),%ecx
  972         movl    24(%edi),%edx
  973         subl    %eax,%ecx
  974         movl    $0,%eax
  975         adcl    %eax,%eax
  976         subl    %edx,%ecx
  977         adcl    $0,%eax
  978         movl    %ecx,24(%ebx)
  979 .L028aw_end:
  980         popl    %edi
  981         popl    %esi
  982         popl    %ebx
  983         popl    %ebp
  984         ret
  985 .size   bn_sub_words,.-.L_bn_sub_words_begin
  986 .globl  bn_sub_part_words
  987 .type   bn_sub_part_words,@function
  988 .align  16
  989 bn_sub_part_words:
  990 .L_bn_sub_part_words_begin:
  991         pushl   %ebp
  992         pushl   %ebx
  993         pushl   %esi
  994         pushl   %edi
  995 
  996         movl    20(%esp),%ebx
  997         movl    24(%esp),%esi
  998         movl    28(%esp),%edi
  999         movl    32(%esp),%ebp
 1000         xorl    %eax,%eax
 1001         andl    $4294967288,%ebp
 1002         jz      .L029aw_finish
 1003 .L030aw_loop:
 1004 
 1005         movl    (%esi),%ecx
 1006         movl    (%edi),%edx
 1007         subl    %eax,%ecx
 1008         movl    $0,%eax
 1009         adcl    %eax,%eax
 1010         subl    %edx,%ecx
 1011         adcl    $0,%eax
 1012         movl    %ecx,(%ebx)
 1013 
 1014         movl    4(%esi),%ecx
 1015         movl    4(%edi),%edx
 1016         subl    %eax,%ecx
 1017         movl    $0,%eax
 1018         adcl    %eax,%eax
 1019         subl    %edx,%ecx
 1020         adcl    $0,%eax
 1021         movl    %ecx,4(%ebx)
 1022 
 1023         movl    8(%esi),%ecx
 1024         movl    8(%edi),%edx
 1025         subl    %eax,%ecx
 1026         movl    $0,%eax
 1027         adcl    %eax,%eax
 1028         subl    %edx,%ecx
 1029         adcl    $0,%eax
 1030         movl    %ecx,8(%ebx)
 1031 
 1032         movl    12(%esi),%ecx
 1033         movl    12(%edi),%edx
 1034         subl    %eax,%ecx
 1035         movl    $0,%eax
 1036         adcl    %eax,%eax
 1037         subl    %edx,%ecx
 1038         adcl    $0,%eax
 1039         movl    %ecx,12(%ebx)
 1040 
 1041         movl    16(%esi),%ecx
 1042         movl    16(%edi),%edx
 1043         subl    %eax,%ecx
 1044         movl    $0,%eax
 1045         adcl    %eax,%eax
 1046         subl    %edx,%ecx
 1047         adcl    $0,%eax
 1048         movl    %ecx,16(%ebx)
 1049 
 1050         movl    20(%esi),%ecx
 1051         movl    20(%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,20(%ebx)
 1058 
 1059         movl    24(%esi),%ecx
 1060         movl    24(%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,24(%ebx)
 1067 
 1068         movl    28(%esi),%ecx
 1069         movl    28(%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,28(%ebx)
 1076 
 1077         addl    $32,%esi
 1078         addl    $32,%edi
 1079         addl    $32,%ebx
 1080         subl    $8,%ebp
 1081         jnz     .L030aw_loop
 1082 .L029aw_finish:
 1083         movl    32(%esp),%ebp
 1084         andl    $7,%ebp
 1085         jz      .L031aw_end
 1086 
 1087         movl    (%esi),%ecx
 1088         movl    (%edi),%edx
 1089         subl    %eax,%ecx
 1090         movl    $0,%eax
 1091         adcl    %eax,%eax
 1092         subl    %edx,%ecx
 1093         adcl    $0,%eax
 1094         movl    %ecx,(%ebx)
 1095         addl    $4,%esi
 1096         addl    $4,%edi
 1097         addl    $4,%ebx
 1098         decl    %ebp
 1099         jz      .L031aw_end
 1100 
 1101         movl    (%esi),%ecx
 1102         movl    (%edi),%edx
 1103         subl    %eax,%ecx
 1104         movl    $0,%eax
 1105         adcl    %eax,%eax
 1106         subl    %edx,%ecx
 1107         adcl    $0,%eax
 1108         movl    %ecx,(%ebx)
 1109         addl    $4,%esi
 1110         addl    $4,%edi
 1111         addl    $4,%ebx
 1112         decl    %ebp
 1113         jz      .L031aw_end
 1114 
 1115         movl    (%esi),%ecx
 1116         movl    (%edi),%edx
 1117         subl    %eax,%ecx
 1118         movl    $0,%eax
 1119         adcl    %eax,%eax
 1120         subl    %edx,%ecx
 1121         adcl    $0,%eax
 1122         movl    %ecx,(%ebx)
 1123         addl    $4,%esi
 1124         addl    $4,%edi
 1125         addl    $4,%ebx
 1126         decl    %ebp
 1127         jz      .L031aw_end
 1128 
 1129         movl    (%esi),%ecx
 1130         movl    (%edi),%edx
 1131         subl    %eax,%ecx
 1132         movl    $0,%eax
 1133         adcl    %eax,%eax
 1134         subl    %edx,%ecx
 1135         adcl    $0,%eax
 1136         movl    %ecx,(%ebx)
 1137         addl    $4,%esi
 1138         addl    $4,%edi
 1139         addl    $4,%ebx
 1140         decl    %ebp
 1141         jz      .L031aw_end
 1142 
 1143         movl    (%esi),%ecx
 1144         movl    (%edi),%edx
 1145         subl    %eax,%ecx
 1146         movl    $0,%eax
 1147         adcl    %eax,%eax
 1148         subl    %edx,%ecx
 1149         adcl    $0,%eax
 1150         movl    %ecx,(%ebx)
 1151         addl    $4,%esi
 1152         addl    $4,%edi
 1153         addl    $4,%ebx
 1154         decl    %ebp
 1155         jz      .L031aw_end
 1156 
 1157         movl    (%esi),%ecx
 1158         movl    (%edi),%edx
 1159         subl    %eax,%ecx
 1160         movl    $0,%eax
 1161         adcl    %eax,%eax
 1162         subl    %edx,%ecx
 1163         adcl    $0,%eax
 1164         movl    %ecx,(%ebx)
 1165         addl    $4,%esi
 1166         addl    $4,%edi
 1167         addl    $4,%ebx
 1168         decl    %ebp
 1169         jz      .L031aw_end
 1170 
 1171         movl    (%esi),%ecx
 1172         movl    (%edi),%edx
 1173         subl    %eax,%ecx
 1174         movl    $0,%eax
 1175         adcl    %eax,%eax
 1176         subl    %edx,%ecx
 1177         adcl    $0,%eax
 1178         movl    %ecx,(%ebx)
 1179         addl    $4,%esi
 1180         addl    $4,%edi
 1181         addl    $4,%ebx
 1182 .L031aw_end:
 1183         cmpl    $0,36(%esp)
 1184         je      .L032pw_end
 1185         movl    36(%esp),%ebp
 1186         cmpl    $0,%ebp
 1187         je      .L032pw_end
 1188         jge     .L033pw_pos
 1189 
 1190         movl    $0,%edx
 1191         subl    %ebp,%edx
 1192         movl    %edx,%ebp
 1193         andl    $4294967288,%ebp
 1194         jz      .L034pw_neg_finish
 1195 .L035pw_neg_loop:
 1196 
 1197         movl    $0,%ecx
 1198         movl    (%edi),%edx
 1199         subl    %eax,%ecx
 1200         movl    $0,%eax
 1201         adcl    %eax,%eax
 1202         subl    %edx,%ecx
 1203         adcl    $0,%eax
 1204         movl    %ecx,(%ebx)
 1205 
 1206         movl    $0,%ecx
 1207         movl    4(%edi),%edx
 1208         subl    %eax,%ecx
 1209         movl    $0,%eax
 1210         adcl    %eax,%eax
 1211         subl    %edx,%ecx
 1212         adcl    $0,%eax
 1213         movl    %ecx,4(%ebx)
 1214 
 1215         movl    $0,%ecx
 1216         movl    8(%edi),%edx
 1217         subl    %eax,%ecx
 1218         movl    $0,%eax
 1219         adcl    %eax,%eax
 1220         subl    %edx,%ecx
 1221         adcl    $0,%eax
 1222         movl    %ecx,8(%ebx)
 1223 
 1224         movl    $0,%ecx
 1225         movl    12(%edi),%edx
 1226         subl    %eax,%ecx
 1227         movl    $0,%eax
 1228         adcl    %eax,%eax
 1229         subl    %edx,%ecx
 1230         adcl    $0,%eax
 1231         movl    %ecx,12(%ebx)
 1232 
 1233         movl    $0,%ecx
 1234         movl    16(%edi),%edx
 1235         subl    %eax,%ecx
 1236         movl    $0,%eax
 1237         adcl    %eax,%eax
 1238         subl    %edx,%ecx
 1239         adcl    $0,%eax
 1240         movl    %ecx,16(%ebx)
 1241 
 1242         movl    $0,%ecx
 1243         movl    20(%edi),%edx
 1244         subl    %eax,%ecx
 1245         movl    $0,%eax
 1246         adcl    %eax,%eax
 1247         subl    %edx,%ecx
 1248         adcl    $0,%eax
 1249         movl    %ecx,20(%ebx)
 1250 
 1251         movl    $0,%ecx
 1252         movl    24(%edi),%edx
 1253         subl    %eax,%ecx
 1254         movl    $0,%eax
 1255         adcl    %eax,%eax
 1256         subl    %edx,%ecx
 1257         adcl    $0,%eax
 1258         movl    %ecx,24(%ebx)
 1259 
 1260         movl    $0,%ecx
 1261         movl    28(%edi),%edx
 1262         subl    %eax,%ecx
 1263         movl    $0,%eax
 1264         adcl    %eax,%eax
 1265         subl    %edx,%ecx
 1266         adcl    $0,%eax
 1267         movl    %ecx,28(%ebx)
 1268 
 1269         addl    $32,%edi
 1270         addl    $32,%ebx
 1271         subl    $8,%ebp
 1272         jnz     .L035pw_neg_loop
 1273 .L034pw_neg_finish:
 1274         movl    36(%esp),%edx
 1275         movl    $0,%ebp
 1276         subl    %edx,%ebp
 1277         andl    $7,%ebp
 1278         jz      .L032pw_end
 1279 
 1280         movl    $0,%ecx
 1281         movl    (%edi),%edx
 1282         subl    %eax,%ecx
 1283         movl    $0,%eax
 1284         adcl    %eax,%eax
 1285         subl    %edx,%ecx
 1286         adcl    $0,%eax
 1287         decl    %ebp
 1288         movl    %ecx,(%ebx)
 1289         jz      .L032pw_end
 1290 
 1291         movl    $0,%ecx
 1292         movl    4(%edi),%edx
 1293         subl    %eax,%ecx
 1294         movl    $0,%eax
 1295         adcl    %eax,%eax
 1296         subl    %edx,%ecx
 1297         adcl    $0,%eax
 1298         decl    %ebp
 1299         movl    %ecx,4(%ebx)
 1300         jz      .L032pw_end
 1301 
 1302         movl    $0,%ecx
 1303         movl    8(%edi),%edx
 1304         subl    %eax,%ecx
 1305         movl    $0,%eax
 1306         adcl    %eax,%eax
 1307         subl    %edx,%ecx
 1308         adcl    $0,%eax
 1309         decl    %ebp
 1310         movl    %ecx,8(%ebx)
 1311         jz      .L032pw_end
 1312 
 1313         movl    $0,%ecx
 1314         movl    12(%edi),%edx
 1315         subl    %eax,%ecx
 1316         movl    $0,%eax
 1317         adcl    %eax,%eax
 1318         subl    %edx,%ecx
 1319         adcl    $0,%eax
 1320         decl    %ebp
 1321         movl    %ecx,12(%ebx)
 1322         jz      .L032pw_end
 1323 
 1324         movl    $0,%ecx
 1325         movl    16(%edi),%edx
 1326         subl    %eax,%ecx
 1327         movl    $0,%eax
 1328         adcl    %eax,%eax
 1329         subl    %edx,%ecx
 1330         adcl    $0,%eax
 1331         decl    %ebp
 1332         movl    %ecx,16(%ebx)
 1333         jz      .L032pw_end
 1334 
 1335         movl    $0,%ecx
 1336         movl    20(%edi),%edx
 1337         subl    %eax,%ecx
 1338         movl    $0,%eax
 1339         adcl    %eax,%eax
 1340         subl    %edx,%ecx
 1341         adcl    $0,%eax
 1342         decl    %ebp
 1343         movl    %ecx,20(%ebx)
 1344         jz      .L032pw_end
 1345 
 1346         movl    $0,%ecx
 1347         movl    24(%edi),%edx
 1348         subl    %eax,%ecx
 1349         movl    $0,%eax
 1350         adcl    %eax,%eax
 1351         subl    %edx,%ecx
 1352         adcl    $0,%eax
 1353         movl    %ecx,24(%ebx)
 1354         jmp     .L032pw_end
 1355 .L033pw_pos:
 1356         andl    $4294967288,%ebp
 1357         jz      .L036pw_pos_finish
 1358 .L037pw_pos_loop:
 1359 
 1360         movl    (%esi),%ecx
 1361         subl    %eax,%ecx
 1362         movl    %ecx,(%ebx)
 1363         jnc     .L038pw_nc0
 1364 
 1365         movl    4(%esi),%ecx
 1366         subl    %eax,%ecx
 1367         movl    %ecx,4(%ebx)
 1368         jnc     .L039pw_nc1
 1369 
 1370         movl    8(%esi),%ecx
 1371         subl    %eax,%ecx
 1372         movl    %ecx,8(%ebx)
 1373         jnc     .L040pw_nc2
 1374 
 1375         movl    12(%esi),%ecx
 1376         subl    %eax,%ecx
 1377         movl    %ecx,12(%ebx)
 1378         jnc     .L041pw_nc3
 1379 
 1380         movl    16(%esi),%ecx
 1381         subl    %eax,%ecx
 1382         movl    %ecx,16(%ebx)
 1383         jnc     .L042pw_nc4
 1384 
 1385         movl    20(%esi),%ecx
 1386         subl    %eax,%ecx
 1387         movl    %ecx,20(%ebx)
 1388         jnc     .L043pw_nc5
 1389 
 1390         movl    24(%esi),%ecx
 1391         subl    %eax,%ecx
 1392         movl    %ecx,24(%ebx)
 1393         jnc     .L044pw_nc6
 1394 
 1395         movl    28(%esi),%ecx
 1396         subl    %eax,%ecx
 1397         movl    %ecx,28(%ebx)
 1398         jnc     .L045pw_nc7
 1399 
 1400         addl    $32,%esi
 1401         addl    $32,%ebx
 1402         subl    $8,%ebp
 1403         jnz     .L037pw_pos_loop
 1404 .L036pw_pos_finish:
 1405         movl    36(%esp),%ebp
 1406         andl    $7,%ebp
 1407         jz      .L032pw_end
 1408 
 1409         movl    (%esi),%ecx
 1410         subl    %eax,%ecx
 1411         movl    %ecx,(%ebx)
 1412         jnc     .L046pw_tail_nc0
 1413         decl    %ebp
 1414         jz      .L032pw_end
 1415 
 1416         movl    4(%esi),%ecx
 1417         subl    %eax,%ecx
 1418         movl    %ecx,4(%ebx)
 1419         jnc     .L047pw_tail_nc1
 1420         decl    %ebp
 1421         jz      .L032pw_end
 1422 
 1423         movl    8(%esi),%ecx
 1424         subl    %eax,%ecx
 1425         movl    %ecx,8(%ebx)
 1426         jnc     .L048pw_tail_nc2
 1427         decl    %ebp
 1428         jz      .L032pw_end
 1429 
 1430         movl    12(%esi),%ecx
 1431         subl    %eax,%ecx
 1432         movl    %ecx,12(%ebx)
 1433         jnc     .L049pw_tail_nc3
 1434         decl    %ebp
 1435         jz      .L032pw_end
 1436 
 1437         movl    16(%esi),%ecx
 1438         subl    %eax,%ecx
 1439         movl    %ecx,16(%ebx)
 1440         jnc     .L050pw_tail_nc4
 1441         decl    %ebp
 1442         jz      .L032pw_end
 1443 
 1444         movl    20(%esi),%ecx
 1445         subl    %eax,%ecx
 1446         movl    %ecx,20(%ebx)
 1447         jnc     .L051pw_tail_nc5
 1448         decl    %ebp
 1449         jz      .L032pw_end
 1450 
 1451         movl    24(%esi),%ecx
 1452         subl    %eax,%ecx
 1453         movl    %ecx,24(%ebx)
 1454         jnc     .L052pw_tail_nc6
 1455         movl    $1,%eax
 1456         jmp     .L032pw_end
 1457 .L053pw_nc_loop:
 1458         movl    (%esi),%ecx
 1459         movl    %ecx,(%ebx)
 1460 .L038pw_nc0:
 1461         movl    4(%esi),%ecx
 1462         movl    %ecx,4(%ebx)
 1463 .L039pw_nc1:
 1464         movl    8(%esi),%ecx
 1465         movl    %ecx,8(%ebx)
 1466 .L040pw_nc2:
 1467         movl    12(%esi),%ecx
 1468         movl    %ecx,12(%ebx)
 1469 .L041pw_nc3:
 1470         movl    16(%esi),%ecx
 1471         movl    %ecx,16(%ebx)
 1472 .L042pw_nc4:
 1473         movl    20(%esi),%ecx
 1474         movl    %ecx,20(%ebx)
 1475 .L043pw_nc5:
 1476         movl    24(%esi),%ecx
 1477         movl    %ecx,24(%ebx)
 1478 .L044pw_nc6:
 1479         movl    28(%esi),%ecx
 1480         movl    %ecx,28(%ebx)
 1481 .L045pw_nc7:
 1482 
 1483         addl    $32,%esi
 1484         addl    $32,%ebx
 1485         subl    $8,%ebp
 1486         jnz     .L053pw_nc_loop
 1487         movl    36(%esp),%ebp
 1488         andl    $7,%ebp
 1489         jz      .L054pw_nc_end
 1490         movl    (%esi),%ecx
 1491         movl    %ecx,(%ebx)
 1492 .L046pw_tail_nc0:
 1493         decl    %ebp
 1494         jz      .L054pw_nc_end
 1495         movl    4(%esi),%ecx
 1496         movl    %ecx,4(%ebx)
 1497 .L047pw_tail_nc1:
 1498         decl    %ebp
 1499         jz      .L054pw_nc_end
 1500         movl    8(%esi),%ecx
 1501         movl    %ecx,8(%ebx)
 1502 .L048pw_tail_nc2:
 1503         decl    %ebp
 1504         jz      .L054pw_nc_end
 1505         movl    12(%esi),%ecx
 1506         movl    %ecx,12(%ebx)
 1507 .L049pw_tail_nc3:
 1508         decl    %ebp
 1509         jz      .L054pw_nc_end
 1510         movl    16(%esi),%ecx
 1511         movl    %ecx,16(%ebx)
 1512 .L050pw_tail_nc4:
 1513         decl    %ebp
 1514         jz      .L054pw_nc_end
 1515         movl    20(%esi),%ecx
 1516         movl    %ecx,20(%ebx)
 1517 .L051pw_tail_nc5:
 1518         decl    %ebp
 1519         jz      .L054pw_nc_end
 1520         movl    24(%esi),%ecx
 1521         movl    %ecx,24(%ebx)
 1522 .L052pw_tail_nc6:
 1523 .L054pw_nc_end:
 1524         movl    $0,%eax
 1525 .L032pw_end:
 1526         popl    %edi
 1527         popl    %esi
 1528         popl    %ebx
 1529         popl    %ebp
 1530         ret
 1531 .size   bn_sub_part_words,.-.L_bn_sub_part_words_begin
 1532 .comm   OPENSSL_ia32cap_P,16,4
 1533 #else
 1534 .text
 1535 .globl  bn_mul_add_words
 1536 .type   bn_mul_add_words,@function
 1537 .align  16
 1538 bn_mul_add_words:
 1539 .L_bn_mul_add_words_begin:
 1540         leal    OPENSSL_ia32cap_P,%eax
 1541         btl     $26,(%eax)
 1542         jnc     .L000maw_non_sse2
 1543         movl    4(%esp),%eax
 1544         movl    8(%esp),%edx
 1545         movl    12(%esp),%ecx
 1546         movd    16(%esp),%mm0
 1547         pxor    %mm1,%mm1
 1548         jmp     .L001maw_sse2_entry
 1549 .align  16
 1550 .L002maw_sse2_unrolled:
 1551         movd    (%eax),%mm3
 1552         paddq   %mm3,%mm1
 1553         movd    (%edx),%mm2
 1554         pmuludq %mm0,%mm2
 1555         movd    4(%edx),%mm4
 1556         pmuludq %mm0,%mm4
 1557         movd    8(%edx),%mm6
 1558         pmuludq %mm0,%mm6
 1559         movd    12(%edx),%mm7
 1560         pmuludq %mm0,%mm7
 1561         paddq   %mm2,%mm1
 1562         movd    4(%eax),%mm3
 1563         paddq   %mm4,%mm3
 1564         movd    8(%eax),%mm5
 1565         paddq   %mm6,%mm5
 1566         movd    12(%eax),%mm4
 1567         paddq   %mm4,%mm7
 1568         movd    %mm1,(%eax)
 1569         movd    16(%edx),%mm2
 1570         pmuludq %mm0,%mm2
 1571         psrlq   $32,%mm1
 1572         movd    20(%edx),%mm4
 1573         pmuludq %mm0,%mm4
 1574         paddq   %mm3,%mm1
 1575         movd    24(%edx),%mm6
 1576         pmuludq %mm0,%mm6
 1577         movd    %mm1,4(%eax)
 1578         psrlq   $32,%mm1
 1579         movd    28(%edx),%mm3
 1580         addl    $32,%edx
 1581         pmuludq %mm0,%mm3
 1582         paddq   %mm5,%mm1
 1583         movd    16(%eax),%mm5
 1584         paddq   %mm5,%mm2
 1585         movd    %mm1,8(%eax)
 1586         psrlq   $32,%mm1
 1587         paddq   %mm7,%mm1
 1588         movd    20(%eax),%mm5
 1589         paddq   %mm5,%mm4
 1590         movd    %mm1,12(%eax)
 1591         psrlq   $32,%mm1
 1592         paddq   %mm2,%mm1
 1593         movd    24(%eax),%mm5
 1594         paddq   %mm5,%mm6
 1595         movd    %mm1,16(%eax)
 1596         psrlq   $32,%mm1
 1597         paddq   %mm4,%mm1
 1598         movd    28(%eax),%mm5
 1599         paddq   %mm5,%mm3
 1600         movd    %mm1,20(%eax)
 1601         psrlq   $32,%mm1
 1602         paddq   %mm6,%mm1
 1603         movd    %mm1,24(%eax)
 1604         psrlq   $32,%mm1
 1605         paddq   %mm3,%mm1
 1606         movd    %mm1,28(%eax)
 1607         leal    32(%eax),%eax
 1608         psrlq   $32,%mm1
 1609         subl    $8,%ecx
 1610         jz      .L003maw_sse2_exit
 1611 .L001maw_sse2_entry:
 1612         testl   $4294967288,%ecx
 1613         jnz     .L002maw_sse2_unrolled
 1614 .align  4
 1615 .L004maw_sse2_loop:
 1616         movd    (%edx),%mm2
 1617         movd    (%eax),%mm3
 1618         pmuludq %mm0,%mm2
 1619         leal    4(%edx),%edx
 1620         paddq   %mm3,%mm1
 1621         paddq   %mm2,%mm1
 1622         movd    %mm1,(%eax)
 1623         subl    $1,%ecx
 1624         psrlq   $32,%mm1
 1625         leal    4(%eax),%eax
 1626         jnz     .L004maw_sse2_loop
 1627 .L003maw_sse2_exit:
 1628         movd    %mm1,%eax
 1629         emms
 1630         ret
 1631 .align  16
 1632 .L000maw_non_sse2:
 1633         pushl   %ebp
 1634         pushl   %ebx
 1635         pushl   %esi
 1636         pushl   %edi
 1637 
 1638         xorl    %esi,%esi
 1639         movl    20(%esp),%edi
 1640         movl    28(%esp),%ecx
 1641         movl    24(%esp),%ebx
 1642         andl    $4294967288,%ecx
 1643         movl    32(%esp),%ebp
 1644         pushl   %ecx
 1645         jz      .L005maw_finish
 1646 .align  16
 1647 .L006maw_loop:
 1648 
 1649         movl    (%ebx),%eax
 1650         mull    %ebp
 1651         addl    %esi,%eax
 1652         adcl    $0,%edx
 1653         addl    (%edi),%eax
 1654         adcl    $0,%edx
 1655         movl    %eax,(%edi)
 1656         movl    %edx,%esi
 1657 
 1658         movl    4(%ebx),%eax
 1659         mull    %ebp
 1660         addl    %esi,%eax
 1661         adcl    $0,%edx
 1662         addl    4(%edi),%eax
 1663         adcl    $0,%edx
 1664         movl    %eax,4(%edi)
 1665         movl    %edx,%esi
 1666 
 1667         movl    8(%ebx),%eax
 1668         mull    %ebp
 1669         addl    %esi,%eax
 1670         adcl    $0,%edx
 1671         addl    8(%edi),%eax
 1672         adcl    $0,%edx
 1673         movl    %eax,8(%edi)
 1674         movl    %edx,%esi
 1675 
 1676         movl    12(%ebx),%eax
 1677         mull    %ebp
 1678         addl    %esi,%eax
 1679         adcl    $0,%edx
 1680         addl    12(%edi),%eax
 1681         adcl    $0,%edx
 1682         movl    %eax,12(%edi)
 1683         movl    %edx,%esi
 1684 
 1685         movl    16(%ebx),%eax
 1686         mull    %ebp
 1687         addl    %esi,%eax
 1688         adcl    $0,%edx
 1689         addl    16(%edi),%eax
 1690         adcl    $0,%edx
 1691         movl    %eax,16(%edi)
 1692         movl    %edx,%esi
 1693 
 1694         movl    20(%ebx),%eax
 1695         mull    %ebp
 1696         addl    %esi,%eax
 1697         adcl    $0,%edx
 1698         addl    20(%edi),%eax
 1699         adcl    $0,%edx
 1700         movl    %eax,20(%edi)
 1701         movl    %edx,%esi
 1702 
 1703         movl    24(%ebx),%eax
 1704         mull    %ebp
 1705         addl    %esi,%eax
 1706         adcl    $0,%edx
 1707         addl    24(%edi),%eax
 1708         adcl    $0,%edx
 1709         movl    %eax,24(%edi)
 1710         movl    %edx,%esi
 1711 
 1712         movl    28(%ebx),%eax
 1713         mull    %ebp
 1714         addl    %esi,%eax
 1715         adcl    $0,%edx
 1716         addl    28(%edi),%eax
 1717         adcl    $0,%edx
 1718         movl    %eax,28(%edi)
 1719         movl    %edx,%esi
 1720 
 1721         subl    $8,%ecx
 1722         leal    32(%ebx),%ebx
 1723         leal    32(%edi),%edi
 1724         jnz     .L006maw_loop
 1725 .L005maw_finish:
 1726         movl    32(%esp),%ecx
 1727         andl    $7,%ecx
 1728         jnz     .L007maw_finish2
 1729         jmp     .L008maw_end
 1730 .L007maw_finish2:
 1731 
 1732         movl    (%ebx),%eax
 1733         mull    %ebp
 1734         addl    %esi,%eax
 1735         adcl    $0,%edx
 1736         addl    (%edi),%eax
 1737         adcl    $0,%edx
 1738         decl    %ecx
 1739         movl    %eax,(%edi)
 1740         movl    %edx,%esi
 1741         jz      .L008maw_end
 1742 
 1743         movl    4(%ebx),%eax
 1744         mull    %ebp
 1745         addl    %esi,%eax
 1746         adcl    $0,%edx
 1747         addl    4(%edi),%eax
 1748         adcl    $0,%edx
 1749         decl    %ecx
 1750         movl    %eax,4(%edi)
 1751         movl    %edx,%esi
 1752         jz      .L008maw_end
 1753 
 1754         movl    8(%ebx),%eax
 1755         mull    %ebp
 1756         addl    %esi,%eax
 1757         adcl    $0,%edx
 1758         addl    8(%edi),%eax
 1759         adcl    $0,%edx
 1760         decl    %ecx
 1761         movl    %eax,8(%edi)
 1762         movl    %edx,%esi
 1763         jz      .L008maw_end
 1764 
 1765         movl    12(%ebx),%eax
 1766         mull    %ebp
 1767         addl    %esi,%eax
 1768         adcl    $0,%edx
 1769         addl    12(%edi),%eax
 1770         adcl    $0,%edx
 1771         decl    %ecx
 1772         movl    %eax,12(%edi)
 1773         movl    %edx,%esi
 1774         jz      .L008maw_end
 1775 
 1776         movl    16(%ebx),%eax
 1777         mull    %ebp
 1778         addl    %esi,%eax
 1779         adcl    $0,%edx
 1780         addl    16(%edi),%eax
 1781         adcl    $0,%edx
 1782         decl    %ecx
 1783         movl    %eax,16(%edi)
 1784         movl    %edx,%esi
 1785         jz      .L008maw_end
 1786 
 1787         movl    20(%ebx),%eax
 1788         mull    %ebp
 1789         addl    %esi,%eax
 1790         adcl    $0,%edx
 1791         addl    20(%edi),%eax
 1792         adcl    $0,%edx
 1793         decl    %ecx
 1794         movl    %eax,20(%edi)
 1795         movl    %edx,%esi
 1796         jz      .L008maw_end
 1797 
 1798         movl    24(%ebx),%eax
 1799         mull    %ebp
 1800         addl    %esi,%eax
 1801         adcl    $0,%edx
 1802         addl    24(%edi),%eax
 1803         adcl    $0,%edx
 1804         movl    %eax,24(%edi)
 1805         movl    %edx,%esi
 1806 .L008maw_end:
 1807         movl    %esi,%eax
 1808         popl    %ecx
 1809         popl    %edi
 1810         popl    %esi
 1811         popl    %ebx
 1812         popl    %ebp
 1813         ret
 1814 .size   bn_mul_add_words,.-.L_bn_mul_add_words_begin
 1815 .globl  bn_mul_words
 1816 .type   bn_mul_words,@function
 1817 .align  16
 1818 bn_mul_words:
 1819 .L_bn_mul_words_begin:
 1820         leal    OPENSSL_ia32cap_P,%eax
 1821         btl     $26,(%eax)
 1822         jnc     .L009mw_non_sse2
 1823         movl    4(%esp),%eax
 1824         movl    8(%esp),%edx
 1825         movl    12(%esp),%ecx
 1826         movd    16(%esp),%mm0
 1827         pxor    %mm1,%mm1
 1828 .align  16
 1829 .L010mw_sse2_loop:
 1830         movd    (%edx),%mm2
 1831         pmuludq %mm0,%mm2
 1832         leal    4(%edx),%edx
 1833         paddq   %mm2,%mm1
 1834         movd    %mm1,(%eax)
 1835         subl    $1,%ecx
 1836         psrlq   $32,%mm1
 1837         leal    4(%eax),%eax
 1838         jnz     .L010mw_sse2_loop
 1839         movd    %mm1,%eax
 1840         emms
 1841         ret
 1842 .align  16
 1843 .L009mw_non_sse2:
 1844         pushl   %ebp
 1845         pushl   %ebx
 1846         pushl   %esi
 1847         pushl   %edi
 1848 
 1849         xorl    %esi,%esi
 1850         movl    20(%esp),%edi
 1851         movl    24(%esp),%ebx
 1852         movl    28(%esp),%ebp
 1853         movl    32(%esp),%ecx
 1854         andl    $4294967288,%ebp
 1855         jz      .L011mw_finish
 1856 .L012mw_loop:
 1857 
 1858         movl    (%ebx),%eax
 1859         mull    %ecx
 1860         addl    %esi,%eax
 1861         adcl    $0,%edx
 1862         movl    %eax,(%edi)
 1863         movl    %edx,%esi
 1864 
 1865         movl    4(%ebx),%eax
 1866         mull    %ecx
 1867         addl    %esi,%eax
 1868         adcl    $0,%edx
 1869         movl    %eax,4(%edi)
 1870         movl    %edx,%esi
 1871 
 1872         movl    8(%ebx),%eax
 1873         mull    %ecx
 1874         addl    %esi,%eax
 1875         adcl    $0,%edx
 1876         movl    %eax,8(%edi)
 1877         movl    %edx,%esi
 1878 
 1879         movl    12(%ebx),%eax
 1880         mull    %ecx
 1881         addl    %esi,%eax
 1882         adcl    $0,%edx
 1883         movl    %eax,12(%edi)
 1884         movl    %edx,%esi
 1885 
 1886         movl    16(%ebx),%eax
 1887         mull    %ecx
 1888         addl    %esi,%eax
 1889         adcl    $0,%edx
 1890         movl    %eax,16(%edi)
 1891         movl    %edx,%esi
 1892 
 1893         movl    20(%ebx),%eax
 1894         mull    %ecx
 1895         addl    %esi,%eax
 1896         adcl    $0,%edx
 1897         movl    %eax,20(%edi)
 1898         movl    %edx,%esi
 1899 
 1900         movl    24(%ebx),%eax
 1901         mull    %ecx
 1902         addl    %esi,%eax
 1903         adcl    $0,%edx
 1904         movl    %eax,24(%edi)
 1905         movl    %edx,%esi
 1906 
 1907         movl    28(%ebx),%eax
 1908         mull    %ecx
 1909         addl    %esi,%eax
 1910         adcl    $0,%edx
 1911         movl    %eax,28(%edi)
 1912         movl    %edx,%esi
 1913 
 1914         addl    $32,%ebx
 1915         addl    $32,%edi
 1916         subl    $8,%ebp
 1917         jz      .L011mw_finish
 1918         jmp     .L012mw_loop
 1919 .L011mw_finish:
 1920         movl    28(%esp),%ebp
 1921         andl    $7,%ebp
 1922         jnz     .L013mw_finish2
 1923         jmp     .L014mw_end
 1924 .L013mw_finish2:
 1925 
 1926         movl    (%ebx),%eax
 1927         mull    %ecx
 1928         addl    %esi,%eax
 1929         adcl    $0,%edx
 1930         movl    %eax,(%edi)
 1931         movl    %edx,%esi
 1932         decl    %ebp
 1933         jz      .L014mw_end
 1934 
 1935         movl    4(%ebx),%eax
 1936         mull    %ecx
 1937         addl    %esi,%eax
 1938         adcl    $0,%edx
 1939         movl    %eax,4(%edi)
 1940         movl    %edx,%esi
 1941         decl    %ebp
 1942         jz      .L014mw_end
 1943 
 1944         movl    8(%ebx),%eax
 1945         mull    %ecx
 1946         addl    %esi,%eax
 1947         adcl    $0,%edx
 1948         movl    %eax,8(%edi)
 1949         movl    %edx,%esi
 1950         decl    %ebp
 1951         jz      .L014mw_end
 1952 
 1953         movl    12(%ebx),%eax
 1954         mull    %ecx
 1955         addl    %esi,%eax
 1956         adcl    $0,%edx
 1957         movl    %eax,12(%edi)
 1958         movl    %edx,%esi
 1959         decl    %ebp
 1960         jz      .L014mw_end
 1961 
 1962         movl    16(%ebx),%eax
 1963         mull    %ecx
 1964         addl    %esi,%eax
 1965         adcl    $0,%edx
 1966         movl    %eax,16(%edi)
 1967         movl    %edx,%esi
 1968         decl    %ebp
 1969         jz      .L014mw_end
 1970 
 1971         movl    20(%ebx),%eax
 1972         mull    %ecx
 1973         addl    %esi,%eax
 1974         adcl    $0,%edx
 1975         movl    %eax,20(%edi)
 1976         movl    %edx,%esi
 1977         decl    %ebp
 1978         jz      .L014mw_end
 1979 
 1980         movl    24(%ebx),%eax
 1981         mull    %ecx
 1982         addl    %esi,%eax
 1983         adcl    $0,%edx
 1984         movl    %eax,24(%edi)
 1985         movl    %edx,%esi
 1986 .L014mw_end:
 1987         movl    %esi,%eax
 1988         popl    %edi
 1989         popl    %esi
 1990         popl    %ebx
 1991         popl    %ebp
 1992         ret
 1993 .size   bn_mul_words,.-.L_bn_mul_words_begin
 1994 .globl  bn_sqr_words
 1995 .type   bn_sqr_words,@function
 1996 .align  16
 1997 bn_sqr_words:
 1998 .L_bn_sqr_words_begin:
 1999         leal    OPENSSL_ia32cap_P,%eax
 2000         btl     $26,(%eax)
 2001         jnc     .L015sqr_non_sse2
 2002         movl    4(%esp),%eax
 2003         movl    8(%esp),%edx
 2004         movl    12(%esp),%ecx
 2005 .align  16
 2006 .L016sqr_sse2_loop:
 2007         movd    (%edx),%mm0
 2008         pmuludq %mm0,%mm0
 2009         leal    4(%edx),%edx
 2010         movq    %mm0,(%eax)
 2011         subl    $1,%ecx
 2012         leal    8(%eax),%eax
 2013         jnz     .L016sqr_sse2_loop
 2014         emms
 2015         ret
 2016 .align  16
 2017 .L015sqr_non_sse2:
 2018         pushl   %ebp
 2019         pushl   %ebx
 2020         pushl   %esi
 2021         pushl   %edi
 2022 
 2023         movl    20(%esp),%esi
 2024         movl    24(%esp),%edi
 2025         movl    28(%esp),%ebx
 2026         andl    $4294967288,%ebx
 2027         jz      .L017sw_finish
 2028 .L018sw_loop:
 2029 
 2030         movl    (%edi),%eax
 2031         mull    %eax
 2032         movl    %eax,(%esi)
 2033         movl    %edx,4(%esi)
 2034 
 2035         movl    4(%edi),%eax
 2036         mull    %eax
 2037         movl    %eax,8(%esi)
 2038         movl    %edx,12(%esi)
 2039 
 2040         movl    8(%edi),%eax
 2041         mull    %eax
 2042         movl    %eax,16(%esi)
 2043         movl    %edx,20(%esi)
 2044 
 2045         movl    12(%edi),%eax
 2046         mull    %eax
 2047         movl    %eax,24(%esi)
 2048         movl    %edx,28(%esi)
 2049 
 2050         movl    16(%edi),%eax
 2051         mull    %eax
 2052         movl    %eax,32(%esi)
 2053         movl    %edx,36(%esi)
 2054 
 2055         movl    20(%edi),%eax
 2056         mull    %eax
 2057         movl    %eax,40(%esi)
 2058         movl    %edx,44(%esi)
 2059 
 2060         movl    24(%edi),%eax
 2061         mull    %eax
 2062         movl    %eax,48(%esi)
 2063         movl    %edx,52(%esi)
 2064 
 2065         movl    28(%edi),%eax
 2066         mull    %eax
 2067         movl    %eax,56(%esi)
 2068         movl    %edx,60(%esi)
 2069 
 2070         addl    $32,%edi
 2071         addl    $64,%esi
 2072         subl    $8,%ebx
 2073         jnz     .L018sw_loop
 2074 .L017sw_finish:
 2075         movl    28(%esp),%ebx
 2076         andl    $7,%ebx
 2077         jz      .L019sw_end
 2078 
 2079         movl    (%edi),%eax
 2080         mull    %eax
 2081         movl    %eax,(%esi)
 2082         decl    %ebx
 2083         movl    %edx,4(%esi)
 2084         jz      .L019sw_end
 2085 
 2086         movl    4(%edi),%eax
 2087         mull    %eax
 2088         movl    %eax,8(%esi)
 2089         decl    %ebx
 2090         movl    %edx,12(%esi)
 2091         jz      .L019sw_end
 2092 
 2093         movl    8(%edi),%eax
 2094         mull    %eax
 2095         movl    %eax,16(%esi)
 2096         decl    %ebx
 2097         movl    %edx,20(%esi)
 2098         jz      .L019sw_end
 2099 
 2100         movl    12(%edi),%eax
 2101         mull    %eax
 2102         movl    %eax,24(%esi)
 2103         decl    %ebx
 2104         movl    %edx,28(%esi)
 2105         jz      .L019sw_end
 2106 
 2107         movl    16(%edi),%eax
 2108         mull    %eax
 2109         movl    %eax,32(%esi)
 2110         decl    %ebx
 2111         movl    %edx,36(%esi)
 2112         jz      .L019sw_end
 2113 
 2114         movl    20(%edi),%eax
 2115         mull    %eax
 2116         movl    %eax,40(%esi)
 2117         decl    %ebx
 2118         movl    %edx,44(%esi)
 2119         jz      .L019sw_end
 2120 
 2121         movl    24(%edi),%eax
 2122         mull    %eax
 2123         movl    %eax,48(%esi)
 2124         movl    %edx,52(%esi)
 2125 .L019sw_end:
 2126         popl    %edi
 2127         popl    %esi
 2128         popl    %ebx
 2129         popl    %ebp
 2130         ret
 2131 .size   bn_sqr_words,.-.L_bn_sqr_words_begin
 2132 .globl  bn_div_words
 2133 .type   bn_div_words,@function
 2134 .align  16
 2135 bn_div_words:
 2136 .L_bn_div_words_begin:
 2137         movl    4(%esp),%edx
 2138         movl    8(%esp),%eax
 2139         movl    12(%esp),%ecx
 2140         divl    %ecx
 2141         ret
 2142 .size   bn_div_words,.-.L_bn_div_words_begin
 2143 .globl  bn_add_words
 2144 .type   bn_add_words,@function
 2145 .align  16
 2146 bn_add_words:
 2147 .L_bn_add_words_begin:
 2148         pushl   %ebp
 2149         pushl   %ebx
 2150         pushl   %esi
 2151         pushl   %edi
 2152 
 2153         movl    20(%esp),%ebx
 2154         movl    24(%esp),%esi
 2155         movl    28(%esp),%edi
 2156         movl    32(%esp),%ebp
 2157         xorl    %eax,%eax
 2158         andl    $4294967288,%ebp
 2159         jz      .L020aw_finish
 2160 .L021aw_loop:
 2161 
 2162         movl    (%esi),%ecx
 2163         movl    (%edi),%edx
 2164         addl    %eax,%ecx
 2165         movl    $0,%eax
 2166         adcl    %eax,%eax
 2167         addl    %edx,%ecx
 2168         adcl    $0,%eax
 2169         movl    %ecx,(%ebx)
 2170 
 2171         movl    4(%esi),%ecx
 2172         movl    4(%edi),%edx
 2173         addl    %eax,%ecx
 2174         movl    $0,%eax
 2175         adcl    %eax,%eax
 2176         addl    %edx,%ecx
 2177         adcl    $0,%eax
 2178         movl    %ecx,4(%ebx)
 2179 
 2180         movl    8(%esi),%ecx
 2181         movl    8(%edi),%edx
 2182         addl    %eax,%ecx
 2183         movl    $0,%eax
 2184         adcl    %eax,%eax
 2185         addl    %edx,%ecx
 2186         adcl    $0,%eax
 2187         movl    %ecx,8(%ebx)
 2188 
 2189         movl    12(%esi),%ecx
 2190         movl    12(%edi),%edx
 2191         addl    %eax,%ecx
 2192         movl    $0,%eax
 2193         adcl    %eax,%eax
 2194         addl    %edx,%ecx
 2195         adcl    $0,%eax
 2196         movl    %ecx,12(%ebx)
 2197 
 2198         movl    16(%esi),%ecx
 2199         movl    16(%edi),%edx
 2200         addl    %eax,%ecx
 2201         movl    $0,%eax
 2202         adcl    %eax,%eax
 2203         addl    %edx,%ecx
 2204         adcl    $0,%eax
 2205         movl    %ecx,16(%ebx)
 2206 
 2207         movl    20(%esi),%ecx
 2208         movl    20(%edi),%edx
 2209         addl    %eax,%ecx
 2210         movl    $0,%eax
 2211         adcl    %eax,%eax
 2212         addl    %edx,%ecx
 2213         adcl    $0,%eax
 2214         movl    %ecx,20(%ebx)
 2215 
 2216         movl    24(%esi),%ecx
 2217         movl    24(%edi),%edx
 2218         addl    %eax,%ecx
 2219         movl    $0,%eax
 2220         adcl    %eax,%eax
 2221         addl    %edx,%ecx
 2222         adcl    $0,%eax
 2223         movl    %ecx,24(%ebx)
 2224 
 2225         movl    28(%esi),%ecx
 2226         movl    28(%edi),%edx
 2227         addl    %eax,%ecx
 2228         movl    $0,%eax
 2229         adcl    %eax,%eax
 2230         addl    %edx,%ecx
 2231         adcl    $0,%eax
 2232         movl    %ecx,28(%ebx)
 2233 
 2234         addl    $32,%esi
 2235         addl    $32,%edi
 2236         addl    $32,%ebx
 2237         subl    $8,%ebp
 2238         jnz     .L021aw_loop
 2239 .L020aw_finish:
 2240         movl    32(%esp),%ebp
 2241         andl    $7,%ebp
 2242         jz      .L022aw_end
 2243 
 2244         movl    (%esi),%ecx
 2245         movl    (%edi),%edx
 2246         addl    %eax,%ecx
 2247         movl    $0,%eax
 2248         adcl    %eax,%eax
 2249         addl    %edx,%ecx
 2250         adcl    $0,%eax
 2251         decl    %ebp
 2252         movl    %ecx,(%ebx)
 2253         jz      .L022aw_end
 2254 
 2255         movl    4(%esi),%ecx
 2256         movl    4(%edi),%edx
 2257         addl    %eax,%ecx
 2258         movl    $0,%eax
 2259         adcl    %eax,%eax
 2260         addl    %edx,%ecx
 2261         adcl    $0,%eax
 2262         decl    %ebp
 2263         movl    %ecx,4(%ebx)
 2264         jz      .L022aw_end
 2265 
 2266         movl    8(%esi),%ecx
 2267         movl    8(%edi),%edx
 2268         addl    %eax,%ecx
 2269         movl    $0,%eax
 2270         adcl    %eax,%eax
 2271         addl    %edx,%ecx
 2272         adcl    $0,%eax
 2273         decl    %ebp
 2274         movl    %ecx,8(%ebx)
 2275         jz      .L022aw_end
 2276 
 2277         movl    12(%esi),%ecx
 2278         movl    12(%edi),%edx
 2279         addl    %eax,%ecx
 2280         movl    $0,%eax
 2281         adcl    %eax,%eax
 2282         addl    %edx,%ecx
 2283         adcl    $0,%eax
 2284         decl    %ebp
 2285         movl    %ecx,12(%ebx)
 2286         jz      .L022aw_end
 2287 
 2288         movl    16(%esi),%ecx
 2289         movl    16(%edi),%edx
 2290         addl    %eax,%ecx
 2291         movl    $0,%eax
 2292         adcl    %eax,%eax
 2293         addl    %edx,%ecx
 2294         adcl    $0,%eax
 2295         decl    %ebp
 2296         movl    %ecx,16(%ebx)
 2297         jz      .L022aw_end
 2298 
 2299         movl    20(%esi),%ecx
 2300         movl    20(%edi),%edx
 2301         addl    %eax,%ecx
 2302         movl    $0,%eax
 2303         adcl    %eax,%eax
 2304         addl    %edx,%ecx
 2305         adcl    $0,%eax
 2306         decl    %ebp
 2307         movl    %ecx,20(%ebx)
 2308         jz      .L022aw_end
 2309 
 2310         movl    24(%esi),%ecx
 2311         movl    24(%edi),%edx
 2312         addl    %eax,%ecx
 2313         movl    $0,%eax
 2314         adcl    %eax,%eax
 2315         addl    %edx,%ecx
 2316         adcl    $0,%eax
 2317         movl    %ecx,24(%ebx)
 2318 .L022aw_end:
 2319         popl    %edi
 2320         popl    %esi
 2321         popl    %ebx
 2322         popl    %ebp
 2323         ret
 2324 .size   bn_add_words,.-.L_bn_add_words_begin
 2325 .globl  bn_sub_words
 2326 .type   bn_sub_words,@function
 2327 .align  16
 2328 bn_sub_words:
 2329 .L_bn_sub_words_begin:
 2330         pushl   %ebp
 2331         pushl   %ebx
 2332         pushl   %esi
 2333         pushl   %edi
 2334 
 2335         movl    20(%esp),%ebx
 2336         movl    24(%esp),%esi
 2337         movl    28(%esp),%edi
 2338         movl    32(%esp),%ebp
 2339         xorl    %eax,%eax
 2340         andl    $4294967288,%ebp
 2341         jz      .L023aw_finish
 2342 .L024aw_loop:
 2343 
 2344         movl    (%esi),%ecx
 2345         movl    (%edi),%edx
 2346         subl    %eax,%ecx
 2347         movl    $0,%eax
 2348         adcl    %eax,%eax
 2349         subl    %edx,%ecx
 2350         adcl    $0,%eax
 2351         movl    %ecx,(%ebx)
 2352 
 2353         movl    4(%esi),%ecx
 2354         movl    4(%edi),%edx
 2355         subl    %eax,%ecx
 2356         movl    $0,%eax
 2357         adcl    %eax,%eax
 2358         subl    %edx,%ecx
 2359         adcl    $0,%eax
 2360         movl    %ecx,4(%ebx)
 2361 
 2362         movl    8(%esi),%ecx
 2363         movl    8(%edi),%edx
 2364         subl    %eax,%ecx
 2365         movl    $0,%eax
 2366         adcl    %eax,%eax
 2367         subl    %edx,%ecx
 2368         adcl    $0,%eax
 2369         movl    %ecx,8(%ebx)
 2370 
 2371         movl    12(%esi),%ecx
 2372         movl    12(%edi),%edx
 2373         subl    %eax,%ecx
 2374         movl    $0,%eax
 2375         adcl    %eax,%eax
 2376         subl    %edx,%ecx
 2377         adcl    $0,%eax
 2378         movl    %ecx,12(%ebx)
 2379 
 2380         movl    16(%esi),%ecx
 2381         movl    16(%edi),%edx
 2382         subl    %eax,%ecx
 2383         movl    $0,%eax
 2384         adcl    %eax,%eax
 2385         subl    %edx,%ecx
 2386         adcl    $0,%eax
 2387         movl    %ecx,16(%ebx)
 2388 
 2389         movl    20(%esi),%ecx
 2390         movl    20(%edi),%edx
 2391         subl    %eax,%ecx
 2392         movl    $0,%eax
 2393         adcl    %eax,%eax
 2394         subl    %edx,%ecx
 2395         adcl    $0,%eax
 2396         movl    %ecx,20(%ebx)
 2397 
 2398         movl    24(%esi),%ecx
 2399         movl    24(%edi),%edx
 2400         subl    %eax,%ecx
 2401         movl    $0,%eax
 2402         adcl    %eax,%eax
 2403         subl    %edx,%ecx
 2404         adcl    $0,%eax
 2405         movl    %ecx,24(%ebx)
 2406 
 2407         movl    28(%esi),%ecx
 2408         movl    28(%edi),%edx
 2409         subl    %eax,%ecx
 2410         movl    $0,%eax
 2411         adcl    %eax,%eax
 2412         subl    %edx,%ecx
 2413         adcl    $0,%eax
 2414         movl    %ecx,28(%ebx)
 2415 
 2416         addl    $32,%esi
 2417         addl    $32,%edi
 2418         addl    $32,%ebx
 2419         subl    $8,%ebp
 2420         jnz     .L024aw_loop
 2421 .L023aw_finish:
 2422         movl    32(%esp),%ebp
 2423         andl    $7,%ebp
 2424         jz      .L025aw_end
 2425 
 2426         movl    (%esi),%ecx
 2427         movl    (%edi),%edx
 2428         subl    %eax,%ecx
 2429         movl    $0,%eax
 2430         adcl    %eax,%eax
 2431         subl    %edx,%ecx
 2432         adcl    $0,%eax
 2433         decl    %ebp
 2434         movl    %ecx,(%ebx)
 2435         jz      .L025aw_end
 2436 
 2437         movl    4(%esi),%ecx
 2438         movl    4(%edi),%edx
 2439         subl    %eax,%ecx
 2440         movl    $0,%eax
 2441         adcl    %eax,%eax
 2442         subl    %edx,%ecx
 2443         adcl    $0,%eax
 2444         decl    %ebp
 2445         movl    %ecx,4(%ebx)
 2446         jz      .L025aw_end
 2447 
 2448         movl    8(%esi),%ecx
 2449         movl    8(%edi),%edx
 2450         subl    %eax,%ecx
 2451         movl    $0,%eax
 2452         adcl    %eax,%eax
 2453         subl    %edx,%ecx
 2454         adcl    $0,%eax
 2455         decl    %ebp
 2456         movl    %ecx,8(%ebx)
 2457         jz      .L025aw_end
 2458 
 2459         movl    12(%esi),%ecx
 2460         movl    12(%edi),%edx
 2461         subl    %eax,%ecx
 2462         movl    $0,%eax
 2463         adcl    %eax,%eax
 2464         subl    %edx,%ecx
 2465         adcl    $0,%eax
 2466         decl    %ebp
 2467         movl    %ecx,12(%ebx)
 2468         jz      .L025aw_end
 2469 
 2470         movl    16(%esi),%ecx
 2471         movl    16(%edi),%edx
 2472         subl    %eax,%ecx
 2473         movl    $0,%eax
 2474         adcl    %eax,%eax
 2475         subl    %edx,%ecx
 2476         adcl    $0,%eax
 2477         decl    %ebp
 2478         movl    %ecx,16(%ebx)
 2479         jz      .L025aw_end
 2480 
 2481         movl    20(%esi),%ecx
 2482         movl    20(%edi),%edx
 2483         subl    %eax,%ecx
 2484         movl    $0,%eax
 2485         adcl    %eax,%eax
 2486         subl    %edx,%ecx
 2487         adcl    $0,%eax
 2488         decl    %ebp
 2489         movl    %ecx,20(%ebx)
 2490         jz      .L025aw_end
 2491 
 2492         movl    24(%esi),%ecx
 2493         movl    24(%edi),%edx
 2494         subl    %eax,%ecx
 2495         movl    $0,%eax
 2496         adcl    %eax,%eax
 2497         subl    %edx,%ecx
 2498         adcl    $0,%eax
 2499         movl    %ecx,24(%ebx)
 2500 .L025aw_end:
 2501         popl    %edi
 2502         popl    %esi
 2503         popl    %ebx
 2504         popl    %ebp
 2505         ret
 2506 .size   bn_sub_words,.-.L_bn_sub_words_begin
 2507 .globl  bn_sub_part_words
 2508 .type   bn_sub_part_words,@function
 2509 .align  16
 2510 bn_sub_part_words:
 2511 .L_bn_sub_part_words_begin:
 2512         pushl   %ebp
 2513         pushl   %ebx
 2514         pushl   %esi
 2515         pushl   %edi
 2516 
 2517         movl    20(%esp),%ebx
 2518         movl    24(%esp),%esi
 2519         movl    28(%esp),%edi
 2520         movl    32(%esp),%ebp
 2521         xorl    %eax,%eax
 2522         andl    $4294967288,%ebp
 2523         jz      .L026aw_finish
 2524 .L027aw_loop:
 2525 
 2526         movl    (%esi),%ecx
 2527         movl    (%edi),%edx
 2528         subl    %eax,%ecx
 2529         movl    $0,%eax
 2530         adcl    %eax,%eax
 2531         subl    %edx,%ecx
 2532         adcl    $0,%eax
 2533         movl    %ecx,(%ebx)
 2534 
 2535         movl    4(%esi),%ecx
 2536         movl    4(%edi),%edx
 2537         subl    %eax,%ecx
 2538         movl    $0,%eax
 2539         adcl    %eax,%eax
 2540         subl    %edx,%ecx
 2541         adcl    $0,%eax
 2542         movl    %ecx,4(%ebx)
 2543 
 2544         movl    8(%esi),%ecx
 2545         movl    8(%edi),%edx
 2546         subl    %eax,%ecx
 2547         movl    $0,%eax
 2548         adcl    %eax,%eax
 2549         subl    %edx,%ecx
 2550         adcl    $0,%eax
 2551         movl    %ecx,8(%ebx)
 2552 
 2553         movl    12(%esi),%ecx
 2554         movl    12(%edi),%edx
 2555         subl    %eax,%ecx
 2556         movl    $0,%eax
 2557         adcl    %eax,%eax
 2558         subl    %edx,%ecx
 2559         adcl    $0,%eax
 2560         movl    %ecx,12(%ebx)
 2561 
 2562         movl    16(%esi),%ecx
 2563         movl    16(%edi),%edx
 2564         subl    %eax,%ecx
 2565         movl    $0,%eax
 2566         adcl    %eax,%eax
 2567         subl    %edx,%ecx
 2568         adcl    $0,%eax
 2569         movl    %ecx,16(%ebx)
 2570 
 2571         movl    20(%esi),%ecx
 2572         movl    20(%edi),%edx
 2573         subl    %eax,%ecx
 2574         movl    $0,%eax
 2575         adcl    %eax,%eax
 2576         subl    %edx,%ecx
 2577         adcl    $0,%eax
 2578         movl    %ecx,20(%ebx)
 2579 
 2580         movl    24(%esi),%ecx
 2581         movl    24(%edi),%edx
 2582         subl    %eax,%ecx
 2583         movl    $0,%eax
 2584         adcl    %eax,%eax
 2585         subl    %edx,%ecx
 2586         adcl    $0,%eax
 2587         movl    %ecx,24(%ebx)
 2588 
 2589         movl    28(%esi),%ecx
 2590         movl    28(%edi),%edx
 2591         subl    %eax,%ecx
 2592         movl    $0,%eax
 2593         adcl    %eax,%eax
 2594         subl    %edx,%ecx
 2595         adcl    $0,%eax
 2596         movl    %ecx,28(%ebx)
 2597 
 2598         addl    $32,%esi
 2599         addl    $32,%edi
 2600         addl    $32,%ebx
 2601         subl    $8,%ebp
 2602         jnz     .L027aw_loop
 2603 .L026aw_finish:
 2604         movl    32(%esp),%ebp
 2605         andl    $7,%ebp
 2606         jz      .L028aw_end
 2607 
 2608         movl    (%esi),%ecx
 2609         movl    (%edi),%edx
 2610         subl    %eax,%ecx
 2611         movl    $0,%eax
 2612         adcl    %eax,%eax
 2613         subl    %edx,%ecx
 2614         adcl    $0,%eax
 2615         movl    %ecx,(%ebx)
 2616         addl    $4,%esi
 2617         addl    $4,%edi
 2618         addl    $4,%ebx
 2619         decl    %ebp
 2620         jz      .L028aw_end
 2621 
 2622         movl    (%esi),%ecx
 2623         movl    (%edi),%edx
 2624         subl    %eax,%ecx
 2625         movl    $0,%eax
 2626         adcl    %eax,%eax
 2627         subl    %edx,%ecx
 2628         adcl    $0,%eax
 2629         movl    %ecx,(%ebx)
 2630         addl    $4,%esi
 2631         addl    $4,%edi
 2632         addl    $4,%ebx
 2633         decl    %ebp
 2634         jz      .L028aw_end
 2635 
 2636         movl    (%esi),%ecx
 2637         movl    (%edi),%edx
 2638         subl    %eax,%ecx
 2639         movl    $0,%eax
 2640         adcl    %eax,%eax
 2641         subl    %edx,%ecx
 2642         adcl    $0,%eax
 2643         movl    %ecx,(%ebx)
 2644         addl    $4,%esi
 2645         addl    $4,%edi
 2646         addl    $4,%ebx
 2647         decl    %ebp
 2648         jz      .L028aw_end
 2649 
 2650         movl    (%esi),%ecx
 2651         movl    (%edi),%edx
 2652         subl    %eax,%ecx
 2653         movl    $0,%eax
 2654         adcl    %eax,%eax
 2655         subl    %edx,%ecx
 2656         adcl    $0,%eax
 2657         movl    %ecx,(%ebx)
 2658         addl    $4,%esi
 2659         addl    $4,%edi
 2660         addl    $4,%ebx
 2661         decl    %ebp
 2662         jz      .L028aw_end
 2663 
 2664         movl    (%esi),%ecx
 2665         movl    (%edi),%edx
 2666         subl    %eax,%ecx
 2667         movl    $0,%eax
 2668         adcl    %eax,%eax
 2669         subl    %edx,%ecx
 2670         adcl    $0,%eax
 2671         movl    %ecx,(%ebx)
 2672         addl    $4,%esi
 2673         addl    $4,%edi
 2674         addl    $4,%ebx
 2675         decl    %ebp
 2676         jz      .L028aw_end
 2677 
 2678         movl    (%esi),%ecx
 2679         movl    (%edi),%edx
 2680         subl    %eax,%ecx
 2681         movl    $0,%eax
 2682         adcl    %eax,%eax
 2683         subl    %edx,%ecx
 2684         adcl    $0,%eax
 2685         movl    %ecx,(%ebx)
 2686         addl    $4,%esi
 2687         addl    $4,%edi
 2688         addl    $4,%ebx
 2689         decl    %ebp
 2690         jz      .L028aw_end
 2691 
 2692         movl    (%esi),%ecx
 2693         movl    (%edi),%edx
 2694         subl    %eax,%ecx
 2695         movl    $0,%eax
 2696         adcl    %eax,%eax
 2697         subl    %edx,%ecx
 2698         adcl    $0,%eax
 2699         movl    %ecx,(%ebx)
 2700         addl    $4,%esi
 2701         addl    $4,%edi
 2702         addl    $4,%ebx
 2703 .L028aw_end:
 2704         cmpl    $0,36(%esp)
 2705         je      .L029pw_end
 2706         movl    36(%esp),%ebp
 2707         cmpl    $0,%ebp
 2708         je      .L029pw_end
 2709         jge     .L030pw_pos
 2710 
 2711         movl    $0,%edx
 2712         subl    %ebp,%edx
 2713         movl    %edx,%ebp
 2714         andl    $4294967288,%ebp
 2715         jz      .L031pw_neg_finish
 2716 .L032pw_neg_loop:
 2717 
 2718         movl    $0,%ecx
 2719         movl    (%edi),%edx
 2720         subl    %eax,%ecx
 2721         movl    $0,%eax
 2722         adcl    %eax,%eax
 2723         subl    %edx,%ecx
 2724         adcl    $0,%eax
 2725         movl    %ecx,(%ebx)
 2726 
 2727         movl    $0,%ecx
 2728         movl    4(%edi),%edx
 2729         subl    %eax,%ecx
 2730         movl    $0,%eax
 2731         adcl    %eax,%eax
 2732         subl    %edx,%ecx
 2733         adcl    $0,%eax
 2734         movl    %ecx,4(%ebx)
 2735 
 2736         movl    $0,%ecx
 2737         movl    8(%edi),%edx
 2738         subl    %eax,%ecx
 2739         movl    $0,%eax
 2740         adcl    %eax,%eax
 2741         subl    %edx,%ecx
 2742         adcl    $0,%eax
 2743         movl    %ecx,8(%ebx)
 2744 
 2745         movl    $0,%ecx
 2746         movl    12(%edi),%edx
 2747         subl    %eax,%ecx
 2748         movl    $0,%eax
 2749         adcl    %eax,%eax
 2750         subl    %edx,%ecx
 2751         adcl    $0,%eax
 2752         movl    %ecx,12(%ebx)
 2753 
 2754         movl    $0,%ecx
 2755         movl    16(%edi),%edx
 2756         subl    %eax,%ecx
 2757         movl    $0,%eax
 2758         adcl    %eax,%eax
 2759         subl    %edx,%ecx
 2760         adcl    $0,%eax
 2761         movl    %ecx,16(%ebx)
 2762 
 2763         movl    $0,%ecx
 2764         movl    20(%edi),%edx
 2765         subl    %eax,%ecx
 2766         movl    $0,%eax
 2767         adcl    %eax,%eax
 2768         subl    %edx,%ecx
 2769         adcl    $0,%eax
 2770         movl    %ecx,20(%ebx)
 2771 
 2772         movl    $0,%ecx
 2773         movl    24(%edi),%edx
 2774         subl    %eax,%ecx
 2775         movl    $0,%eax
 2776         adcl    %eax,%eax
 2777         subl    %edx,%ecx
 2778         adcl    $0,%eax
 2779         movl    %ecx,24(%ebx)
 2780 
 2781         movl    $0,%ecx
 2782         movl    28(%edi),%edx
 2783         subl    %eax,%ecx
 2784         movl    $0,%eax
 2785         adcl    %eax,%eax
 2786         subl    %edx,%ecx
 2787         adcl    $0,%eax
 2788         movl    %ecx,28(%ebx)
 2789 
 2790         addl    $32,%edi
 2791         addl    $32,%ebx
 2792         subl    $8,%ebp
 2793         jnz     .L032pw_neg_loop
 2794 .L031pw_neg_finish:
 2795         movl    36(%esp),%edx
 2796         movl    $0,%ebp
 2797         subl    %edx,%ebp
 2798         andl    $7,%ebp
 2799         jz      .L029pw_end
 2800 
 2801         movl    $0,%ecx
 2802         movl    (%edi),%edx
 2803         subl    %eax,%ecx
 2804         movl    $0,%eax
 2805         adcl    %eax,%eax
 2806         subl    %edx,%ecx
 2807         adcl    $0,%eax
 2808         decl    %ebp
 2809         movl    %ecx,(%ebx)
 2810         jz      .L029pw_end
 2811 
 2812         movl    $0,%ecx
 2813         movl    4(%edi),%edx
 2814         subl    %eax,%ecx
 2815         movl    $0,%eax
 2816         adcl    %eax,%eax
 2817         subl    %edx,%ecx
 2818         adcl    $0,%eax
 2819         decl    %ebp
 2820         movl    %ecx,4(%ebx)
 2821         jz      .L029pw_end
 2822 
 2823         movl    $0,%ecx
 2824         movl    8(%edi),%edx
 2825         subl    %eax,%ecx
 2826         movl    $0,%eax
 2827         adcl    %eax,%eax
 2828         subl    %edx,%ecx
 2829         adcl    $0,%eax
 2830         decl    %ebp
 2831         movl    %ecx,8(%ebx)
 2832         jz      .L029pw_end
 2833 
 2834         movl    $0,%ecx
 2835         movl    12(%edi),%edx
 2836         subl    %eax,%ecx
 2837         movl    $0,%eax
 2838         adcl    %eax,%eax
 2839         subl    %edx,%ecx
 2840         adcl    $0,%eax
 2841         decl    %ebp
 2842         movl    %ecx,12(%ebx)
 2843         jz      .L029pw_end
 2844 
 2845         movl    $0,%ecx
 2846         movl    16(%edi),%edx
 2847         subl    %eax,%ecx
 2848         movl    $0,%eax
 2849         adcl    %eax,%eax
 2850         subl    %edx,%ecx
 2851         adcl    $0,%eax
 2852         decl    %ebp
 2853         movl    %ecx,16(%ebx)
 2854         jz      .L029pw_end
 2855 
 2856         movl    $0,%ecx
 2857         movl    20(%edi),%edx
 2858         subl    %eax,%ecx
 2859         movl    $0,%eax
 2860         adcl    %eax,%eax
 2861         subl    %edx,%ecx
 2862         adcl    $0,%eax
 2863         decl    %ebp
 2864         movl    %ecx,20(%ebx)
 2865         jz      .L029pw_end
 2866 
 2867         movl    $0,%ecx
 2868         movl    24(%edi),%edx
 2869         subl    %eax,%ecx
 2870         movl    $0,%eax
 2871         adcl    %eax,%eax
 2872         subl    %edx,%ecx
 2873         adcl    $0,%eax
 2874         movl    %ecx,24(%ebx)
 2875         jmp     .L029pw_end
 2876 .L030pw_pos:
 2877         andl    $4294967288,%ebp
 2878         jz      .L033pw_pos_finish
 2879 .L034pw_pos_loop:
 2880 
 2881         movl    (%esi),%ecx
 2882         subl    %eax,%ecx
 2883         movl    %ecx,(%ebx)
 2884         jnc     .L035pw_nc0
 2885 
 2886         movl    4(%esi),%ecx
 2887         subl    %eax,%ecx
 2888         movl    %ecx,4(%ebx)
 2889         jnc     .L036pw_nc1
 2890 
 2891         movl    8(%esi),%ecx
 2892         subl    %eax,%ecx
 2893         movl    %ecx,8(%ebx)
 2894         jnc     .L037pw_nc2
 2895 
 2896         movl    12(%esi),%ecx
 2897         subl    %eax,%ecx
 2898         movl    %ecx,12(%ebx)
 2899         jnc     .L038pw_nc3
 2900 
 2901         movl    16(%esi),%ecx
 2902         subl    %eax,%ecx
 2903         movl    %ecx,16(%ebx)
 2904         jnc     .L039pw_nc4
 2905 
 2906         movl    20(%esi),%ecx
 2907         subl    %eax,%ecx
 2908         movl    %ecx,20(%ebx)
 2909         jnc     .L040pw_nc5
 2910 
 2911         movl    24(%esi),%ecx
 2912         subl    %eax,%ecx
 2913         movl    %ecx,24(%ebx)
 2914         jnc     .L041pw_nc6
 2915 
 2916         movl    28(%esi),%ecx
 2917         subl    %eax,%ecx
 2918         movl    %ecx,28(%ebx)
 2919         jnc     .L042pw_nc7
 2920 
 2921         addl    $32,%esi
 2922         addl    $32,%ebx
 2923         subl    $8,%ebp
 2924         jnz     .L034pw_pos_loop
 2925 .L033pw_pos_finish:
 2926         movl    36(%esp),%ebp
 2927         andl    $7,%ebp
 2928         jz      .L029pw_end
 2929 
 2930         movl    (%esi),%ecx
 2931         subl    %eax,%ecx
 2932         movl    %ecx,(%ebx)
 2933         jnc     .L043pw_tail_nc0
 2934         decl    %ebp
 2935         jz      .L029pw_end
 2936 
 2937         movl    4(%esi),%ecx
 2938         subl    %eax,%ecx
 2939         movl    %ecx,4(%ebx)
 2940         jnc     .L044pw_tail_nc1
 2941         decl    %ebp
 2942         jz      .L029pw_end
 2943 
 2944         movl    8(%esi),%ecx
 2945         subl    %eax,%ecx
 2946         movl    %ecx,8(%ebx)
 2947         jnc     .L045pw_tail_nc2
 2948         decl    %ebp
 2949         jz      .L029pw_end
 2950 
 2951         movl    12(%esi),%ecx
 2952         subl    %eax,%ecx
 2953         movl    %ecx,12(%ebx)
 2954         jnc     .L046pw_tail_nc3
 2955         decl    %ebp
 2956         jz      .L029pw_end
 2957 
 2958         movl    16(%esi),%ecx
 2959         subl    %eax,%ecx
 2960         movl    %ecx,16(%ebx)
 2961         jnc     .L047pw_tail_nc4
 2962         decl    %ebp
 2963         jz      .L029pw_end
 2964 
 2965         movl    20(%esi),%ecx
 2966         subl    %eax,%ecx
 2967         movl    %ecx,20(%ebx)
 2968         jnc     .L048pw_tail_nc5
 2969         decl    %ebp
 2970         jz      .L029pw_end
 2971 
 2972         movl    24(%esi),%ecx
 2973         subl    %eax,%ecx
 2974         movl    %ecx,24(%ebx)
 2975         jnc     .L049pw_tail_nc6
 2976         movl    $1,%eax
 2977         jmp     .L029pw_end
 2978 .L050pw_nc_loop:
 2979         movl    (%esi),%ecx
 2980         movl    %ecx,(%ebx)
 2981 .L035pw_nc0:
 2982         movl    4(%esi),%ecx
 2983         movl    %ecx,4(%ebx)
 2984 .L036pw_nc1:
 2985         movl    8(%esi),%ecx
 2986         movl    %ecx,8(%ebx)
 2987 .L037pw_nc2:
 2988         movl    12(%esi),%ecx
 2989         movl    %ecx,12(%ebx)
 2990 .L038pw_nc3:
 2991         movl    16(%esi),%ecx
 2992         movl    %ecx,16(%ebx)
 2993 .L039pw_nc4:
 2994         movl    20(%esi),%ecx
 2995         movl    %ecx,20(%ebx)
 2996 .L040pw_nc5:
 2997         movl    24(%esi),%ecx
 2998         movl    %ecx,24(%ebx)
 2999 .L041pw_nc6:
 3000         movl    28(%esi),%ecx
 3001         movl    %ecx,28(%ebx)
 3002 .L042pw_nc7:
 3003 
 3004         addl    $32,%esi
 3005         addl    $32,%ebx
 3006         subl    $8,%ebp
 3007         jnz     .L050pw_nc_loop
 3008         movl    36(%esp),%ebp
 3009         andl    $7,%ebp
 3010         jz      .L051pw_nc_end
 3011         movl    (%esi),%ecx
 3012         movl    %ecx,(%ebx)
 3013 .L043pw_tail_nc0:
 3014         decl    %ebp
 3015         jz      .L051pw_nc_end
 3016         movl    4(%esi),%ecx
 3017         movl    %ecx,4(%ebx)
 3018 .L044pw_tail_nc1:
 3019         decl    %ebp
 3020         jz      .L051pw_nc_end
 3021         movl    8(%esi),%ecx
 3022         movl    %ecx,8(%ebx)
 3023 .L045pw_tail_nc2:
 3024         decl    %ebp
 3025         jz      .L051pw_nc_end
 3026         movl    12(%esi),%ecx
 3027         movl    %ecx,12(%ebx)
 3028 .L046pw_tail_nc3:
 3029         decl    %ebp
 3030         jz      .L051pw_nc_end
 3031         movl    16(%esi),%ecx
 3032         movl    %ecx,16(%ebx)
 3033 .L047pw_tail_nc4:
 3034         decl    %ebp
 3035         jz      .L051pw_nc_end
 3036         movl    20(%esi),%ecx
 3037         movl    %ecx,20(%ebx)
 3038 .L048pw_tail_nc5:
 3039         decl    %ebp
 3040         jz      .L051pw_nc_end
 3041         movl    24(%esi),%ecx
 3042         movl    %ecx,24(%ebx)
 3043 .L049pw_tail_nc6:
 3044 .L051pw_nc_end:
 3045         movl    $0,%eax
 3046 .L029pw_end:
 3047         popl    %edi
 3048         popl    %esi
 3049         popl    %ebx
 3050         popl    %ebp
 3051         ret
 3052 .size   bn_sub_part_words,.-.L_bn_sub_part_words_begin
 3053 .comm   OPENSSL_ia32cap_P,16,4
 3054 #endif

Cache object: 00bd6f38ea4212e7a7366215094f4265


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.