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/ghash-x86.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 ghash-x86.pl. */
    3 #ifdef PIC
    4 .text
    5 .globl  gcm_gmult_4bit_x86
    6 .type   gcm_gmult_4bit_x86,@function
    7 .align  16
    8 gcm_gmult_4bit_x86:
    9 .L_gcm_gmult_4bit_x86_begin:
   10         pushl   %ebp
   11         pushl   %ebx
   12         pushl   %esi
   13         pushl   %edi
   14         subl    $84,%esp
   15         movl    104(%esp),%edi
   16         movl    108(%esp),%esi
   17         movl    (%edi),%ebp
   18         movl    4(%edi),%edx
   19         movl    8(%edi),%ecx
   20         movl    12(%edi),%ebx
   21         movl    $0,16(%esp)
   22         movl    $471859200,20(%esp)
   23         movl    $943718400,24(%esp)
   24         movl    $610271232,28(%esp)
   25         movl    $1887436800,32(%esp)
   26         movl    $1822425088,36(%esp)
   27         movl    $1220542464,40(%esp)
   28         movl    $1423966208,44(%esp)
   29         movl    $3774873600,48(%esp)
   30         movl    $4246732800,52(%esp)
   31         movl    $3644850176,56(%esp)
   32         movl    $3311403008,60(%esp)
   33         movl    $2441084928,64(%esp)
   34         movl    $2376073216,68(%esp)
   35         movl    $2847932416,72(%esp)
   36         movl    $3051356160,76(%esp)
   37         movl    %ebp,(%esp)
   38         movl    %edx,4(%esp)
   39         movl    %ecx,8(%esp)
   40         movl    %ebx,12(%esp)
   41         shrl    $20,%ebx
   42         andl    $240,%ebx
   43         movl    4(%esi,%ebx,1),%ebp
   44         movl    (%esi,%ebx,1),%edx
   45         movl    12(%esi,%ebx,1),%ecx
   46         movl    8(%esi,%ebx,1),%ebx
   47         xorl    %eax,%eax
   48         movl    $15,%edi
   49         jmp     .L000x86_loop
   50 .align  16
   51 .L000x86_loop:
   52         movb    %bl,%al
   53         shrdl   $4,%ecx,%ebx
   54         andb    $15,%al
   55         shrdl   $4,%edx,%ecx
   56         shrdl   $4,%ebp,%edx
   57         shrl    $4,%ebp
   58         xorl    16(%esp,%eax,4),%ebp
   59         movb    (%esp,%edi,1),%al
   60         andb    $240,%al
   61         xorl    8(%esi,%eax,1),%ebx
   62         xorl    12(%esi,%eax,1),%ecx
   63         xorl    (%esi,%eax,1),%edx
   64         xorl    4(%esi,%eax,1),%ebp
   65         decl    %edi
   66         js      .L001x86_break
   67         movb    %bl,%al
   68         shrdl   $4,%ecx,%ebx
   69         andb    $15,%al
   70         shrdl   $4,%edx,%ecx
   71         shrdl   $4,%ebp,%edx
   72         shrl    $4,%ebp
   73         xorl    16(%esp,%eax,4),%ebp
   74         movb    (%esp,%edi,1),%al
   75         shlb    $4,%al
   76         xorl    8(%esi,%eax,1),%ebx
   77         xorl    12(%esi,%eax,1),%ecx
   78         xorl    (%esi,%eax,1),%edx
   79         xorl    4(%esi,%eax,1),%ebp
   80         jmp     .L000x86_loop
   81 .align  16
   82 .L001x86_break:
   83         bswap   %ebx
   84         bswap   %ecx
   85         bswap   %edx
   86         bswap   %ebp
   87         movl    104(%esp),%edi
   88         movl    %ebx,12(%edi)
   89         movl    %ecx,8(%edi)
   90         movl    %edx,4(%edi)
   91         movl    %ebp,(%edi)
   92         addl    $84,%esp
   93         popl    %edi
   94         popl    %esi
   95         popl    %ebx
   96         popl    %ebp
   97         ret
   98 .size   gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin
   99 .globl  gcm_ghash_4bit_x86
  100 .type   gcm_ghash_4bit_x86,@function
  101 .align  16
  102 gcm_ghash_4bit_x86:
  103 .L_gcm_ghash_4bit_x86_begin:
  104         pushl   %ebp
  105         pushl   %ebx
  106         pushl   %esi
  107         pushl   %edi
  108         subl    $84,%esp
  109         movl    104(%esp),%ebx
  110         movl    108(%esp),%esi
  111         movl    112(%esp),%edi
  112         movl    116(%esp),%ecx
  113         addl    %edi,%ecx
  114         movl    %ecx,116(%esp)
  115         movl    (%ebx),%ebp
  116         movl    4(%ebx),%edx
  117         movl    8(%ebx),%ecx
  118         movl    12(%ebx),%ebx
  119         movl    $0,16(%esp)
  120         movl    $471859200,20(%esp)
  121         movl    $943718400,24(%esp)
  122         movl    $610271232,28(%esp)
  123         movl    $1887436800,32(%esp)
  124         movl    $1822425088,36(%esp)
  125         movl    $1220542464,40(%esp)
  126         movl    $1423966208,44(%esp)
  127         movl    $3774873600,48(%esp)
  128         movl    $4246732800,52(%esp)
  129         movl    $3644850176,56(%esp)
  130         movl    $3311403008,60(%esp)
  131         movl    $2441084928,64(%esp)
  132         movl    $2376073216,68(%esp)
  133         movl    $2847932416,72(%esp)
  134         movl    $3051356160,76(%esp)
  135 .align  16
  136 .L002x86_outer_loop:
  137         xorl    12(%edi),%ebx
  138         xorl    8(%edi),%ecx
  139         xorl    4(%edi),%edx
  140         xorl    (%edi),%ebp
  141         movl    %ebx,12(%esp)
  142         movl    %ecx,8(%esp)
  143         movl    %edx,4(%esp)
  144         movl    %ebp,(%esp)
  145         shrl    $20,%ebx
  146         andl    $240,%ebx
  147         movl    4(%esi,%ebx,1),%ebp
  148         movl    (%esi,%ebx,1),%edx
  149         movl    12(%esi,%ebx,1),%ecx
  150         movl    8(%esi,%ebx,1),%ebx
  151         xorl    %eax,%eax
  152         movl    $15,%edi
  153         jmp     .L003x86_loop
  154 .align  16
  155 .L003x86_loop:
  156         movb    %bl,%al
  157         shrdl   $4,%ecx,%ebx
  158         andb    $15,%al
  159         shrdl   $4,%edx,%ecx
  160         shrdl   $4,%ebp,%edx
  161         shrl    $4,%ebp
  162         xorl    16(%esp,%eax,4),%ebp
  163         movb    (%esp,%edi,1),%al
  164         andb    $240,%al
  165         xorl    8(%esi,%eax,1),%ebx
  166         xorl    12(%esi,%eax,1),%ecx
  167         xorl    (%esi,%eax,1),%edx
  168         xorl    4(%esi,%eax,1),%ebp
  169         decl    %edi
  170         js      .L004x86_break
  171         movb    %bl,%al
  172         shrdl   $4,%ecx,%ebx
  173         andb    $15,%al
  174         shrdl   $4,%edx,%ecx
  175         shrdl   $4,%ebp,%edx
  176         shrl    $4,%ebp
  177         xorl    16(%esp,%eax,4),%ebp
  178         movb    (%esp,%edi,1),%al
  179         shlb    $4,%al
  180         xorl    8(%esi,%eax,1),%ebx
  181         xorl    12(%esi,%eax,1),%ecx
  182         xorl    (%esi,%eax,1),%edx
  183         xorl    4(%esi,%eax,1),%ebp
  184         jmp     .L003x86_loop
  185 .align  16
  186 .L004x86_break:
  187         bswap   %ebx
  188         bswap   %ecx
  189         bswap   %edx
  190         bswap   %ebp
  191         movl    112(%esp),%edi
  192         leal    16(%edi),%edi
  193         cmpl    116(%esp),%edi
  194         movl    %edi,112(%esp)
  195         jb      .L002x86_outer_loop
  196         movl    104(%esp),%edi
  197         movl    %ebx,12(%edi)
  198         movl    %ecx,8(%edi)
  199         movl    %edx,4(%edi)
  200         movl    %ebp,(%edi)
  201         addl    $84,%esp
  202         popl    %edi
  203         popl    %esi
  204         popl    %ebx
  205         popl    %ebp
  206         ret
  207 .size   gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin
  208 .globl  gcm_gmult_4bit_mmx
  209 .type   gcm_gmult_4bit_mmx,@function
  210 .align  16
  211 gcm_gmult_4bit_mmx:
  212 .L_gcm_gmult_4bit_mmx_begin:
  213         pushl   %ebp
  214         pushl   %ebx
  215         pushl   %esi
  216         pushl   %edi
  217         movl    20(%esp),%edi
  218         movl    24(%esp),%esi
  219         call    .L005pic_point
  220 .L005pic_point:
  221         popl    %eax
  222         leal    .Lrem_4bit-.L005pic_point(%eax),%eax
  223         movzbl  15(%edi),%ebx
  224         xorl    %ecx,%ecx
  225         movl    %ebx,%edx
  226         movb    %dl,%cl
  227         movl    $14,%ebp
  228         shlb    $4,%cl
  229         andl    $240,%edx
  230         movq    8(%esi,%ecx,1),%mm0
  231         movq    (%esi,%ecx,1),%mm1
  232         movd    %mm0,%ebx
  233         jmp     .L006mmx_loop
  234 .align  16
  235 .L006mmx_loop:
  236         psrlq   $4,%mm0
  237         andl    $15,%ebx
  238         movq    %mm1,%mm2
  239         psrlq   $4,%mm1
  240         pxor    8(%esi,%edx,1),%mm0
  241         movb    (%edi,%ebp,1),%cl
  242         psllq   $60,%mm2
  243         pxor    (%eax,%ebx,8),%mm1
  244         decl    %ebp
  245         movd    %mm0,%ebx
  246         pxor    (%esi,%edx,1),%mm1
  247         movl    %ecx,%edx
  248         pxor    %mm2,%mm0
  249         js      .L007mmx_break
  250         shlb    $4,%cl
  251         andl    $15,%ebx
  252         psrlq   $4,%mm0
  253         andl    $240,%edx
  254         movq    %mm1,%mm2
  255         psrlq   $4,%mm1
  256         pxor    8(%esi,%ecx,1),%mm0
  257         psllq   $60,%mm2
  258         pxor    (%eax,%ebx,8),%mm1
  259         movd    %mm0,%ebx
  260         pxor    (%esi,%ecx,1),%mm1
  261         pxor    %mm2,%mm0
  262         jmp     .L006mmx_loop
  263 .align  16
  264 .L007mmx_break:
  265         shlb    $4,%cl
  266         andl    $15,%ebx
  267         psrlq   $4,%mm0
  268         andl    $240,%edx
  269         movq    %mm1,%mm2
  270         psrlq   $4,%mm1
  271         pxor    8(%esi,%ecx,1),%mm0
  272         psllq   $60,%mm2
  273         pxor    (%eax,%ebx,8),%mm1
  274         movd    %mm0,%ebx
  275         pxor    (%esi,%ecx,1),%mm1
  276         pxor    %mm2,%mm0
  277         psrlq   $4,%mm0
  278         andl    $15,%ebx
  279         movq    %mm1,%mm2
  280         psrlq   $4,%mm1
  281         pxor    8(%esi,%edx,1),%mm0
  282         psllq   $60,%mm2
  283         pxor    (%eax,%ebx,8),%mm1
  284         movd    %mm0,%ebx
  285         pxor    (%esi,%edx,1),%mm1
  286         pxor    %mm2,%mm0
  287         psrlq   $32,%mm0
  288         movd    %mm1,%edx
  289         psrlq   $32,%mm1
  290         movd    %mm0,%ecx
  291         movd    %mm1,%ebp
  292         bswap   %ebx
  293         bswap   %edx
  294         bswap   %ecx
  295         bswap   %ebp
  296         emms
  297         movl    %ebx,12(%edi)
  298         movl    %edx,4(%edi)
  299         movl    %ecx,8(%edi)
  300         movl    %ebp,(%edi)
  301         popl    %edi
  302         popl    %esi
  303         popl    %ebx
  304         popl    %ebp
  305         ret
  306 .size   gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin
  307 .globl  gcm_ghash_4bit_mmx
  308 .type   gcm_ghash_4bit_mmx,@function
  309 .align  16
  310 gcm_ghash_4bit_mmx:
  311 .L_gcm_ghash_4bit_mmx_begin:
  312         pushl   %ebp
  313         pushl   %ebx
  314         pushl   %esi
  315         pushl   %edi
  316         movl    20(%esp),%eax
  317         movl    24(%esp),%ebx
  318         movl    28(%esp),%ecx
  319         movl    32(%esp),%edx
  320         movl    %esp,%ebp
  321         call    .L008pic_point
  322 .L008pic_point:
  323         popl    %esi
  324         leal    .Lrem_8bit-.L008pic_point(%esi),%esi
  325         subl    $544,%esp
  326         andl    $-64,%esp
  327         subl    $16,%esp
  328         addl    %ecx,%edx
  329         movl    %eax,544(%esp)
  330         movl    %edx,552(%esp)
  331         movl    %ebp,556(%esp)
  332         addl    $128,%ebx
  333         leal    144(%esp),%edi
  334         leal    400(%esp),%ebp
  335         movl    -120(%ebx),%edx
  336         movq    -120(%ebx),%mm0
  337         movq    -128(%ebx),%mm3
  338         shll    $4,%edx
  339         movb    %dl,(%esp)
  340         movl    -104(%ebx),%edx
  341         movq    -104(%ebx),%mm2
  342         movq    -112(%ebx),%mm5
  343         movq    %mm0,-128(%edi)
  344         psrlq   $4,%mm0
  345         movq    %mm3,(%edi)
  346         movq    %mm3,%mm7
  347         psrlq   $4,%mm3
  348         shll    $4,%edx
  349         movb    %dl,1(%esp)
  350         movl    -88(%ebx),%edx
  351         movq    -88(%ebx),%mm1
  352         psllq   $60,%mm7
  353         movq    -96(%ebx),%mm4
  354         por     %mm7,%mm0
  355         movq    %mm2,-120(%edi)
  356         psrlq   $4,%mm2
  357         movq    %mm5,8(%edi)
  358         movq    %mm5,%mm6
  359         movq    %mm0,-128(%ebp)
  360         psrlq   $4,%mm5
  361         movq    %mm3,(%ebp)
  362         shll    $4,%edx
  363         movb    %dl,2(%esp)
  364         movl    -72(%ebx),%edx
  365         movq    -72(%ebx),%mm0
  366         psllq   $60,%mm6
  367         movq    -80(%ebx),%mm3
  368         por     %mm6,%mm2
  369         movq    %mm1,-112(%edi)
  370         psrlq   $4,%mm1
  371         movq    %mm4,16(%edi)
  372         movq    %mm4,%mm7
  373         movq    %mm2,-120(%ebp)
  374         psrlq   $4,%mm4
  375         movq    %mm5,8(%ebp)
  376         shll    $4,%edx
  377         movb    %dl,3(%esp)
  378         movl    -56(%ebx),%edx
  379         movq    -56(%ebx),%mm2
  380         psllq   $60,%mm7
  381         movq    -64(%ebx),%mm5
  382         por     %mm7,%mm1
  383         movq    %mm0,-104(%edi)
  384         psrlq   $4,%mm0
  385         movq    %mm3,24(%edi)
  386         movq    %mm3,%mm6
  387         movq    %mm1,-112(%ebp)
  388         psrlq   $4,%mm3
  389         movq    %mm4,16(%ebp)
  390         shll    $4,%edx
  391         movb    %dl,4(%esp)
  392         movl    -40(%ebx),%edx
  393         movq    -40(%ebx),%mm1
  394         psllq   $60,%mm6
  395         movq    -48(%ebx),%mm4
  396         por     %mm6,%mm0
  397         movq    %mm2,-96(%edi)
  398         psrlq   $4,%mm2
  399         movq    %mm5,32(%edi)
  400         movq    %mm5,%mm7
  401         movq    %mm0,-104(%ebp)
  402         psrlq   $4,%mm5
  403         movq    %mm3,24(%ebp)
  404         shll    $4,%edx
  405         movb    %dl,5(%esp)
  406         movl    -24(%ebx),%edx
  407         movq    -24(%ebx),%mm0
  408         psllq   $60,%mm7
  409         movq    -32(%ebx),%mm3
  410         por     %mm7,%mm2
  411         movq    %mm1,-88(%edi)
  412         psrlq   $4,%mm1
  413         movq    %mm4,40(%edi)
  414         movq    %mm4,%mm6
  415         movq    %mm2,-96(%ebp)
  416         psrlq   $4,%mm4
  417         movq    %mm5,32(%ebp)
  418         shll    $4,%edx
  419         movb    %dl,6(%esp)
  420         movl    -8(%ebx),%edx
  421         movq    -8(%ebx),%mm2
  422         psllq   $60,%mm6
  423         movq    -16(%ebx),%mm5
  424         por     %mm6,%mm1
  425         movq    %mm0,-80(%edi)
  426         psrlq   $4,%mm0
  427         movq    %mm3,48(%edi)
  428         movq    %mm3,%mm7
  429         movq    %mm1,-88(%ebp)
  430         psrlq   $4,%mm3
  431         movq    %mm4,40(%ebp)
  432         shll    $4,%edx
  433         movb    %dl,7(%esp)
  434         movl    8(%ebx),%edx
  435         movq    8(%ebx),%mm1
  436         psllq   $60,%mm7
  437         movq    (%ebx),%mm4
  438         por     %mm7,%mm0
  439         movq    %mm2,-72(%edi)
  440         psrlq   $4,%mm2
  441         movq    %mm5,56(%edi)
  442         movq    %mm5,%mm6
  443         movq    %mm0,-80(%ebp)
  444         psrlq   $4,%mm5
  445         movq    %mm3,48(%ebp)
  446         shll    $4,%edx
  447         movb    %dl,8(%esp)
  448         movl    24(%ebx),%edx
  449         movq    24(%ebx),%mm0
  450         psllq   $60,%mm6
  451         movq    16(%ebx),%mm3
  452         por     %mm6,%mm2
  453         movq    %mm1,-64(%edi)
  454         psrlq   $4,%mm1
  455         movq    %mm4,64(%edi)
  456         movq    %mm4,%mm7
  457         movq    %mm2,-72(%ebp)
  458         psrlq   $4,%mm4
  459         movq    %mm5,56(%ebp)
  460         shll    $4,%edx
  461         movb    %dl,9(%esp)
  462         movl    40(%ebx),%edx
  463         movq    40(%ebx),%mm2
  464         psllq   $60,%mm7
  465         movq    32(%ebx),%mm5
  466         por     %mm7,%mm1
  467         movq    %mm0,-56(%edi)
  468         psrlq   $4,%mm0
  469         movq    %mm3,72(%edi)
  470         movq    %mm3,%mm6
  471         movq    %mm1,-64(%ebp)
  472         psrlq   $4,%mm3
  473         movq    %mm4,64(%ebp)
  474         shll    $4,%edx
  475         movb    %dl,10(%esp)
  476         movl    56(%ebx),%edx
  477         movq    56(%ebx),%mm1
  478         psllq   $60,%mm6
  479         movq    48(%ebx),%mm4
  480         por     %mm6,%mm0
  481         movq    %mm2,-48(%edi)
  482         psrlq   $4,%mm2
  483         movq    %mm5,80(%edi)
  484         movq    %mm5,%mm7
  485         movq    %mm0,-56(%ebp)
  486         psrlq   $4,%mm5
  487         movq    %mm3,72(%ebp)
  488         shll    $4,%edx
  489         movb    %dl,11(%esp)
  490         movl    72(%ebx),%edx
  491         movq    72(%ebx),%mm0
  492         psllq   $60,%mm7
  493         movq    64(%ebx),%mm3
  494         por     %mm7,%mm2
  495         movq    %mm1,-40(%edi)
  496         psrlq   $4,%mm1
  497         movq    %mm4,88(%edi)
  498         movq    %mm4,%mm6
  499         movq    %mm2,-48(%ebp)
  500         psrlq   $4,%mm4
  501         movq    %mm5,80(%ebp)
  502         shll    $4,%edx
  503         movb    %dl,12(%esp)
  504         movl    88(%ebx),%edx
  505         movq    88(%ebx),%mm2
  506         psllq   $60,%mm6
  507         movq    80(%ebx),%mm5
  508         por     %mm6,%mm1
  509         movq    %mm0,-32(%edi)
  510         psrlq   $4,%mm0
  511         movq    %mm3,96(%edi)
  512         movq    %mm3,%mm7
  513         movq    %mm1,-40(%ebp)
  514         psrlq   $4,%mm3
  515         movq    %mm4,88(%ebp)
  516         shll    $4,%edx
  517         movb    %dl,13(%esp)
  518         movl    104(%ebx),%edx
  519         movq    104(%ebx),%mm1
  520         psllq   $60,%mm7
  521         movq    96(%ebx),%mm4
  522         por     %mm7,%mm0
  523         movq    %mm2,-24(%edi)
  524         psrlq   $4,%mm2
  525         movq    %mm5,104(%edi)
  526         movq    %mm5,%mm6
  527         movq    %mm0,-32(%ebp)
  528         psrlq   $4,%mm5
  529         movq    %mm3,96(%ebp)
  530         shll    $4,%edx
  531         movb    %dl,14(%esp)
  532         movl    120(%ebx),%edx
  533         movq    120(%ebx),%mm0
  534         psllq   $60,%mm6
  535         movq    112(%ebx),%mm3
  536         por     %mm6,%mm2
  537         movq    %mm1,-16(%edi)
  538         psrlq   $4,%mm1
  539         movq    %mm4,112(%edi)
  540         movq    %mm4,%mm7
  541         movq    %mm2,-24(%ebp)
  542         psrlq   $4,%mm4
  543         movq    %mm5,104(%ebp)
  544         shll    $4,%edx
  545         movb    %dl,15(%esp)
  546         psllq   $60,%mm7
  547         por     %mm7,%mm1
  548         movq    %mm0,-8(%edi)
  549         psrlq   $4,%mm0
  550         movq    %mm3,120(%edi)
  551         movq    %mm3,%mm6
  552         movq    %mm1,-16(%ebp)
  553         psrlq   $4,%mm3
  554         movq    %mm4,112(%ebp)
  555         psllq   $60,%mm6
  556         por     %mm6,%mm0
  557         movq    %mm0,-8(%ebp)
  558         movq    %mm3,120(%ebp)
  559         movq    (%eax),%mm6
  560         movl    8(%eax),%ebx
  561         movl    12(%eax),%edx
  562 .align  16
  563 .L009outer:
  564         xorl    12(%ecx),%edx
  565         xorl    8(%ecx),%ebx
  566         pxor    (%ecx),%mm6
  567         leal    16(%ecx),%ecx
  568         movl    %ebx,536(%esp)
  569         movq    %mm6,528(%esp)
  570         movl    %ecx,548(%esp)
  571         xorl    %eax,%eax
  572         roll    $8,%edx
  573         movb    %dl,%al
  574         movl    %eax,%ebp
  575         andb    $15,%al
  576         shrl    $4,%ebp
  577         pxor    %mm0,%mm0
  578         roll    $8,%edx
  579         pxor    %mm1,%mm1
  580         pxor    %mm2,%mm2
  581         movq    16(%esp,%eax,8),%mm7
  582         movq    144(%esp,%eax,8),%mm6
  583         movb    %dl,%al
  584         movd    %mm7,%ebx
  585         psrlq   $8,%mm7
  586         movq    %mm6,%mm3
  587         movl    %eax,%edi
  588         psrlq   $8,%mm6
  589         pxor    272(%esp,%ebp,8),%mm7
  590         andb    $15,%al
  591         psllq   $56,%mm3
  592         shrl    $4,%edi
  593         pxor    16(%esp,%eax,8),%mm7
  594         roll    $8,%edx
  595         pxor    144(%esp,%eax,8),%mm6
  596         pxor    %mm3,%mm7
  597         pxor    400(%esp,%ebp,8),%mm6
  598         xorb    (%esp,%ebp,1),%bl
  599         movb    %dl,%al
  600         movd    %mm7,%ecx
  601         movzbl  %bl,%ebx
  602         psrlq   $8,%mm7
  603         movq    %mm6,%mm3
  604         movl    %eax,%ebp
  605         psrlq   $8,%mm6
  606         pxor    272(%esp,%edi,8),%mm7
  607         andb    $15,%al
  608         psllq   $56,%mm3
  609         shrl    $4,%ebp
  610         pinsrw  $2,(%esi,%ebx,2),%mm2
  611         pxor    16(%esp,%eax,8),%mm7
  612         roll    $8,%edx
  613         pxor    144(%esp,%eax,8),%mm6
  614         pxor    %mm3,%mm7
  615         pxor    400(%esp,%edi,8),%mm6
  616         xorb    (%esp,%edi,1),%cl
  617         movb    %dl,%al
  618         movl    536(%esp),%edx
  619         movd    %mm7,%ebx
  620         movzbl  %cl,%ecx
  621         psrlq   $8,%mm7
  622         movq    %mm6,%mm3
  623         movl    %eax,%edi
  624         psrlq   $8,%mm6
  625         pxor    272(%esp,%ebp,8),%mm7
  626         andb    $15,%al
  627         psllq   $56,%mm3
  628         pxor    %mm2,%mm6
  629         shrl    $4,%edi
  630         pinsrw  $2,(%esi,%ecx,2),%mm1
  631         pxor    16(%esp,%eax,8),%mm7
  632         roll    $8,%edx
  633         pxor    144(%esp,%eax,8),%mm6
  634         pxor    %mm3,%mm7
  635         pxor    400(%esp,%ebp,8),%mm6
  636         xorb    (%esp,%ebp,1),%bl
  637         movb    %dl,%al
  638         movd    %mm7,%ecx
  639         movzbl  %bl,%ebx
  640         psrlq   $8,%mm7
  641         movq    %mm6,%mm3
  642         movl    %eax,%ebp
  643         psrlq   $8,%mm6
  644         pxor    272(%esp,%edi,8),%mm7
  645         andb    $15,%al
  646         psllq   $56,%mm3
  647         pxor    %mm1,%mm6
  648         shrl    $4,%ebp
  649         pinsrw  $2,(%esi,%ebx,2),%mm0
  650         pxor    16(%esp,%eax,8),%mm7
  651         roll    $8,%edx
  652         pxor    144(%esp,%eax,8),%mm6
  653         pxor    %mm3,%mm7
  654         pxor    400(%esp,%edi,8),%mm6
  655         xorb    (%esp,%edi,1),%cl
  656         movb    %dl,%al
  657         movd    %mm7,%ebx
  658         movzbl  %cl,%ecx
  659         psrlq   $8,%mm7
  660         movq    %mm6,%mm3
  661         movl    %eax,%edi
  662         psrlq   $8,%mm6
  663         pxor    272(%esp,%ebp,8),%mm7
  664         andb    $15,%al
  665         psllq   $56,%mm3
  666         pxor    %mm0,%mm6
  667         shrl    $4,%edi
  668         pinsrw  $2,(%esi,%ecx,2),%mm2
  669         pxor    16(%esp,%eax,8),%mm7
  670         roll    $8,%edx
  671         pxor    144(%esp,%eax,8),%mm6
  672         pxor    %mm3,%mm7
  673         pxor    400(%esp,%ebp,8),%mm6
  674         xorb    (%esp,%ebp,1),%bl
  675         movb    %dl,%al
  676         movd    %mm7,%ecx
  677         movzbl  %bl,%ebx
  678         psrlq   $8,%mm7
  679         movq    %mm6,%mm3
  680         movl    %eax,%ebp
  681         psrlq   $8,%mm6
  682         pxor    272(%esp,%edi,8),%mm7
  683         andb    $15,%al
  684         psllq   $56,%mm3
  685         pxor    %mm2,%mm6
  686         shrl    $4,%ebp
  687         pinsrw  $2,(%esi,%ebx,2),%mm1
  688         pxor    16(%esp,%eax,8),%mm7
  689         roll    $8,%edx
  690         pxor    144(%esp,%eax,8),%mm6
  691         pxor    %mm3,%mm7
  692         pxor    400(%esp,%edi,8),%mm6
  693         xorb    (%esp,%edi,1),%cl
  694         movb    %dl,%al
  695         movl    532(%esp),%edx
  696         movd    %mm7,%ebx
  697         movzbl  %cl,%ecx
  698         psrlq   $8,%mm7
  699         movq    %mm6,%mm3
  700         movl    %eax,%edi
  701         psrlq   $8,%mm6
  702         pxor    272(%esp,%ebp,8),%mm7
  703         andb    $15,%al
  704         psllq   $56,%mm3
  705         pxor    %mm1,%mm6
  706         shrl    $4,%edi
  707         pinsrw  $2,(%esi,%ecx,2),%mm0
  708         pxor    16(%esp,%eax,8),%mm7
  709         roll    $8,%edx
  710         pxor    144(%esp,%eax,8),%mm6
  711         pxor    %mm3,%mm7
  712         pxor    400(%esp,%ebp,8),%mm6
  713         xorb    (%esp,%ebp,1),%bl
  714         movb    %dl,%al
  715         movd    %mm7,%ecx
  716         movzbl  %bl,%ebx
  717         psrlq   $8,%mm7
  718         movq    %mm6,%mm3
  719         movl    %eax,%ebp
  720         psrlq   $8,%mm6
  721         pxor    272(%esp,%edi,8),%mm7
  722         andb    $15,%al
  723         psllq   $56,%mm3
  724         pxor    %mm0,%mm6
  725         shrl    $4,%ebp
  726         pinsrw  $2,(%esi,%ebx,2),%mm2
  727         pxor    16(%esp,%eax,8),%mm7
  728         roll    $8,%edx
  729         pxor    144(%esp,%eax,8),%mm6
  730         pxor    %mm3,%mm7
  731         pxor    400(%esp,%edi,8),%mm6
  732         xorb    (%esp,%edi,1),%cl
  733         movb    %dl,%al
  734         movd    %mm7,%ebx
  735         movzbl  %cl,%ecx
  736         psrlq   $8,%mm7
  737         movq    %mm6,%mm3
  738         movl    %eax,%edi
  739         psrlq   $8,%mm6
  740         pxor    272(%esp,%ebp,8),%mm7
  741         andb    $15,%al
  742         psllq   $56,%mm3
  743         pxor    %mm2,%mm6
  744         shrl    $4,%edi
  745         pinsrw  $2,(%esi,%ecx,2),%mm1
  746         pxor    16(%esp,%eax,8),%mm7
  747         roll    $8,%edx
  748         pxor    144(%esp,%eax,8),%mm6
  749         pxor    %mm3,%mm7
  750         pxor    400(%esp,%ebp,8),%mm6
  751         xorb    (%esp,%ebp,1),%bl
  752         movb    %dl,%al
  753         movd    %mm7,%ecx
  754         movzbl  %bl,%ebx
  755         psrlq   $8,%mm7
  756         movq    %mm6,%mm3
  757         movl    %eax,%ebp
  758         psrlq   $8,%mm6
  759         pxor    272(%esp,%edi,8),%mm7
  760         andb    $15,%al
  761         psllq   $56,%mm3
  762         pxor    %mm1,%mm6
  763         shrl    $4,%ebp
  764         pinsrw  $2,(%esi,%ebx,2),%mm0
  765         pxor    16(%esp,%eax,8),%mm7
  766         roll    $8,%edx
  767         pxor    144(%esp,%eax,8),%mm6
  768         pxor    %mm3,%mm7
  769         pxor    400(%esp,%edi,8),%mm6
  770         xorb    (%esp,%edi,1),%cl
  771         movb    %dl,%al
  772         movl    528(%esp),%edx
  773         movd    %mm7,%ebx
  774         movzbl  %cl,%ecx
  775         psrlq   $8,%mm7
  776         movq    %mm6,%mm3
  777         movl    %eax,%edi
  778         psrlq   $8,%mm6
  779         pxor    272(%esp,%ebp,8),%mm7
  780         andb    $15,%al
  781         psllq   $56,%mm3
  782         pxor    %mm0,%mm6
  783         shrl    $4,%edi
  784         pinsrw  $2,(%esi,%ecx,2),%mm2
  785         pxor    16(%esp,%eax,8),%mm7
  786         roll    $8,%edx
  787         pxor    144(%esp,%eax,8),%mm6
  788         pxor    %mm3,%mm7
  789         pxor    400(%esp,%ebp,8),%mm6
  790         xorb    (%esp,%ebp,1),%bl
  791         movb    %dl,%al
  792         movd    %mm7,%ecx
  793         movzbl  %bl,%ebx
  794         psrlq   $8,%mm7
  795         movq    %mm6,%mm3
  796         movl    %eax,%ebp
  797         psrlq   $8,%mm6
  798         pxor    272(%esp,%edi,8),%mm7
  799         andb    $15,%al
  800         psllq   $56,%mm3
  801         pxor    %mm2,%mm6
  802         shrl    $4,%ebp
  803         pinsrw  $2,(%esi,%ebx,2),%mm1
  804         pxor    16(%esp,%eax,8),%mm7
  805         roll    $8,%edx
  806         pxor    144(%esp,%eax,8),%mm6
  807         pxor    %mm3,%mm7
  808         pxor    400(%esp,%edi,8),%mm6
  809         xorb    (%esp,%edi,1),%cl
  810         movb    %dl,%al
  811         movd    %mm7,%ebx
  812         movzbl  %cl,%ecx
  813         psrlq   $8,%mm7
  814         movq    %mm6,%mm3
  815         movl    %eax,%edi
  816         psrlq   $8,%mm6
  817         pxor    272(%esp,%ebp,8),%mm7
  818         andb    $15,%al
  819         psllq   $56,%mm3
  820         pxor    %mm1,%mm6
  821         shrl    $4,%edi
  822         pinsrw  $2,(%esi,%ecx,2),%mm0
  823         pxor    16(%esp,%eax,8),%mm7
  824         roll    $8,%edx
  825         pxor    144(%esp,%eax,8),%mm6
  826         pxor    %mm3,%mm7
  827         pxor    400(%esp,%ebp,8),%mm6
  828         xorb    (%esp,%ebp,1),%bl
  829         movb    %dl,%al
  830         movd    %mm7,%ecx
  831         movzbl  %bl,%ebx
  832         psrlq   $8,%mm7
  833         movq    %mm6,%mm3
  834         movl    %eax,%ebp
  835         psrlq   $8,%mm6
  836         pxor    272(%esp,%edi,8),%mm7
  837         andb    $15,%al
  838         psllq   $56,%mm3
  839         pxor    %mm0,%mm6
  840         shrl    $4,%ebp
  841         pinsrw  $2,(%esi,%ebx,2),%mm2
  842         pxor    16(%esp,%eax,8),%mm7
  843         roll    $8,%edx
  844         pxor    144(%esp,%eax,8),%mm6
  845         pxor    %mm3,%mm7
  846         pxor    400(%esp,%edi,8),%mm6
  847         xorb    (%esp,%edi,1),%cl
  848         movb    %dl,%al
  849         movl    524(%esp),%edx
  850         movd    %mm7,%ebx
  851         movzbl  %cl,%ecx
  852         psrlq   $8,%mm7
  853         movq    %mm6,%mm3
  854         movl    %eax,%edi
  855         psrlq   $8,%mm6
  856         pxor    272(%esp,%ebp,8),%mm7
  857         andb    $15,%al
  858         psllq   $56,%mm3
  859         pxor    %mm2,%mm6
  860         shrl    $4,%edi
  861         pinsrw  $2,(%esi,%ecx,2),%mm1
  862         pxor    16(%esp,%eax,8),%mm7
  863         pxor    144(%esp,%eax,8),%mm6
  864         xorb    (%esp,%ebp,1),%bl
  865         pxor    %mm3,%mm7
  866         pxor    400(%esp,%ebp,8),%mm6
  867         movzbl  %bl,%ebx
  868         pxor    %mm2,%mm2
  869         psllq   $4,%mm1
  870         movd    %mm7,%ecx
  871         psrlq   $4,%mm7
  872         movq    %mm6,%mm3
  873         psrlq   $4,%mm6
  874         shll    $4,%ecx
  875         pxor    16(%esp,%edi,8),%mm7
  876         psllq   $60,%mm3
  877         movzbl  %cl,%ecx
  878         pxor    %mm3,%mm7
  879         pxor    144(%esp,%edi,8),%mm6
  880         pinsrw  $2,(%esi,%ebx,2),%mm0
  881         pxor    %mm1,%mm6
  882         movd    %mm7,%edx
  883         pinsrw  $3,(%esi,%ecx,2),%mm2
  884         psllq   $12,%mm0
  885         pxor    %mm0,%mm6
  886         psrlq   $32,%mm7
  887         pxor    %mm2,%mm6
  888         movl    548(%esp),%ecx
  889         movd    %mm7,%ebx
  890         movq    %mm6,%mm3
  891         psllw   $8,%mm6
  892         psrlw   $8,%mm3
  893         por     %mm3,%mm6
  894         bswap   %edx
  895         pshufw  $27,%mm6,%mm6
  896         bswap   %ebx
  897         cmpl    552(%esp),%ecx
  898         jne     .L009outer
  899         movl    544(%esp),%eax
  900         movl    %edx,12(%eax)
  901         movl    %ebx,8(%eax)
  902         movq    %mm6,(%eax)
  903         movl    556(%esp),%esp
  904         emms
  905         popl    %edi
  906         popl    %esi
  907         popl    %ebx
  908         popl    %ebp
  909         ret
  910 .size   gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin
  911 .globl  gcm_init_clmul
  912 .type   gcm_init_clmul,@function
  913 .align  16
  914 gcm_init_clmul:
  915 .L_gcm_init_clmul_begin:
  916         movl    4(%esp),%edx
  917         movl    8(%esp),%eax
  918         call    .L010pic
  919 .L010pic:
  920         popl    %ecx
  921         leal    .Lbswap-.L010pic(%ecx),%ecx
  922         movdqu  (%eax),%xmm2
  923         pshufd  $78,%xmm2,%xmm2
  924         pshufd  $255,%xmm2,%xmm4
  925         movdqa  %xmm2,%xmm3
  926         psllq   $1,%xmm2
  927         pxor    %xmm5,%xmm5
  928         psrlq   $63,%xmm3
  929         pcmpgtd %xmm4,%xmm5
  930         pslldq  $8,%xmm3
  931         por     %xmm3,%xmm2
  932         pand    16(%ecx),%xmm5
  933         pxor    %xmm5,%xmm2
  934         movdqa  %xmm2,%xmm0
  935         movdqa  %xmm0,%xmm1
  936         pshufd  $78,%xmm0,%xmm3
  937         pshufd  $78,%xmm2,%xmm4
  938         pxor    %xmm0,%xmm3
  939         pxor    %xmm2,%xmm4
  940 .byte   102,15,58,68,194,0
  941 .byte   102,15,58,68,202,17
  942 .byte   102,15,58,68,220,0
  943         xorps   %xmm0,%xmm3
  944         xorps   %xmm1,%xmm3
  945         movdqa  %xmm3,%xmm4
  946         psrldq  $8,%xmm3
  947         pslldq  $8,%xmm4
  948         pxor    %xmm3,%xmm1
  949         pxor    %xmm4,%xmm0
  950         movdqa  %xmm0,%xmm4
  951         movdqa  %xmm0,%xmm3
  952         psllq   $5,%xmm0
  953         pxor    %xmm0,%xmm3
  954         psllq   $1,%xmm0
  955         pxor    %xmm3,%xmm0
  956         psllq   $57,%xmm0
  957         movdqa  %xmm0,%xmm3
  958         pslldq  $8,%xmm0
  959         psrldq  $8,%xmm3
  960         pxor    %xmm4,%xmm0
  961         pxor    %xmm3,%xmm1
  962         movdqa  %xmm0,%xmm4
  963         psrlq   $1,%xmm0
  964         pxor    %xmm4,%xmm1
  965         pxor    %xmm0,%xmm4
  966         psrlq   $5,%xmm0
  967         pxor    %xmm4,%xmm0
  968         psrlq   $1,%xmm0
  969         pxor    %xmm1,%xmm0
  970         pshufd  $78,%xmm2,%xmm3
  971         pshufd  $78,%xmm0,%xmm4
  972         pxor    %xmm2,%xmm3
  973         movdqu  %xmm2,(%edx)
  974         pxor    %xmm0,%xmm4
  975         movdqu  %xmm0,16(%edx)
  976 .byte   102,15,58,15,227,8
  977         movdqu  %xmm4,32(%edx)
  978         ret
  979 .size   gcm_init_clmul,.-.L_gcm_init_clmul_begin
  980 .globl  gcm_gmult_clmul
  981 .type   gcm_gmult_clmul,@function
  982 .align  16
  983 gcm_gmult_clmul:
  984 .L_gcm_gmult_clmul_begin:
  985         movl    4(%esp),%eax
  986         movl    8(%esp),%edx
  987         call    .L011pic
  988 .L011pic:
  989         popl    %ecx
  990         leal    .Lbswap-.L011pic(%ecx),%ecx
  991         movdqu  (%eax),%xmm0
  992         movdqa  (%ecx),%xmm5
  993         movups  (%edx),%xmm2
  994 .byte   102,15,56,0,197
  995         movups  32(%edx),%xmm4
  996         movdqa  %xmm0,%xmm1
  997         pshufd  $78,%xmm0,%xmm3
  998         pxor    %xmm0,%xmm3
  999 .byte   102,15,58,68,194,0
 1000 .byte   102,15,58,68,202,17
 1001 .byte   102,15,58,68,220,0
 1002         xorps   %xmm0,%xmm3
 1003         xorps   %xmm1,%xmm3
 1004         movdqa  %xmm3,%xmm4
 1005         psrldq  $8,%xmm3
 1006         pslldq  $8,%xmm4
 1007         pxor    %xmm3,%xmm1
 1008         pxor    %xmm4,%xmm0
 1009         movdqa  %xmm0,%xmm4
 1010         movdqa  %xmm0,%xmm3
 1011         psllq   $5,%xmm0
 1012         pxor    %xmm0,%xmm3
 1013         psllq   $1,%xmm0
 1014         pxor    %xmm3,%xmm0
 1015         psllq   $57,%xmm0
 1016         movdqa  %xmm0,%xmm3
 1017         pslldq  $8,%xmm0
 1018         psrldq  $8,%xmm3
 1019         pxor    %xmm4,%xmm0
 1020         pxor    %xmm3,%xmm1
 1021         movdqa  %xmm0,%xmm4
 1022         psrlq   $1,%xmm0
 1023         pxor    %xmm4,%xmm1
 1024         pxor    %xmm0,%xmm4
 1025         psrlq   $5,%xmm0
 1026         pxor    %xmm4,%xmm0
 1027         psrlq   $1,%xmm0
 1028         pxor    %xmm1,%xmm0
 1029 .byte   102,15,56,0,197
 1030         movdqu  %xmm0,(%eax)
 1031         ret
 1032 .size   gcm_gmult_clmul,.-.L_gcm_gmult_clmul_begin
 1033 .globl  gcm_ghash_clmul
 1034 .type   gcm_ghash_clmul,@function
 1035 .align  16
 1036 gcm_ghash_clmul:
 1037 .L_gcm_ghash_clmul_begin:
 1038         pushl   %ebp
 1039         pushl   %ebx
 1040         pushl   %esi
 1041         pushl   %edi
 1042         movl    20(%esp),%eax
 1043         movl    24(%esp),%edx
 1044         movl    28(%esp),%esi
 1045         movl    32(%esp),%ebx
 1046         call    .L012pic
 1047 .L012pic:
 1048         popl    %ecx
 1049         leal    .Lbswap-.L012pic(%ecx),%ecx
 1050         movdqu  (%eax),%xmm0
 1051         movdqa  (%ecx),%xmm5
 1052         movdqu  (%edx),%xmm2
 1053 .byte   102,15,56,0,197
 1054         subl    $16,%ebx
 1055         jz      .L013odd_tail
 1056         movdqu  (%esi),%xmm3
 1057         movdqu  16(%esi),%xmm6
 1058 .byte   102,15,56,0,221
 1059 .byte   102,15,56,0,245
 1060         movdqu  32(%edx),%xmm5
 1061         pxor    %xmm3,%xmm0
 1062         pshufd  $78,%xmm6,%xmm3
 1063         movdqa  %xmm6,%xmm7
 1064         pxor    %xmm6,%xmm3
 1065         leal    32(%esi),%esi
 1066 .byte   102,15,58,68,242,0
 1067 .byte   102,15,58,68,250,17
 1068 .byte   102,15,58,68,221,0
 1069         movups  16(%edx),%xmm2
 1070         nop
 1071         subl    $32,%ebx
 1072         jbe     .L014even_tail
 1073         jmp     .L015mod_loop
 1074 .align  32
 1075 .L015mod_loop:
 1076         pshufd  $78,%xmm0,%xmm4
 1077         movdqa  %xmm0,%xmm1
 1078         pxor    %xmm0,%xmm4
 1079         nop
 1080 .byte   102,15,58,68,194,0
 1081 .byte   102,15,58,68,202,17
 1082 .byte   102,15,58,68,229,16
 1083         movups  (%edx),%xmm2
 1084         xorps   %xmm6,%xmm0
 1085         movdqa  (%ecx),%xmm5
 1086         xorps   %xmm7,%xmm1
 1087         movdqu  (%esi),%xmm7
 1088         pxor    %xmm0,%xmm3
 1089         movdqu  16(%esi),%xmm6
 1090         pxor    %xmm1,%xmm3
 1091 .byte   102,15,56,0,253
 1092         pxor    %xmm3,%xmm4
 1093         movdqa  %xmm4,%xmm3
 1094         psrldq  $8,%xmm4
 1095         pslldq  $8,%xmm3
 1096         pxor    %xmm4,%xmm1
 1097         pxor    %xmm3,%xmm0
 1098 .byte   102,15,56,0,245
 1099         pxor    %xmm7,%xmm1
 1100         movdqa  %xmm6,%xmm7
 1101         movdqa  %xmm0,%xmm4
 1102         movdqa  %xmm0,%xmm3
 1103         psllq   $5,%xmm0
 1104         pxor    %xmm0,%xmm3
 1105         psllq   $1,%xmm0
 1106         pxor    %xmm3,%xmm0
 1107 .byte   102,15,58,68,242,0
 1108         movups  32(%edx),%xmm5
 1109         psllq   $57,%xmm0
 1110         movdqa  %xmm0,%xmm3
 1111         pslldq  $8,%xmm0
 1112         psrldq  $8,%xmm3
 1113         pxor    %xmm4,%xmm0
 1114         pxor    %xmm3,%xmm1
 1115         pshufd  $78,%xmm7,%xmm3
 1116         movdqa  %xmm0,%xmm4
 1117         psrlq   $1,%xmm0
 1118         pxor    %xmm7,%xmm3
 1119         pxor    %xmm4,%xmm1
 1120 .byte   102,15,58,68,250,17
 1121         movups  16(%edx),%xmm2
 1122         pxor    %xmm0,%xmm4
 1123         psrlq   $5,%xmm0
 1124         pxor    %xmm4,%xmm0
 1125         psrlq   $1,%xmm0
 1126         pxor    %xmm1,%xmm0
 1127 .byte   102,15,58,68,221,0
 1128         leal    32(%esi),%esi
 1129         subl    $32,%ebx
 1130         ja      .L015mod_loop
 1131 .L014even_tail:
 1132         pshufd  $78,%xmm0,%xmm4
 1133         movdqa  %xmm0,%xmm1
 1134         pxor    %xmm0,%xmm4
 1135 .byte   102,15,58,68,194,0
 1136 .byte   102,15,58,68,202,17
 1137 .byte   102,15,58,68,229,16
 1138         movdqa  (%ecx),%xmm5
 1139         xorps   %xmm6,%xmm0
 1140         xorps   %xmm7,%xmm1
 1141         pxor    %xmm0,%xmm3
 1142         pxor    %xmm1,%xmm3
 1143         pxor    %xmm3,%xmm4
 1144         movdqa  %xmm4,%xmm3
 1145         psrldq  $8,%xmm4
 1146         pslldq  $8,%xmm3
 1147         pxor    %xmm4,%xmm1
 1148         pxor    %xmm3,%xmm0
 1149         movdqa  %xmm0,%xmm4
 1150         movdqa  %xmm0,%xmm3
 1151         psllq   $5,%xmm0
 1152         pxor    %xmm0,%xmm3
 1153         psllq   $1,%xmm0
 1154         pxor    %xmm3,%xmm0
 1155         psllq   $57,%xmm0
 1156         movdqa  %xmm0,%xmm3
 1157         pslldq  $8,%xmm0
 1158         psrldq  $8,%xmm3
 1159         pxor    %xmm4,%xmm0
 1160         pxor    %xmm3,%xmm1
 1161         movdqa  %xmm0,%xmm4
 1162         psrlq   $1,%xmm0
 1163         pxor    %xmm4,%xmm1
 1164         pxor    %xmm0,%xmm4
 1165         psrlq   $5,%xmm0
 1166         pxor    %xmm4,%xmm0
 1167         psrlq   $1,%xmm0
 1168         pxor    %xmm1,%xmm0
 1169         testl   %ebx,%ebx
 1170         jnz     .L016done
 1171         movups  (%edx),%xmm2
 1172 .L013odd_tail:
 1173         movdqu  (%esi),%xmm3
 1174 .byte   102,15,56,0,221
 1175         pxor    %xmm3,%xmm0
 1176         movdqa  %xmm0,%xmm1
 1177         pshufd  $78,%xmm0,%xmm3
 1178         pshufd  $78,%xmm2,%xmm4
 1179         pxor    %xmm0,%xmm3
 1180         pxor    %xmm2,%xmm4
 1181 .byte   102,15,58,68,194,0
 1182 .byte   102,15,58,68,202,17
 1183 .byte   102,15,58,68,220,0
 1184         xorps   %xmm0,%xmm3
 1185         xorps   %xmm1,%xmm3
 1186         movdqa  %xmm3,%xmm4
 1187         psrldq  $8,%xmm3
 1188         pslldq  $8,%xmm4
 1189         pxor    %xmm3,%xmm1
 1190         pxor    %xmm4,%xmm0
 1191         movdqa  %xmm0,%xmm4
 1192         movdqa  %xmm0,%xmm3
 1193         psllq   $5,%xmm0
 1194         pxor    %xmm0,%xmm3
 1195         psllq   $1,%xmm0
 1196         pxor    %xmm3,%xmm0
 1197         psllq   $57,%xmm0
 1198         movdqa  %xmm0,%xmm3
 1199         pslldq  $8,%xmm0
 1200         psrldq  $8,%xmm3
 1201         pxor    %xmm4,%xmm0
 1202         pxor    %xmm3,%xmm1
 1203         movdqa  %xmm0,%xmm4
 1204         psrlq   $1,%xmm0
 1205         pxor    %xmm4,%xmm1
 1206         pxor    %xmm0,%xmm4
 1207         psrlq   $5,%xmm0
 1208         pxor    %xmm4,%xmm0
 1209         psrlq   $1,%xmm0
 1210         pxor    %xmm1,%xmm0
 1211 .L016done:
 1212 .byte   102,15,56,0,197
 1213         movdqu  %xmm0,(%eax)
 1214         popl    %edi
 1215         popl    %esi
 1216         popl    %ebx
 1217         popl    %ebp
 1218         ret
 1219 .size   gcm_ghash_clmul,.-.L_gcm_ghash_clmul_begin
 1220 .align  64
 1221 .Lbswap:
 1222 .byte   15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
 1223 .byte   1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194
 1224 .align  64
 1225 .Lrem_8bit:
 1226 .value  0,450,900,582,1800,1738,1164,1358
 1227 .value  3600,4050,3476,3158,2328,2266,2716,2910
 1228 .value  7200,7650,8100,7782,6952,6890,6316,6510
 1229 .value  4656,5106,4532,4214,5432,5370,5820,6014
 1230 .value  14400,14722,15300,14854,16200,16010,15564,15630
 1231 .value  13904,14226,13780,13334,12632,12442,13020,13086
 1232 .value  9312,9634,10212,9766,9064,8874,8428,8494
 1233 .value  10864,11186,10740,10294,11640,11450,12028,12094
 1234 .value  28800,28994,29444,29382,30600,30282,29708,30158
 1235 .value  32400,32594,32020,31958,31128,30810,31260,31710
 1236 .value  27808,28002,28452,28390,27560,27242,26668,27118
 1237 .value  25264,25458,24884,24822,26040,25722,26172,26622
 1238 .value  18624,18690,19268,19078,20424,19978,19532,19854
 1239 .value  18128,18194,17748,17558,16856,16410,16988,17310
 1240 .value  21728,21794,22372,22182,21480,21034,20588,20910
 1241 .value  23280,23346,22900,22710,24056,23610,24188,24510
 1242 .value  57600,57538,57988,58182,58888,59338,58764,58446
 1243 .value  61200,61138,60564,60758,59416,59866,60316,59998
 1244 .value  64800,64738,65188,65382,64040,64490,63916,63598
 1245 .value  62256,62194,61620,61814,62520,62970,63420,63102
 1246 .value  55616,55426,56004,56070,56904,57226,56780,56334
 1247 .value  55120,54930,54484,54550,53336,53658,54236,53790
 1248 .value  50528,50338,50916,50982,49768,50090,49644,49198
 1249 .value  52080,51890,51444,51510,52344,52666,53244,52798
 1250 .value  37248,36930,37380,37830,38536,38730,38156,38094
 1251 .value  40848,40530,39956,40406,39064,39258,39708,39646
 1252 .value  36256,35938,36388,36838,35496,35690,35116,35054
 1253 .value  33712,33394,32820,33270,33976,34170,34620,34558
 1254 .value  43456,43010,43588,43910,44744,44810,44364,44174
 1255 .value  42960,42514,42068,42390,41176,41242,41820,41630
 1256 .value  46560,46114,46692,47014,45800,45866,45420,45230
 1257 .value  48112,47666,47220,47542,48376,48442,49020,48830
 1258 .align  64
 1259 .Lrem_4bit:
 1260 .long   0,0,0,471859200,0,943718400,0,610271232
 1261 .long   0,1887436800,0,1822425088,0,1220542464,0,1423966208
 1262 .long   0,3774873600,0,4246732800,0,3644850176,0,3311403008
 1263 .long   0,2441084928,0,2376073216,0,2847932416,0,3051356160
 1264 .byte   71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
 1265 .byte   82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
 1266 .byte   112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
 1267 .byte   0
 1268 #else
 1269 .text
 1270 .globl  gcm_gmult_4bit_x86
 1271 .type   gcm_gmult_4bit_x86,@function
 1272 .align  16
 1273 gcm_gmult_4bit_x86:
 1274 .L_gcm_gmult_4bit_x86_begin:
 1275         pushl   %ebp
 1276         pushl   %ebx
 1277         pushl   %esi
 1278         pushl   %edi
 1279         subl    $84,%esp
 1280         movl    104(%esp),%edi
 1281         movl    108(%esp),%esi
 1282         movl    (%edi),%ebp
 1283         movl    4(%edi),%edx
 1284         movl    8(%edi),%ecx
 1285         movl    12(%edi),%ebx
 1286         movl    $0,16(%esp)
 1287         movl    $471859200,20(%esp)
 1288         movl    $943718400,24(%esp)
 1289         movl    $610271232,28(%esp)
 1290         movl    $1887436800,32(%esp)
 1291         movl    $1822425088,36(%esp)
 1292         movl    $1220542464,40(%esp)
 1293         movl    $1423966208,44(%esp)
 1294         movl    $3774873600,48(%esp)
 1295         movl    $4246732800,52(%esp)
 1296         movl    $3644850176,56(%esp)
 1297         movl    $3311403008,60(%esp)
 1298         movl    $2441084928,64(%esp)
 1299         movl    $2376073216,68(%esp)
 1300         movl    $2847932416,72(%esp)
 1301         movl    $3051356160,76(%esp)
 1302         movl    %ebp,(%esp)
 1303         movl    %edx,4(%esp)
 1304         movl    %ecx,8(%esp)
 1305         movl    %ebx,12(%esp)
 1306         shrl    $20,%ebx
 1307         andl    $240,%ebx
 1308         movl    4(%esi,%ebx,1),%ebp
 1309         movl    (%esi,%ebx,1),%edx
 1310         movl    12(%esi,%ebx,1),%ecx
 1311         movl    8(%esi,%ebx,1),%ebx
 1312         xorl    %eax,%eax
 1313         movl    $15,%edi
 1314         jmp     .L000x86_loop
 1315 .align  16
 1316 .L000x86_loop:
 1317         movb    %bl,%al
 1318         shrdl   $4,%ecx,%ebx
 1319         andb    $15,%al
 1320         shrdl   $4,%edx,%ecx
 1321         shrdl   $4,%ebp,%edx
 1322         shrl    $4,%ebp
 1323         xorl    16(%esp,%eax,4),%ebp
 1324         movb    (%esp,%edi,1),%al
 1325         andb    $240,%al
 1326         xorl    8(%esi,%eax,1),%ebx
 1327         xorl    12(%esi,%eax,1),%ecx
 1328         xorl    (%esi,%eax,1),%edx
 1329         xorl    4(%esi,%eax,1),%ebp
 1330         decl    %edi
 1331         js      .L001x86_break
 1332         movb    %bl,%al
 1333         shrdl   $4,%ecx,%ebx
 1334         andb    $15,%al
 1335         shrdl   $4,%edx,%ecx
 1336         shrdl   $4,%ebp,%edx
 1337         shrl    $4,%ebp
 1338         xorl    16(%esp,%eax,4),%ebp
 1339         movb    (%esp,%edi,1),%al
 1340         shlb    $4,%al
 1341         xorl    8(%esi,%eax,1),%ebx
 1342         xorl    12(%esi,%eax,1),%ecx
 1343         xorl    (%esi,%eax,1),%edx
 1344         xorl    4(%esi,%eax,1),%ebp
 1345         jmp     .L000x86_loop
 1346 .align  16
 1347 .L001x86_break:
 1348         bswap   %ebx
 1349         bswap   %ecx
 1350         bswap   %edx
 1351         bswap   %ebp
 1352         movl    104(%esp),%edi
 1353         movl    %ebx,12(%edi)
 1354         movl    %ecx,8(%edi)
 1355         movl    %edx,4(%edi)
 1356         movl    %ebp,(%edi)
 1357         addl    $84,%esp
 1358         popl    %edi
 1359         popl    %esi
 1360         popl    %ebx
 1361         popl    %ebp
 1362         ret
 1363 .size   gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin
 1364 .globl  gcm_ghash_4bit_x86
 1365 .type   gcm_ghash_4bit_x86,@function
 1366 .align  16
 1367 gcm_ghash_4bit_x86:
 1368 .L_gcm_ghash_4bit_x86_begin:
 1369         pushl   %ebp
 1370         pushl   %ebx
 1371         pushl   %esi
 1372         pushl   %edi
 1373         subl    $84,%esp
 1374         movl    104(%esp),%ebx
 1375         movl    108(%esp),%esi
 1376         movl    112(%esp),%edi
 1377         movl    116(%esp),%ecx
 1378         addl    %edi,%ecx
 1379         movl    %ecx,116(%esp)
 1380         movl    (%ebx),%ebp
 1381         movl    4(%ebx),%edx
 1382         movl    8(%ebx),%ecx
 1383         movl    12(%ebx),%ebx
 1384         movl    $0,16(%esp)
 1385         movl    $471859200,20(%esp)
 1386         movl    $943718400,24(%esp)
 1387         movl    $610271232,28(%esp)
 1388         movl    $1887436800,32(%esp)
 1389         movl    $1822425088,36(%esp)
 1390         movl    $1220542464,40(%esp)
 1391         movl    $1423966208,44(%esp)
 1392         movl    $3774873600,48(%esp)
 1393         movl    $4246732800,52(%esp)
 1394         movl    $3644850176,56(%esp)
 1395         movl    $3311403008,60(%esp)
 1396         movl    $2441084928,64(%esp)
 1397         movl    $2376073216,68(%esp)
 1398         movl    $2847932416,72(%esp)
 1399         movl    $3051356160,76(%esp)
 1400 .align  16
 1401 .L002x86_outer_loop:
 1402         xorl    12(%edi),%ebx
 1403         xorl    8(%edi),%ecx
 1404         xorl    4(%edi),%edx
 1405         xorl    (%edi),%ebp
 1406         movl    %ebx,12(%esp)
 1407         movl    %ecx,8(%esp)
 1408         movl    %edx,4(%esp)
 1409         movl    %ebp,(%esp)
 1410         shrl    $20,%ebx
 1411         andl    $240,%ebx
 1412         movl    4(%esi,%ebx,1),%ebp
 1413         movl    (%esi,%ebx,1),%edx
 1414         movl    12(%esi,%ebx,1),%ecx
 1415         movl    8(%esi,%ebx,1),%ebx
 1416         xorl    %eax,%eax
 1417         movl    $15,%edi
 1418         jmp     .L003x86_loop
 1419 .align  16
 1420 .L003x86_loop:
 1421         movb    %bl,%al
 1422         shrdl   $4,%ecx,%ebx
 1423         andb    $15,%al
 1424         shrdl   $4,%edx,%ecx
 1425         shrdl   $4,%ebp,%edx
 1426         shrl    $4,%ebp
 1427         xorl    16(%esp,%eax,4),%ebp
 1428         movb    (%esp,%edi,1),%al
 1429         andb    $240,%al
 1430         xorl    8(%esi,%eax,1),%ebx
 1431         xorl    12(%esi,%eax,1),%ecx
 1432         xorl    (%esi,%eax,1),%edx
 1433         xorl    4(%esi,%eax,1),%ebp
 1434         decl    %edi
 1435         js      .L004x86_break
 1436         movb    %bl,%al
 1437         shrdl   $4,%ecx,%ebx
 1438         andb    $15,%al
 1439         shrdl   $4,%edx,%ecx
 1440         shrdl   $4,%ebp,%edx
 1441         shrl    $4,%ebp
 1442         xorl    16(%esp,%eax,4),%ebp
 1443         movb    (%esp,%edi,1),%al
 1444         shlb    $4,%al
 1445         xorl    8(%esi,%eax,1),%ebx
 1446         xorl    12(%esi,%eax,1),%ecx
 1447         xorl    (%esi,%eax,1),%edx
 1448         xorl    4(%esi,%eax,1),%ebp
 1449         jmp     .L003x86_loop
 1450 .align  16
 1451 .L004x86_break:
 1452         bswap   %ebx
 1453         bswap   %ecx
 1454         bswap   %edx
 1455         bswap   %ebp
 1456         movl    112(%esp),%edi
 1457         leal    16(%edi),%edi
 1458         cmpl    116(%esp),%edi
 1459         movl    %edi,112(%esp)
 1460         jb      .L002x86_outer_loop
 1461         movl    104(%esp),%edi
 1462         movl    %ebx,12(%edi)
 1463         movl    %ecx,8(%edi)
 1464         movl    %edx,4(%edi)
 1465         movl    %ebp,(%edi)
 1466         addl    $84,%esp
 1467         popl    %edi
 1468         popl    %esi
 1469         popl    %ebx
 1470         popl    %ebp
 1471         ret
 1472 .size   gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin
 1473 .globl  gcm_gmult_4bit_mmx
 1474 .type   gcm_gmult_4bit_mmx,@function
 1475 .align  16
 1476 gcm_gmult_4bit_mmx:
 1477 .L_gcm_gmult_4bit_mmx_begin:
 1478         pushl   %ebp
 1479         pushl   %ebx
 1480         pushl   %esi
 1481         pushl   %edi
 1482         movl    20(%esp),%edi
 1483         movl    24(%esp),%esi
 1484         call    .L005pic_point
 1485 .L005pic_point:
 1486         popl    %eax
 1487         leal    .Lrem_4bit-.L005pic_point(%eax),%eax
 1488         movzbl  15(%edi),%ebx
 1489         xorl    %ecx,%ecx
 1490         movl    %ebx,%edx
 1491         movb    %dl,%cl
 1492         movl    $14,%ebp
 1493         shlb    $4,%cl
 1494         andl    $240,%edx
 1495         movq    8(%esi,%ecx,1),%mm0
 1496         movq    (%esi,%ecx,1),%mm1
 1497         movd    %mm0,%ebx
 1498         jmp     .L006mmx_loop
 1499 .align  16
 1500 .L006mmx_loop:
 1501         psrlq   $4,%mm0
 1502         andl    $15,%ebx
 1503         movq    %mm1,%mm2
 1504         psrlq   $4,%mm1
 1505         pxor    8(%esi,%edx,1),%mm0
 1506         movb    (%edi,%ebp,1),%cl
 1507         psllq   $60,%mm2
 1508         pxor    (%eax,%ebx,8),%mm1
 1509         decl    %ebp
 1510         movd    %mm0,%ebx
 1511         pxor    (%esi,%edx,1),%mm1
 1512         movl    %ecx,%edx
 1513         pxor    %mm2,%mm0
 1514         js      .L007mmx_break
 1515         shlb    $4,%cl
 1516         andl    $15,%ebx
 1517         psrlq   $4,%mm0
 1518         andl    $240,%edx
 1519         movq    %mm1,%mm2
 1520         psrlq   $4,%mm1
 1521         pxor    8(%esi,%ecx,1),%mm0
 1522         psllq   $60,%mm2
 1523         pxor    (%eax,%ebx,8),%mm1
 1524         movd    %mm0,%ebx
 1525         pxor    (%esi,%ecx,1),%mm1
 1526         pxor    %mm2,%mm0
 1527         jmp     .L006mmx_loop
 1528 .align  16
 1529 .L007mmx_break:
 1530         shlb    $4,%cl
 1531         andl    $15,%ebx
 1532         psrlq   $4,%mm0
 1533         andl    $240,%edx
 1534         movq    %mm1,%mm2
 1535         psrlq   $4,%mm1
 1536         pxor    8(%esi,%ecx,1),%mm0
 1537         psllq   $60,%mm2
 1538         pxor    (%eax,%ebx,8),%mm1
 1539         movd    %mm0,%ebx
 1540         pxor    (%esi,%ecx,1),%mm1
 1541         pxor    %mm2,%mm0
 1542         psrlq   $4,%mm0
 1543         andl    $15,%ebx
 1544         movq    %mm1,%mm2
 1545         psrlq   $4,%mm1
 1546         pxor    8(%esi,%edx,1),%mm0
 1547         psllq   $60,%mm2
 1548         pxor    (%eax,%ebx,8),%mm1
 1549         movd    %mm0,%ebx
 1550         pxor    (%esi,%edx,1),%mm1
 1551         pxor    %mm2,%mm0
 1552         psrlq   $32,%mm0
 1553         movd    %mm1,%edx
 1554         psrlq   $32,%mm1
 1555         movd    %mm0,%ecx
 1556         movd    %mm1,%ebp
 1557         bswap   %ebx
 1558         bswap   %edx
 1559         bswap   %ecx
 1560         bswap   %ebp
 1561         emms
 1562         movl    %ebx,12(%edi)
 1563         movl    %edx,4(%edi)
 1564         movl    %ecx,8(%edi)
 1565         movl    %ebp,(%edi)
 1566         popl    %edi
 1567         popl    %esi
 1568         popl    %ebx
 1569         popl    %ebp
 1570         ret
 1571 .size   gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin
 1572 .globl  gcm_ghash_4bit_mmx
 1573 .type   gcm_ghash_4bit_mmx,@function
 1574 .align  16
 1575 gcm_ghash_4bit_mmx:
 1576 .L_gcm_ghash_4bit_mmx_begin:
 1577         pushl   %ebp
 1578         pushl   %ebx
 1579         pushl   %esi
 1580         pushl   %edi
 1581         movl    20(%esp),%eax
 1582         movl    24(%esp),%ebx
 1583         movl    28(%esp),%ecx
 1584         movl    32(%esp),%edx
 1585         movl    %esp,%ebp
 1586         call    .L008pic_point
 1587 .L008pic_point:
 1588         popl    %esi
 1589         leal    .Lrem_8bit-.L008pic_point(%esi),%esi
 1590         subl    $544,%esp
 1591         andl    $-64,%esp
 1592         subl    $16,%esp
 1593         addl    %ecx,%edx
 1594         movl    %eax,544(%esp)
 1595         movl    %edx,552(%esp)
 1596         movl    %ebp,556(%esp)
 1597         addl    $128,%ebx
 1598         leal    144(%esp),%edi
 1599         leal    400(%esp),%ebp
 1600         movl    -120(%ebx),%edx
 1601         movq    -120(%ebx),%mm0
 1602         movq    -128(%ebx),%mm3
 1603         shll    $4,%edx
 1604         movb    %dl,(%esp)
 1605         movl    -104(%ebx),%edx
 1606         movq    -104(%ebx),%mm2
 1607         movq    -112(%ebx),%mm5
 1608         movq    %mm0,-128(%edi)
 1609         psrlq   $4,%mm0
 1610         movq    %mm3,(%edi)
 1611         movq    %mm3,%mm7
 1612         psrlq   $4,%mm3
 1613         shll    $4,%edx
 1614         movb    %dl,1(%esp)
 1615         movl    -88(%ebx),%edx
 1616         movq    -88(%ebx),%mm1
 1617         psllq   $60,%mm7
 1618         movq    -96(%ebx),%mm4
 1619         por     %mm7,%mm0
 1620         movq    %mm2,-120(%edi)
 1621         psrlq   $4,%mm2
 1622         movq    %mm5,8(%edi)
 1623         movq    %mm5,%mm6
 1624         movq    %mm0,-128(%ebp)
 1625         psrlq   $4,%mm5
 1626         movq    %mm3,(%ebp)
 1627         shll    $4,%edx
 1628         movb    %dl,2(%esp)
 1629         movl    -72(%ebx),%edx
 1630         movq    -72(%ebx),%mm0
 1631         psllq   $60,%mm6
 1632         movq    -80(%ebx),%mm3
 1633         por     %mm6,%mm2
 1634         movq    %mm1,-112(%edi)
 1635         psrlq   $4,%mm1
 1636         movq    %mm4,16(%edi)
 1637         movq    %mm4,%mm7
 1638         movq    %mm2,-120(%ebp)
 1639         psrlq   $4,%mm4
 1640         movq    %mm5,8(%ebp)
 1641         shll    $4,%edx
 1642         movb    %dl,3(%esp)
 1643         movl    -56(%ebx),%edx
 1644         movq    -56(%ebx),%mm2
 1645         psllq   $60,%mm7
 1646         movq    -64(%ebx),%mm5
 1647         por     %mm7,%mm1
 1648         movq    %mm0,-104(%edi)
 1649         psrlq   $4,%mm0
 1650         movq    %mm3,24(%edi)
 1651         movq    %mm3,%mm6
 1652         movq    %mm1,-112(%ebp)
 1653         psrlq   $4,%mm3
 1654         movq    %mm4,16(%ebp)
 1655         shll    $4,%edx
 1656         movb    %dl,4(%esp)
 1657         movl    -40(%ebx),%edx
 1658         movq    -40(%ebx),%mm1
 1659         psllq   $60,%mm6
 1660         movq    -48(%ebx),%mm4
 1661         por     %mm6,%mm0
 1662         movq    %mm2,-96(%edi)
 1663         psrlq   $4,%mm2
 1664         movq    %mm5,32(%edi)
 1665         movq    %mm5,%mm7
 1666         movq    %mm0,-104(%ebp)
 1667         psrlq   $4,%mm5
 1668         movq    %mm3,24(%ebp)
 1669         shll    $4,%edx
 1670         movb    %dl,5(%esp)
 1671         movl    -24(%ebx),%edx
 1672         movq    -24(%ebx),%mm0
 1673         psllq   $60,%mm7
 1674         movq    -32(%ebx),%mm3
 1675         por     %mm7,%mm2
 1676         movq    %mm1,-88(%edi)
 1677         psrlq   $4,%mm1
 1678         movq    %mm4,40(%edi)
 1679         movq    %mm4,%mm6
 1680         movq    %mm2,-96(%ebp)
 1681         psrlq   $4,%mm4
 1682         movq    %mm5,32(%ebp)
 1683         shll    $4,%edx
 1684         movb    %dl,6(%esp)
 1685         movl    -8(%ebx),%edx
 1686         movq    -8(%ebx),%mm2
 1687         psllq   $60,%mm6
 1688         movq    -16(%ebx),%mm5
 1689         por     %mm6,%mm1
 1690         movq    %mm0,-80(%edi)
 1691         psrlq   $4,%mm0
 1692         movq    %mm3,48(%edi)
 1693         movq    %mm3,%mm7
 1694         movq    %mm1,-88(%ebp)
 1695         psrlq   $4,%mm3
 1696         movq    %mm4,40(%ebp)
 1697         shll    $4,%edx
 1698         movb    %dl,7(%esp)
 1699         movl    8(%ebx),%edx
 1700         movq    8(%ebx),%mm1
 1701         psllq   $60,%mm7
 1702         movq    (%ebx),%mm4
 1703         por     %mm7,%mm0
 1704         movq    %mm2,-72(%edi)
 1705         psrlq   $4,%mm2
 1706         movq    %mm5,56(%edi)
 1707         movq    %mm5,%mm6
 1708         movq    %mm0,-80(%ebp)
 1709         psrlq   $4,%mm5
 1710         movq    %mm3,48(%ebp)
 1711         shll    $4,%edx
 1712         movb    %dl,8(%esp)
 1713         movl    24(%ebx),%edx
 1714         movq    24(%ebx),%mm0
 1715         psllq   $60,%mm6
 1716         movq    16(%ebx),%mm3
 1717         por     %mm6,%mm2
 1718         movq    %mm1,-64(%edi)
 1719         psrlq   $4,%mm1
 1720         movq    %mm4,64(%edi)
 1721         movq    %mm4,%mm7
 1722         movq    %mm2,-72(%ebp)
 1723         psrlq   $4,%mm4
 1724         movq    %mm5,56(%ebp)
 1725         shll    $4,%edx
 1726         movb    %dl,9(%esp)
 1727         movl    40(%ebx),%edx
 1728         movq    40(%ebx),%mm2
 1729         psllq   $60,%mm7
 1730         movq    32(%ebx),%mm5
 1731         por     %mm7,%mm1
 1732         movq    %mm0,-56(%edi)
 1733         psrlq   $4,%mm0
 1734         movq    %mm3,72(%edi)
 1735         movq    %mm3,%mm6
 1736         movq    %mm1,-64(%ebp)
 1737         psrlq   $4,%mm3
 1738         movq    %mm4,64(%ebp)
 1739         shll    $4,%edx
 1740         movb    %dl,10(%esp)
 1741         movl    56(%ebx),%edx
 1742         movq    56(%ebx),%mm1
 1743         psllq   $60,%mm6
 1744         movq    48(%ebx),%mm4
 1745         por     %mm6,%mm0
 1746         movq    %mm2,-48(%edi)
 1747         psrlq   $4,%mm2
 1748         movq    %mm5,80(%edi)
 1749         movq    %mm5,%mm7
 1750         movq    %mm0,-56(%ebp)
 1751         psrlq   $4,%mm5
 1752         movq    %mm3,72(%ebp)
 1753         shll    $4,%edx
 1754         movb    %dl,11(%esp)
 1755         movl    72(%ebx),%edx
 1756         movq    72(%ebx),%mm0
 1757         psllq   $60,%mm7
 1758         movq    64(%ebx),%mm3
 1759         por     %mm7,%mm2
 1760         movq    %mm1,-40(%edi)
 1761         psrlq   $4,%mm1
 1762         movq    %mm4,88(%edi)
 1763         movq    %mm4,%mm6
 1764         movq    %mm2,-48(%ebp)
 1765         psrlq   $4,%mm4
 1766         movq    %mm5,80(%ebp)
 1767         shll    $4,%edx
 1768         movb    %dl,12(%esp)
 1769         movl    88(%ebx),%edx
 1770         movq    88(%ebx),%mm2
 1771         psllq   $60,%mm6
 1772         movq    80(%ebx),%mm5
 1773         por     %mm6,%mm1
 1774         movq    %mm0,-32(%edi)
 1775         psrlq   $4,%mm0
 1776         movq    %mm3,96(%edi)
 1777         movq    %mm3,%mm7
 1778         movq    %mm1,-40(%ebp)
 1779         psrlq   $4,%mm3
 1780         movq    %mm4,88(%ebp)
 1781         shll    $4,%edx
 1782         movb    %dl,13(%esp)
 1783         movl    104(%ebx),%edx
 1784         movq    104(%ebx),%mm1
 1785         psllq   $60,%mm7
 1786         movq    96(%ebx),%mm4
 1787         por     %mm7,%mm0
 1788         movq    %mm2,-24(%edi)
 1789         psrlq   $4,%mm2
 1790         movq    %mm5,104(%edi)
 1791         movq    %mm5,%mm6
 1792         movq    %mm0,-32(%ebp)
 1793         psrlq   $4,%mm5
 1794         movq    %mm3,96(%ebp)
 1795         shll    $4,%edx
 1796         movb    %dl,14(%esp)
 1797         movl    120(%ebx),%edx
 1798         movq    120(%ebx),%mm0
 1799         psllq   $60,%mm6
 1800         movq    112(%ebx),%mm3
 1801         por     %mm6,%mm2
 1802         movq    %mm1,-16(%edi)
 1803         psrlq   $4,%mm1
 1804         movq    %mm4,112(%edi)
 1805         movq    %mm4,%mm7
 1806         movq    %mm2,-24(%ebp)
 1807         psrlq   $4,%mm4
 1808         movq    %mm5,104(%ebp)
 1809         shll    $4,%edx
 1810         movb    %dl,15(%esp)
 1811         psllq   $60,%mm7
 1812         por     %mm7,%mm1
 1813         movq    %mm0,-8(%edi)
 1814         psrlq   $4,%mm0
 1815         movq    %mm3,120(%edi)
 1816         movq    %mm3,%mm6
 1817         movq    %mm1,-16(%ebp)
 1818         psrlq   $4,%mm3
 1819         movq    %mm4,112(%ebp)
 1820         psllq   $60,%mm6
 1821         por     %mm6,%mm0
 1822         movq    %mm0,-8(%ebp)
 1823         movq    %mm3,120(%ebp)
 1824         movq    (%eax),%mm6
 1825         movl    8(%eax),%ebx
 1826         movl    12(%eax),%edx
 1827 .align  16
 1828 .L009outer:
 1829         xorl    12(%ecx),%edx
 1830         xorl    8(%ecx),%ebx
 1831         pxor    (%ecx),%mm6
 1832         leal    16(%ecx),%ecx
 1833         movl    %ebx,536(%esp)
 1834         movq    %mm6,528(%esp)
 1835         movl    %ecx,548(%esp)
 1836         xorl    %eax,%eax
 1837         roll    $8,%edx
 1838         movb    %dl,%al
 1839         movl    %eax,%ebp
 1840         andb    $15,%al
 1841         shrl    $4,%ebp
 1842         pxor    %mm0,%mm0
 1843         roll    $8,%edx
 1844         pxor    %mm1,%mm1
 1845         pxor    %mm2,%mm2
 1846         movq    16(%esp,%eax,8),%mm7
 1847         movq    144(%esp,%eax,8),%mm6
 1848         movb    %dl,%al
 1849         movd    %mm7,%ebx
 1850         psrlq   $8,%mm7
 1851         movq    %mm6,%mm3
 1852         movl    %eax,%edi
 1853         psrlq   $8,%mm6
 1854         pxor    272(%esp,%ebp,8),%mm7
 1855         andb    $15,%al
 1856         psllq   $56,%mm3
 1857         shrl    $4,%edi
 1858         pxor    16(%esp,%eax,8),%mm7
 1859         roll    $8,%edx
 1860         pxor    144(%esp,%eax,8),%mm6
 1861         pxor    %mm3,%mm7
 1862         pxor    400(%esp,%ebp,8),%mm6
 1863         xorb    (%esp,%ebp,1),%bl
 1864         movb    %dl,%al
 1865         movd    %mm7,%ecx
 1866         movzbl  %bl,%ebx
 1867         psrlq   $8,%mm7
 1868         movq    %mm6,%mm3
 1869         movl    %eax,%ebp
 1870         psrlq   $8,%mm6
 1871         pxor    272(%esp,%edi,8),%mm7
 1872         andb    $15,%al
 1873         psllq   $56,%mm3
 1874         shrl    $4,%ebp
 1875         pinsrw  $2,(%esi,%ebx,2),%mm2
 1876         pxor    16(%esp,%eax,8),%mm7
 1877         roll    $8,%edx
 1878         pxor    144(%esp,%eax,8),%mm6
 1879         pxor    %mm3,%mm7
 1880         pxor    400(%esp,%edi,8),%mm6
 1881         xorb    (%esp,%edi,1),%cl
 1882         movb    %dl,%al
 1883         movl    536(%esp),%edx
 1884         movd    %mm7,%ebx
 1885         movzbl  %cl,%ecx
 1886         psrlq   $8,%mm7
 1887         movq    %mm6,%mm3
 1888         movl    %eax,%edi
 1889         psrlq   $8,%mm6
 1890         pxor    272(%esp,%ebp,8),%mm7
 1891         andb    $15,%al
 1892         psllq   $56,%mm3
 1893         pxor    %mm2,%mm6
 1894         shrl    $4,%edi
 1895         pinsrw  $2,(%esi,%ecx,2),%mm1
 1896         pxor    16(%esp,%eax,8),%mm7
 1897         roll    $8,%edx
 1898         pxor    144(%esp,%eax,8),%mm6
 1899         pxor    %mm3,%mm7
 1900         pxor    400(%esp,%ebp,8),%mm6
 1901         xorb    (%esp,%ebp,1),%bl
 1902         movb    %dl,%al
 1903         movd    %mm7,%ecx
 1904         movzbl  %bl,%ebx
 1905         psrlq   $8,%mm7
 1906         movq    %mm6,%mm3
 1907         movl    %eax,%ebp
 1908         psrlq   $8,%mm6
 1909         pxor    272(%esp,%edi,8),%mm7
 1910         andb    $15,%al
 1911         psllq   $56,%mm3
 1912         pxor    %mm1,%mm6
 1913         shrl    $4,%ebp
 1914         pinsrw  $2,(%esi,%ebx,2),%mm0
 1915         pxor    16(%esp,%eax,8),%mm7
 1916         roll    $8,%edx
 1917         pxor    144(%esp,%eax,8),%mm6
 1918         pxor    %mm3,%mm7
 1919         pxor    400(%esp,%edi,8),%mm6
 1920         xorb    (%esp,%edi,1),%cl
 1921         movb    %dl,%al
 1922         movd    %mm7,%ebx
 1923         movzbl  %cl,%ecx
 1924         psrlq   $8,%mm7
 1925         movq    %mm6,%mm3
 1926         movl    %eax,%edi
 1927         psrlq   $8,%mm6
 1928         pxor    272(%esp,%ebp,8),%mm7
 1929         andb    $15,%al
 1930         psllq   $56,%mm3
 1931         pxor    %mm0,%mm6
 1932         shrl    $4,%edi
 1933         pinsrw  $2,(%esi,%ecx,2),%mm2
 1934         pxor    16(%esp,%eax,8),%mm7
 1935         roll    $8,%edx
 1936         pxor    144(%esp,%eax,8),%mm6
 1937         pxor    %mm3,%mm7
 1938         pxor    400(%esp,%ebp,8),%mm6
 1939         xorb    (%esp,%ebp,1),%bl
 1940         movb    %dl,%al
 1941         movd    %mm7,%ecx
 1942         movzbl  %bl,%ebx
 1943         psrlq   $8,%mm7
 1944         movq    %mm6,%mm3
 1945         movl    %eax,%ebp
 1946         psrlq   $8,%mm6
 1947         pxor    272(%esp,%edi,8),%mm7
 1948         andb    $15,%al
 1949         psllq   $56,%mm3
 1950         pxor    %mm2,%mm6
 1951         shrl    $4,%ebp
 1952         pinsrw  $2,(%esi,%ebx,2),%mm1
 1953         pxor    16(%esp,%eax,8),%mm7
 1954         roll    $8,%edx
 1955         pxor    144(%esp,%eax,8),%mm6
 1956         pxor    %mm3,%mm7
 1957         pxor    400(%esp,%edi,8),%mm6
 1958         xorb    (%esp,%edi,1),%cl
 1959         movb    %dl,%al
 1960         movl    532(%esp),%edx
 1961         movd    %mm7,%ebx
 1962         movzbl  %cl,%ecx
 1963         psrlq   $8,%mm7
 1964         movq    %mm6,%mm3
 1965         movl    %eax,%edi
 1966         psrlq   $8,%mm6
 1967         pxor    272(%esp,%ebp,8),%mm7
 1968         andb    $15,%al
 1969         psllq   $56,%mm3
 1970         pxor    %mm1,%mm6
 1971         shrl    $4,%edi
 1972         pinsrw  $2,(%esi,%ecx,2),%mm0
 1973         pxor    16(%esp,%eax,8),%mm7
 1974         roll    $8,%edx
 1975         pxor    144(%esp,%eax,8),%mm6
 1976         pxor    %mm3,%mm7
 1977         pxor    400(%esp,%ebp,8),%mm6
 1978         xorb    (%esp,%ebp,1),%bl
 1979         movb    %dl,%al
 1980         movd    %mm7,%ecx
 1981         movzbl  %bl,%ebx
 1982         psrlq   $8,%mm7
 1983         movq    %mm6,%mm3
 1984         movl    %eax,%ebp
 1985         psrlq   $8,%mm6
 1986         pxor    272(%esp,%edi,8),%mm7
 1987         andb    $15,%al
 1988         psllq   $56,%mm3
 1989         pxor    %mm0,%mm6
 1990         shrl    $4,%ebp
 1991         pinsrw  $2,(%esi,%ebx,2),%mm2
 1992         pxor    16(%esp,%eax,8),%mm7
 1993         roll    $8,%edx
 1994         pxor    144(%esp,%eax,8),%mm6
 1995         pxor    %mm3,%mm7
 1996         pxor    400(%esp,%edi,8),%mm6
 1997         xorb    (%esp,%edi,1),%cl
 1998         movb    %dl,%al
 1999         movd    %mm7,%ebx
 2000         movzbl  %cl,%ecx
 2001         psrlq   $8,%mm7
 2002         movq    %mm6,%mm3
 2003         movl    %eax,%edi
 2004         psrlq   $8,%mm6
 2005         pxor    272(%esp,%ebp,8),%mm7
 2006         andb    $15,%al
 2007         psllq   $56,%mm3
 2008         pxor    %mm2,%mm6
 2009         shrl    $4,%edi
 2010         pinsrw  $2,(%esi,%ecx,2),%mm1
 2011         pxor    16(%esp,%eax,8),%mm7
 2012         roll    $8,%edx
 2013         pxor    144(%esp,%eax,8),%mm6
 2014         pxor    %mm3,%mm7
 2015         pxor    400(%esp,%ebp,8),%mm6
 2016         xorb    (%esp,%ebp,1),%bl
 2017         movb    %dl,%al
 2018         movd    %mm7,%ecx
 2019         movzbl  %bl,%ebx
 2020         psrlq   $8,%mm7
 2021         movq    %mm6,%mm3
 2022         movl    %eax,%ebp
 2023         psrlq   $8,%mm6
 2024         pxor    272(%esp,%edi,8),%mm7
 2025         andb    $15,%al
 2026         psllq   $56,%mm3
 2027         pxor    %mm1,%mm6
 2028         shrl    $4,%ebp
 2029         pinsrw  $2,(%esi,%ebx,2),%mm0
 2030         pxor    16(%esp,%eax,8),%mm7
 2031         roll    $8,%edx
 2032         pxor    144(%esp,%eax,8),%mm6
 2033         pxor    %mm3,%mm7
 2034         pxor    400(%esp,%edi,8),%mm6
 2035         xorb    (%esp,%edi,1),%cl
 2036         movb    %dl,%al
 2037         movl    528(%esp),%edx
 2038         movd    %mm7,%ebx
 2039         movzbl  %cl,%ecx
 2040         psrlq   $8,%mm7
 2041         movq    %mm6,%mm3
 2042         movl    %eax,%edi
 2043         psrlq   $8,%mm6
 2044         pxor    272(%esp,%ebp,8),%mm7
 2045         andb    $15,%al
 2046         psllq   $56,%mm3
 2047         pxor    %mm0,%mm6
 2048         shrl    $4,%edi
 2049         pinsrw  $2,(%esi,%ecx,2),%mm2
 2050         pxor    16(%esp,%eax,8),%mm7
 2051         roll    $8,%edx
 2052         pxor    144(%esp,%eax,8),%mm6
 2053         pxor    %mm3,%mm7
 2054         pxor    400(%esp,%ebp,8),%mm6
 2055         xorb    (%esp,%ebp,1),%bl
 2056         movb    %dl,%al
 2057         movd    %mm7,%ecx
 2058         movzbl  %bl,%ebx
 2059         psrlq   $8,%mm7
 2060         movq    %mm6,%mm3
 2061         movl    %eax,%ebp
 2062         psrlq   $8,%mm6
 2063         pxor    272(%esp,%edi,8),%mm7
 2064         andb    $15,%al
 2065         psllq   $56,%mm3
 2066         pxor    %mm2,%mm6
 2067         shrl    $4,%ebp
 2068         pinsrw  $2,(%esi,%ebx,2),%mm1
 2069         pxor    16(%esp,%eax,8),%mm7
 2070         roll    $8,%edx
 2071         pxor    144(%esp,%eax,8),%mm6
 2072         pxor    %mm3,%mm7
 2073         pxor    400(%esp,%edi,8),%mm6
 2074         xorb    (%esp,%edi,1),%cl
 2075         movb    %dl,%al
 2076         movd    %mm7,%ebx
 2077         movzbl  %cl,%ecx
 2078         psrlq   $8,%mm7
 2079         movq    %mm6,%mm3
 2080         movl    %eax,%edi
 2081         psrlq   $8,%mm6
 2082         pxor    272(%esp,%ebp,8),%mm7
 2083         andb    $15,%al
 2084         psllq   $56,%mm3
 2085         pxor    %mm1,%mm6
 2086         shrl    $4,%edi
 2087         pinsrw  $2,(%esi,%ecx,2),%mm0
 2088         pxor    16(%esp,%eax,8),%mm7
 2089         roll    $8,%edx
 2090         pxor    144(%esp,%eax,8),%mm6
 2091         pxor    %mm3,%mm7
 2092         pxor    400(%esp,%ebp,8),%mm6
 2093         xorb    (%esp,%ebp,1),%bl
 2094         movb    %dl,%al
 2095         movd    %mm7,%ecx
 2096         movzbl  %bl,%ebx
 2097         psrlq   $8,%mm7
 2098         movq    %mm6,%mm3
 2099         movl    %eax,%ebp
 2100         psrlq   $8,%mm6
 2101         pxor    272(%esp,%edi,8),%mm7
 2102         andb    $15,%al
 2103         psllq   $56,%mm3
 2104         pxor    %mm0,%mm6
 2105         shrl    $4,%ebp
 2106         pinsrw  $2,(%esi,%ebx,2),%mm2
 2107         pxor    16(%esp,%eax,8),%mm7
 2108         roll    $8,%edx
 2109         pxor    144(%esp,%eax,8),%mm6
 2110         pxor    %mm3,%mm7
 2111         pxor    400(%esp,%edi,8),%mm6
 2112         xorb    (%esp,%edi,1),%cl
 2113         movb    %dl,%al
 2114         movl    524(%esp),%edx
 2115         movd    %mm7,%ebx
 2116         movzbl  %cl,%ecx
 2117         psrlq   $8,%mm7
 2118         movq    %mm6,%mm3
 2119         movl    %eax,%edi
 2120         psrlq   $8,%mm6
 2121         pxor    272(%esp,%ebp,8),%mm7
 2122         andb    $15,%al
 2123         psllq   $56,%mm3
 2124         pxor    %mm2,%mm6
 2125         shrl    $4,%edi
 2126         pinsrw  $2,(%esi,%ecx,2),%mm1
 2127         pxor    16(%esp,%eax,8),%mm7
 2128         pxor    144(%esp,%eax,8),%mm6
 2129         xorb    (%esp,%ebp,1),%bl
 2130         pxor    %mm3,%mm7
 2131         pxor    400(%esp,%ebp,8),%mm6
 2132         movzbl  %bl,%ebx
 2133         pxor    %mm2,%mm2
 2134         psllq   $4,%mm1
 2135         movd    %mm7,%ecx
 2136         psrlq   $4,%mm7
 2137         movq    %mm6,%mm3
 2138         psrlq   $4,%mm6
 2139         shll    $4,%ecx
 2140         pxor    16(%esp,%edi,8),%mm7
 2141         psllq   $60,%mm3
 2142         movzbl  %cl,%ecx
 2143         pxor    %mm3,%mm7
 2144         pxor    144(%esp,%edi,8),%mm6
 2145         pinsrw  $2,(%esi,%ebx,2),%mm0
 2146         pxor    %mm1,%mm6
 2147         movd    %mm7,%edx
 2148         pinsrw  $3,(%esi,%ecx,2),%mm2
 2149         psllq   $12,%mm0
 2150         pxor    %mm0,%mm6
 2151         psrlq   $32,%mm7
 2152         pxor    %mm2,%mm6
 2153         movl    548(%esp),%ecx
 2154         movd    %mm7,%ebx
 2155         movq    %mm6,%mm3
 2156         psllw   $8,%mm6
 2157         psrlw   $8,%mm3
 2158         por     %mm3,%mm6
 2159         bswap   %edx
 2160         pshufw  $27,%mm6,%mm6
 2161         bswap   %ebx
 2162         cmpl    552(%esp),%ecx
 2163         jne     .L009outer
 2164         movl    544(%esp),%eax
 2165         movl    %edx,12(%eax)
 2166         movl    %ebx,8(%eax)
 2167         movq    %mm6,(%eax)
 2168         movl    556(%esp),%esp
 2169         emms
 2170         popl    %edi
 2171         popl    %esi
 2172         popl    %ebx
 2173         popl    %ebp
 2174         ret
 2175 .size   gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin
 2176 .globl  gcm_init_clmul
 2177 .type   gcm_init_clmul,@function
 2178 .align  16
 2179 gcm_init_clmul:
 2180 .L_gcm_init_clmul_begin:
 2181         movl    4(%esp),%edx
 2182         movl    8(%esp),%eax
 2183         call    .L010pic
 2184 .L010pic:
 2185         popl    %ecx
 2186         leal    .Lbswap-.L010pic(%ecx),%ecx
 2187         movdqu  (%eax),%xmm2
 2188         pshufd  $78,%xmm2,%xmm2
 2189         pshufd  $255,%xmm2,%xmm4
 2190         movdqa  %xmm2,%xmm3
 2191         psllq   $1,%xmm2
 2192         pxor    %xmm5,%xmm5
 2193         psrlq   $63,%xmm3
 2194         pcmpgtd %xmm4,%xmm5
 2195         pslldq  $8,%xmm3
 2196         por     %xmm3,%xmm2
 2197         pand    16(%ecx),%xmm5
 2198         pxor    %xmm5,%xmm2
 2199         movdqa  %xmm2,%xmm0
 2200         movdqa  %xmm0,%xmm1
 2201         pshufd  $78,%xmm0,%xmm3
 2202         pshufd  $78,%xmm2,%xmm4
 2203         pxor    %xmm0,%xmm3
 2204         pxor    %xmm2,%xmm4
 2205 .byte   102,15,58,68,194,0
 2206 .byte   102,15,58,68,202,17
 2207 .byte   102,15,58,68,220,0
 2208         xorps   %xmm0,%xmm3
 2209         xorps   %xmm1,%xmm3
 2210         movdqa  %xmm3,%xmm4
 2211         psrldq  $8,%xmm3
 2212         pslldq  $8,%xmm4
 2213         pxor    %xmm3,%xmm1
 2214         pxor    %xmm4,%xmm0
 2215         movdqa  %xmm0,%xmm4
 2216         movdqa  %xmm0,%xmm3
 2217         psllq   $5,%xmm0
 2218         pxor    %xmm0,%xmm3
 2219         psllq   $1,%xmm0
 2220         pxor    %xmm3,%xmm0
 2221         psllq   $57,%xmm0
 2222         movdqa  %xmm0,%xmm3
 2223         pslldq  $8,%xmm0
 2224         psrldq  $8,%xmm3
 2225         pxor    %xmm4,%xmm0
 2226         pxor    %xmm3,%xmm1
 2227         movdqa  %xmm0,%xmm4
 2228         psrlq   $1,%xmm0
 2229         pxor    %xmm4,%xmm1
 2230         pxor    %xmm0,%xmm4
 2231         psrlq   $5,%xmm0
 2232         pxor    %xmm4,%xmm0
 2233         psrlq   $1,%xmm0
 2234         pxor    %xmm1,%xmm0
 2235         pshufd  $78,%xmm2,%xmm3
 2236         pshufd  $78,%xmm0,%xmm4
 2237         pxor    %xmm2,%xmm3
 2238         movdqu  %xmm2,(%edx)
 2239         pxor    %xmm0,%xmm4
 2240         movdqu  %xmm0,16(%edx)
 2241 .byte   102,15,58,15,227,8
 2242         movdqu  %xmm4,32(%edx)
 2243         ret
 2244 .size   gcm_init_clmul,.-.L_gcm_init_clmul_begin
 2245 .globl  gcm_gmult_clmul
 2246 .type   gcm_gmult_clmul,@function
 2247 .align  16
 2248 gcm_gmult_clmul:
 2249 .L_gcm_gmult_clmul_begin:
 2250         movl    4(%esp),%eax
 2251         movl    8(%esp),%edx
 2252         call    .L011pic
 2253 .L011pic:
 2254         popl    %ecx
 2255         leal    .Lbswap-.L011pic(%ecx),%ecx
 2256         movdqu  (%eax),%xmm0
 2257         movdqa  (%ecx),%xmm5
 2258         movups  (%edx),%xmm2
 2259 .byte   102,15,56,0,197
 2260         movups  32(%edx),%xmm4
 2261         movdqa  %xmm0,%xmm1
 2262         pshufd  $78,%xmm0,%xmm3
 2263         pxor    %xmm0,%xmm3
 2264 .byte   102,15,58,68,194,0
 2265 .byte   102,15,58,68,202,17
 2266 .byte   102,15,58,68,220,0
 2267         xorps   %xmm0,%xmm3
 2268         xorps   %xmm1,%xmm3
 2269         movdqa  %xmm3,%xmm4
 2270         psrldq  $8,%xmm3
 2271         pslldq  $8,%xmm4
 2272         pxor    %xmm3,%xmm1
 2273         pxor    %xmm4,%xmm0
 2274         movdqa  %xmm0,%xmm4
 2275         movdqa  %xmm0,%xmm3
 2276         psllq   $5,%xmm0
 2277         pxor    %xmm0,%xmm3
 2278         psllq   $1,%xmm0
 2279         pxor    %xmm3,%xmm0
 2280         psllq   $57,%xmm0
 2281         movdqa  %xmm0,%xmm3
 2282         pslldq  $8,%xmm0
 2283         psrldq  $8,%xmm3
 2284         pxor    %xmm4,%xmm0
 2285         pxor    %xmm3,%xmm1
 2286         movdqa  %xmm0,%xmm4
 2287         psrlq   $1,%xmm0
 2288         pxor    %xmm4,%xmm1
 2289         pxor    %xmm0,%xmm4
 2290         psrlq   $5,%xmm0
 2291         pxor    %xmm4,%xmm0
 2292         psrlq   $1,%xmm0
 2293         pxor    %xmm1,%xmm0
 2294 .byte   102,15,56,0,197
 2295         movdqu  %xmm0,(%eax)
 2296         ret
 2297 .size   gcm_gmult_clmul,.-.L_gcm_gmult_clmul_begin
 2298 .globl  gcm_ghash_clmul
 2299 .type   gcm_ghash_clmul,@function
 2300 .align  16
 2301 gcm_ghash_clmul:
 2302 .L_gcm_ghash_clmul_begin:
 2303         pushl   %ebp
 2304         pushl   %ebx
 2305         pushl   %esi
 2306         pushl   %edi
 2307         movl    20(%esp),%eax
 2308         movl    24(%esp),%edx
 2309         movl    28(%esp),%esi
 2310         movl    32(%esp),%ebx
 2311         call    .L012pic
 2312 .L012pic:
 2313         popl    %ecx
 2314         leal    .Lbswap-.L012pic(%ecx),%ecx
 2315         movdqu  (%eax),%xmm0
 2316         movdqa  (%ecx),%xmm5
 2317         movdqu  (%edx),%xmm2
 2318 .byte   102,15,56,0,197
 2319         subl    $16,%ebx
 2320         jz      .L013odd_tail
 2321         movdqu  (%esi),%xmm3
 2322         movdqu  16(%esi),%xmm6
 2323 .byte   102,15,56,0,221
 2324 .byte   102,15,56,0,245
 2325         movdqu  32(%edx),%xmm5
 2326         pxor    %xmm3,%xmm0
 2327         pshufd  $78,%xmm6,%xmm3
 2328         movdqa  %xmm6,%xmm7
 2329         pxor    %xmm6,%xmm3
 2330         leal    32(%esi),%esi
 2331 .byte   102,15,58,68,242,0
 2332 .byte   102,15,58,68,250,17
 2333 .byte   102,15,58,68,221,0
 2334         movups  16(%edx),%xmm2
 2335         nop
 2336         subl    $32,%ebx
 2337         jbe     .L014even_tail
 2338         jmp     .L015mod_loop
 2339 .align  32
 2340 .L015mod_loop:
 2341         pshufd  $78,%xmm0,%xmm4
 2342         movdqa  %xmm0,%xmm1
 2343         pxor    %xmm0,%xmm4
 2344         nop
 2345 .byte   102,15,58,68,194,0
 2346 .byte   102,15,58,68,202,17
 2347 .byte   102,15,58,68,229,16
 2348         movups  (%edx),%xmm2
 2349         xorps   %xmm6,%xmm0
 2350         movdqa  (%ecx),%xmm5
 2351         xorps   %xmm7,%xmm1
 2352         movdqu  (%esi),%xmm7
 2353         pxor    %xmm0,%xmm3
 2354         movdqu  16(%esi),%xmm6
 2355         pxor    %xmm1,%xmm3
 2356 .byte   102,15,56,0,253
 2357         pxor    %xmm3,%xmm4
 2358         movdqa  %xmm4,%xmm3
 2359         psrldq  $8,%xmm4
 2360         pslldq  $8,%xmm3
 2361         pxor    %xmm4,%xmm1
 2362         pxor    %xmm3,%xmm0
 2363 .byte   102,15,56,0,245
 2364         pxor    %xmm7,%xmm1
 2365         movdqa  %xmm6,%xmm7
 2366         movdqa  %xmm0,%xmm4
 2367         movdqa  %xmm0,%xmm3
 2368         psllq   $5,%xmm0
 2369         pxor    %xmm0,%xmm3
 2370         psllq   $1,%xmm0
 2371         pxor    %xmm3,%xmm0
 2372 .byte   102,15,58,68,242,0
 2373         movups  32(%edx),%xmm5
 2374         psllq   $57,%xmm0
 2375         movdqa  %xmm0,%xmm3
 2376         pslldq  $8,%xmm0
 2377         psrldq  $8,%xmm3
 2378         pxor    %xmm4,%xmm0
 2379         pxor    %xmm3,%xmm1
 2380         pshufd  $78,%xmm7,%xmm3
 2381         movdqa  %xmm0,%xmm4
 2382         psrlq   $1,%xmm0
 2383         pxor    %xmm7,%xmm3
 2384         pxor    %xmm4,%xmm1
 2385 .byte   102,15,58,68,250,17
 2386         movups  16(%edx),%xmm2
 2387         pxor    %xmm0,%xmm4
 2388         psrlq   $5,%xmm0
 2389         pxor    %xmm4,%xmm0
 2390         psrlq   $1,%xmm0
 2391         pxor    %xmm1,%xmm0
 2392 .byte   102,15,58,68,221,0
 2393         leal    32(%esi),%esi
 2394         subl    $32,%ebx
 2395         ja      .L015mod_loop
 2396 .L014even_tail:
 2397         pshufd  $78,%xmm0,%xmm4
 2398         movdqa  %xmm0,%xmm1
 2399         pxor    %xmm0,%xmm4
 2400 .byte   102,15,58,68,194,0
 2401 .byte   102,15,58,68,202,17
 2402 .byte   102,15,58,68,229,16
 2403         movdqa  (%ecx),%xmm5
 2404         xorps   %xmm6,%xmm0
 2405         xorps   %xmm7,%xmm1
 2406         pxor    %xmm0,%xmm3
 2407         pxor    %xmm1,%xmm3
 2408         pxor    %xmm3,%xmm4
 2409         movdqa  %xmm4,%xmm3
 2410         psrldq  $8,%xmm4
 2411         pslldq  $8,%xmm3
 2412         pxor    %xmm4,%xmm1
 2413         pxor    %xmm3,%xmm0
 2414         movdqa  %xmm0,%xmm4
 2415         movdqa  %xmm0,%xmm3
 2416         psllq   $5,%xmm0
 2417         pxor    %xmm0,%xmm3
 2418         psllq   $1,%xmm0
 2419         pxor    %xmm3,%xmm0
 2420         psllq   $57,%xmm0
 2421         movdqa  %xmm0,%xmm3
 2422         pslldq  $8,%xmm0
 2423         psrldq  $8,%xmm3
 2424         pxor    %xmm4,%xmm0
 2425         pxor    %xmm3,%xmm1
 2426         movdqa  %xmm0,%xmm4
 2427         psrlq   $1,%xmm0
 2428         pxor    %xmm4,%xmm1
 2429         pxor    %xmm0,%xmm4
 2430         psrlq   $5,%xmm0
 2431         pxor    %xmm4,%xmm0
 2432         psrlq   $1,%xmm0
 2433         pxor    %xmm1,%xmm0
 2434         testl   %ebx,%ebx
 2435         jnz     .L016done
 2436         movups  (%edx),%xmm2
 2437 .L013odd_tail:
 2438         movdqu  (%esi),%xmm3
 2439 .byte   102,15,56,0,221
 2440         pxor    %xmm3,%xmm0
 2441         movdqa  %xmm0,%xmm1
 2442         pshufd  $78,%xmm0,%xmm3
 2443         pshufd  $78,%xmm2,%xmm4
 2444         pxor    %xmm0,%xmm3
 2445         pxor    %xmm2,%xmm4
 2446 .byte   102,15,58,68,194,0
 2447 .byte   102,15,58,68,202,17
 2448 .byte   102,15,58,68,220,0
 2449         xorps   %xmm0,%xmm3
 2450         xorps   %xmm1,%xmm3
 2451         movdqa  %xmm3,%xmm4
 2452         psrldq  $8,%xmm3
 2453         pslldq  $8,%xmm4
 2454         pxor    %xmm3,%xmm1
 2455         pxor    %xmm4,%xmm0
 2456         movdqa  %xmm0,%xmm4
 2457         movdqa  %xmm0,%xmm3
 2458         psllq   $5,%xmm0
 2459         pxor    %xmm0,%xmm3
 2460         psllq   $1,%xmm0
 2461         pxor    %xmm3,%xmm0
 2462         psllq   $57,%xmm0
 2463         movdqa  %xmm0,%xmm3
 2464         pslldq  $8,%xmm0
 2465         psrldq  $8,%xmm3
 2466         pxor    %xmm4,%xmm0
 2467         pxor    %xmm3,%xmm1
 2468         movdqa  %xmm0,%xmm4
 2469         psrlq   $1,%xmm0
 2470         pxor    %xmm4,%xmm1
 2471         pxor    %xmm0,%xmm4
 2472         psrlq   $5,%xmm0
 2473         pxor    %xmm4,%xmm0
 2474         psrlq   $1,%xmm0
 2475         pxor    %xmm1,%xmm0
 2476 .L016done:
 2477 .byte   102,15,56,0,197
 2478         movdqu  %xmm0,(%eax)
 2479         popl    %edi
 2480         popl    %esi
 2481         popl    %ebx
 2482         popl    %ebp
 2483         ret
 2484 .size   gcm_ghash_clmul,.-.L_gcm_ghash_clmul_begin
 2485 .align  64
 2486 .Lbswap:
 2487 .byte   15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
 2488 .byte   1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194
 2489 .align  64
 2490 .Lrem_8bit:
 2491 .value  0,450,900,582,1800,1738,1164,1358
 2492 .value  3600,4050,3476,3158,2328,2266,2716,2910
 2493 .value  7200,7650,8100,7782,6952,6890,6316,6510
 2494 .value  4656,5106,4532,4214,5432,5370,5820,6014
 2495 .value  14400,14722,15300,14854,16200,16010,15564,15630
 2496 .value  13904,14226,13780,13334,12632,12442,13020,13086
 2497 .value  9312,9634,10212,9766,9064,8874,8428,8494
 2498 .value  10864,11186,10740,10294,11640,11450,12028,12094
 2499 .value  28800,28994,29444,29382,30600,30282,29708,30158
 2500 .value  32400,32594,32020,31958,31128,30810,31260,31710
 2501 .value  27808,28002,28452,28390,27560,27242,26668,27118
 2502 .value  25264,25458,24884,24822,26040,25722,26172,26622
 2503 .value  18624,18690,19268,19078,20424,19978,19532,19854
 2504 .value  18128,18194,17748,17558,16856,16410,16988,17310
 2505 .value  21728,21794,22372,22182,21480,21034,20588,20910
 2506 .value  23280,23346,22900,22710,24056,23610,24188,24510
 2507 .value  57600,57538,57988,58182,58888,59338,58764,58446
 2508 .value  61200,61138,60564,60758,59416,59866,60316,59998
 2509 .value  64800,64738,65188,65382,64040,64490,63916,63598
 2510 .value  62256,62194,61620,61814,62520,62970,63420,63102
 2511 .value  55616,55426,56004,56070,56904,57226,56780,56334
 2512 .value  55120,54930,54484,54550,53336,53658,54236,53790
 2513 .value  50528,50338,50916,50982,49768,50090,49644,49198
 2514 .value  52080,51890,51444,51510,52344,52666,53244,52798
 2515 .value  37248,36930,37380,37830,38536,38730,38156,38094
 2516 .value  40848,40530,39956,40406,39064,39258,39708,39646
 2517 .value  36256,35938,36388,36838,35496,35690,35116,35054
 2518 .value  33712,33394,32820,33270,33976,34170,34620,34558
 2519 .value  43456,43010,43588,43910,44744,44810,44364,44174
 2520 .value  42960,42514,42068,42390,41176,41242,41820,41630
 2521 .value  46560,46114,46692,47014,45800,45866,45420,45230
 2522 .value  48112,47666,47220,47542,48376,48442,49020,48830
 2523 .align  64
 2524 .Lrem_4bit:
 2525 .long   0,0,0,471859200,0,943718400,0,610271232
 2526 .long   0,1887436800,0,1822425088,0,1220542464,0,1423966208
 2527 .long   0,3774873600,0,4246732800,0,3644850176,0,3311403008
 2528 .long   0,2441084928,0,2376073216,0,2847932416,0,3051356160
 2529 .byte   71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
 2530 .byte   82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
 2531 .byte   112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
 2532 .byte   0
 2533 #endif

Cache object: 355367342a477ebc8817b1dd1f79e840


[ 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.