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/e_padlock-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 e_padlock-x86.pl. */
    3 #ifdef PIC
    4 .text
    5 .globl  padlock_capability
    6 .type   padlock_capability,@function
    7 .align  16
    8 padlock_capability:
    9 .L_padlock_capability_begin:
   10         pushl   %ebx
   11         pushfl
   12         popl    %eax
   13         movl    %eax,%ecx
   14         xorl    $2097152,%eax
   15         pushl   %eax
   16         popfl
   17         pushfl
   18         popl    %eax
   19         xorl    %eax,%ecx
   20         xorl    %eax,%eax
   21         btl     $21,%ecx
   22         jnc     .L000noluck
   23         .byte   0x0f,0xa2
   24         xorl    %eax,%eax
   25         cmpl    $0x746e6543,%ebx
   26         jne     .L001zhaoxin
   27         cmpl    $0x48727561,%edx
   28         jne     .L000noluck
   29         cmpl    $0x736c7561,%ecx
   30         jne     .L000noluck
   31         jmp     .L002zhaoxinEnd
   32 .L001zhaoxin:
   33         cmpl    $0x68532020,%ebx
   34         jne     .L000noluck
   35         cmpl    $0x68676e61,%edx
   36         jne     .L000noluck
   37         cmpl    $0x20206961,%ecx
   38         jne     .L000noluck
   39 .L002zhaoxinEnd:
   40         movl    $3221225472,%eax
   41         .byte   0x0f,0xa2
   42         movl    %eax,%edx
   43         xorl    %eax,%eax
   44         cmpl    $3221225473,%edx
   45         jb      .L000noluck
   46         movl    $1,%eax
   47         .byte   0x0f,0xa2
   48         orl     $15,%eax
   49         xorl    %ebx,%ebx
   50         andl    $4095,%eax
   51         cmpl    $1791,%eax
   52         sete    %bl
   53         movl    $3221225473,%eax
   54         pushl   %ebx
   55         .byte   0x0f,0xa2
   56         popl    %ebx
   57         movl    %edx,%eax
   58         shll    $4,%ebx
   59         andl    $4294967279,%eax
   60         orl     %ebx,%eax
   61 .L000noluck:
   62         popl    %ebx
   63         ret
   64 .size   padlock_capability,.-.L_padlock_capability_begin
   65 .globl  padlock_key_bswap
   66 .type   padlock_key_bswap,@function
   67 .align  16
   68 padlock_key_bswap:
   69 .L_padlock_key_bswap_begin:
   70         movl    4(%esp),%edx
   71         movl    240(%edx),%ecx
   72 .L003bswap_loop:
   73         movl    (%edx),%eax
   74         bswap   %eax
   75         movl    %eax,(%edx)
   76         leal    4(%edx),%edx
   77         subl    $1,%ecx
   78         jnz     .L003bswap_loop
   79         ret
   80 .size   padlock_key_bswap,.-.L_padlock_key_bswap_begin
   81 .globl  padlock_verify_context
   82 .type   padlock_verify_context,@function
   83 .align  16
   84 padlock_verify_context:
   85 .L_padlock_verify_context_begin:
   86         movl    4(%esp),%edx
   87         leal    .Lpadlock_saved_context-.L004verify_pic_point,%eax
   88         pushfl
   89         call    _padlock_verify_ctx
   90 .L004verify_pic_point:
   91         leal    4(%esp),%esp
   92         ret
   93 .size   padlock_verify_context,.-.L_padlock_verify_context_begin
   94 .type   _padlock_verify_ctx,@function
   95 .align  16
   96 _padlock_verify_ctx:
   97         addl    (%esp),%eax
   98         btl     $30,4(%esp)
   99         jnc     .L005verified
  100         cmpl    (%eax),%edx
  101         je      .L005verified
  102         pushfl
  103         popfl
  104 .L005verified:
  105         movl    %edx,(%eax)
  106         ret
  107 .size   _padlock_verify_ctx,.-_padlock_verify_ctx
  108 .globl  padlock_reload_key
  109 .type   padlock_reload_key,@function
  110 .align  16
  111 padlock_reload_key:
  112 .L_padlock_reload_key_begin:
  113         pushfl
  114         popfl
  115         ret
  116 .size   padlock_reload_key,.-.L_padlock_reload_key_begin
  117 .globl  padlock_aes_block
  118 .type   padlock_aes_block,@function
  119 .align  16
  120 padlock_aes_block:
  121 .L_padlock_aes_block_begin:
  122         pushl   %edi
  123         pushl   %esi
  124         pushl   %ebx
  125         movl    16(%esp),%edi
  126         movl    20(%esp),%esi
  127         movl    24(%esp),%edx
  128         movl    $1,%ecx
  129         leal    32(%edx),%ebx
  130         leal    16(%edx),%edx
  131 .byte   243,15,167,200
  132         popl    %ebx
  133         popl    %esi
  134         popl    %edi
  135         ret
  136 .size   padlock_aes_block,.-.L_padlock_aes_block_begin
  137 .globl  padlock_ecb_encrypt
  138 .type   padlock_ecb_encrypt,@function
  139 .align  16
  140 padlock_ecb_encrypt:
  141 .L_padlock_ecb_encrypt_begin:
  142         pushl   %ebp
  143         pushl   %ebx
  144         pushl   %esi
  145         pushl   %edi
  146         movl    20(%esp),%edi
  147         movl    24(%esp),%esi
  148         movl    28(%esp),%edx
  149         movl    32(%esp),%ecx
  150         testl   $15,%edx
  151         jnz     .L006ecb_abort
  152         testl   $15,%ecx
  153         jnz     .L006ecb_abort
  154         leal    .Lpadlock_saved_context-.L007ecb_pic_point,%eax
  155         pushfl
  156         cld
  157         call    _padlock_verify_ctx
  158 .L007ecb_pic_point:
  159         leal    16(%edx),%edx
  160         xorl    %eax,%eax
  161         xorl    %ebx,%ebx
  162         testl   $32,(%edx)
  163         jnz     .L008ecb_aligned
  164         testl   $15,%edi
  165         setz    %al
  166         testl   $15,%esi
  167         setz    %bl
  168         testl   %ebx,%eax
  169         jnz     .L008ecb_aligned
  170         negl    %eax
  171         movl    $512,%ebx
  172         notl    %eax
  173         leal    -24(%esp),%ebp
  174         cmpl    %ebx,%ecx
  175         cmovcl  %ecx,%ebx
  176         andl    %ebx,%eax
  177         movl    %ecx,%ebx
  178         negl    %eax
  179         andl    $511,%ebx
  180         leal    (%eax,%ebp,1),%esp
  181         movl    $512,%eax
  182         cmovzl  %eax,%ebx
  183         movl    %ebp,%eax
  184         andl    $-16,%ebp
  185         andl    $-16,%esp
  186         movl    %eax,16(%ebp)
  187         cmpl    %ebx,%ecx
  188         ja      .L009ecb_loop
  189         movl    %esi,%eax
  190         cmpl    %esp,%ebp
  191         cmovel  %edi,%eax
  192         addl    %ecx,%eax
  193         negl    %eax
  194         andl    $4095,%eax
  195         cmpl    $128,%eax
  196         movl    $-128,%eax
  197         cmovael %ebx,%eax
  198         andl    %eax,%ebx
  199         jz      .L010ecb_unaligned_tail
  200         jmp     .L009ecb_loop
  201 .align  16
  202 .L009ecb_loop:
  203         movl    %edi,(%ebp)
  204         movl    %esi,4(%ebp)
  205         movl    %ecx,8(%ebp)
  206         movl    %ebx,%ecx
  207         movl    %ebx,12(%ebp)
  208         testl   $15,%edi
  209         cmovnzl %esp,%edi
  210         testl   $15,%esi
  211         jz      .L011ecb_inp_aligned
  212         shrl    $2,%ecx
  213 .byte   243,165
  214         subl    %ebx,%edi
  215         movl    %ebx,%ecx
  216         movl    %edi,%esi
  217 .L011ecb_inp_aligned:
  218         leal    -16(%edx),%eax
  219         leal    16(%edx),%ebx
  220         shrl    $4,%ecx
  221 .byte   243,15,167,200
  222         movl    (%ebp),%edi
  223         movl    12(%ebp),%ebx
  224         testl   $15,%edi
  225         jz      .L012ecb_out_aligned
  226         movl    %ebx,%ecx
  227         leal    (%esp),%esi
  228         shrl    $2,%ecx
  229 .byte   243,165
  230         subl    %ebx,%edi
  231 .L012ecb_out_aligned:
  232         movl    4(%ebp),%esi
  233         movl    8(%ebp),%ecx
  234         addl    %ebx,%edi
  235         addl    %ebx,%esi
  236         subl    %ebx,%ecx
  237         movl    $512,%ebx
  238         jz      .L013ecb_break
  239         cmpl    %ebx,%ecx
  240         jae     .L009ecb_loop
  241 .L010ecb_unaligned_tail:
  242         xorl    %eax,%eax
  243         cmpl    %ebp,%esp
  244         cmovel  %ecx,%eax
  245         subl    %eax,%esp
  246         movl    %edi,%eax
  247         movl    %ecx,%ebx
  248         shrl    $2,%ecx
  249         leal    (%esp),%edi
  250 .byte   243,165
  251         movl    %esp,%esi
  252         movl    %eax,%edi
  253         movl    %ebx,%ecx
  254         jmp     .L009ecb_loop
  255 .align  16
  256 .L013ecb_break:
  257         cmpl    %ebp,%esp
  258         je      .L014ecb_done
  259         pxor    %xmm0,%xmm0
  260         leal    (%esp),%eax
  261 .L015ecb_bzero:
  262         movaps  %xmm0,(%eax)
  263         leal    16(%eax),%eax
  264         cmpl    %eax,%ebp
  265         ja      .L015ecb_bzero
  266 .L014ecb_done:
  267         movl    16(%ebp),%ebp
  268         leal    24(%ebp),%esp
  269         jmp     .L016ecb_exit
  270 .align  16
  271 .L008ecb_aligned:
  272         leal    (%esi,%ecx,1),%ebp
  273         negl    %ebp
  274         andl    $4095,%ebp
  275         xorl    %eax,%eax
  276         cmpl    $128,%ebp
  277         movl    $127,%ebp
  278         cmovael %eax,%ebp
  279         andl    %ecx,%ebp
  280         subl    %ebp,%ecx
  281         jz      .L017ecb_aligned_tail
  282         leal    -16(%edx),%eax
  283         leal    16(%edx),%ebx
  284         shrl    $4,%ecx
  285 .byte   243,15,167,200
  286         testl   %ebp,%ebp
  287         jz      .L016ecb_exit
  288 .L017ecb_aligned_tail:
  289         movl    %ebp,%ecx
  290         leal    -24(%esp),%ebp
  291         movl    %ebp,%esp
  292         movl    %ebp,%eax
  293         subl    %ecx,%esp
  294         andl    $-16,%ebp
  295         andl    $-16,%esp
  296         movl    %eax,16(%ebp)
  297         movl    %edi,%eax
  298         movl    %ecx,%ebx
  299         shrl    $2,%ecx
  300         leal    (%esp),%edi
  301 .byte   243,165
  302         movl    %esp,%esi
  303         movl    %eax,%edi
  304         movl    %ebx,%ecx
  305         jmp     .L009ecb_loop
  306 .L016ecb_exit:
  307         movl    $1,%eax
  308         leal    4(%esp),%esp
  309 .L006ecb_abort:
  310         popl    %edi
  311         popl    %esi
  312         popl    %ebx
  313         popl    %ebp
  314         ret
  315 .size   padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin
  316 .globl  padlock_cbc_encrypt
  317 .type   padlock_cbc_encrypt,@function
  318 .align  16
  319 padlock_cbc_encrypt:
  320 .L_padlock_cbc_encrypt_begin:
  321         pushl   %ebp
  322         pushl   %ebx
  323         pushl   %esi
  324         pushl   %edi
  325         movl    20(%esp),%edi
  326         movl    24(%esp),%esi
  327         movl    28(%esp),%edx
  328         movl    32(%esp),%ecx
  329         testl   $15,%edx
  330         jnz     .L018cbc_abort
  331         testl   $15,%ecx
  332         jnz     .L018cbc_abort
  333         leal    .Lpadlock_saved_context-.L019cbc_pic_point,%eax
  334         pushfl
  335         cld
  336         call    _padlock_verify_ctx
  337 .L019cbc_pic_point:
  338         leal    16(%edx),%edx
  339         xorl    %eax,%eax
  340         xorl    %ebx,%ebx
  341         testl   $32,(%edx)
  342         jnz     .L020cbc_aligned
  343         testl   $15,%edi
  344         setz    %al
  345         testl   $15,%esi
  346         setz    %bl
  347         testl   %ebx,%eax
  348         jnz     .L020cbc_aligned
  349         negl    %eax
  350         movl    $512,%ebx
  351         notl    %eax
  352         leal    -24(%esp),%ebp
  353         cmpl    %ebx,%ecx
  354         cmovcl  %ecx,%ebx
  355         andl    %ebx,%eax
  356         movl    %ecx,%ebx
  357         negl    %eax
  358         andl    $511,%ebx
  359         leal    (%eax,%ebp,1),%esp
  360         movl    $512,%eax
  361         cmovzl  %eax,%ebx
  362         movl    %ebp,%eax
  363         andl    $-16,%ebp
  364         andl    $-16,%esp
  365         movl    %eax,16(%ebp)
  366         cmpl    %ebx,%ecx
  367         ja      .L021cbc_loop
  368         movl    %esi,%eax
  369         cmpl    %esp,%ebp
  370         cmovel  %edi,%eax
  371         addl    %ecx,%eax
  372         negl    %eax
  373         andl    $4095,%eax
  374         cmpl    $64,%eax
  375         movl    $-64,%eax
  376         cmovael %ebx,%eax
  377         andl    %eax,%ebx
  378         jz      .L022cbc_unaligned_tail
  379         jmp     .L021cbc_loop
  380 .align  16
  381 .L021cbc_loop:
  382         movl    %edi,(%ebp)
  383         movl    %esi,4(%ebp)
  384         movl    %ecx,8(%ebp)
  385         movl    %ebx,%ecx
  386         movl    %ebx,12(%ebp)
  387         testl   $15,%edi
  388         cmovnzl %esp,%edi
  389         testl   $15,%esi
  390         jz      .L023cbc_inp_aligned
  391         shrl    $2,%ecx
  392 .byte   243,165
  393         subl    %ebx,%edi
  394         movl    %ebx,%ecx
  395         movl    %edi,%esi
  396 .L023cbc_inp_aligned:
  397         leal    -16(%edx),%eax
  398         leal    16(%edx),%ebx
  399         shrl    $4,%ecx
  400 .byte   243,15,167,208
  401         movaps  (%eax),%xmm0
  402         movaps  %xmm0,-16(%edx)
  403         movl    (%ebp),%edi
  404         movl    12(%ebp),%ebx
  405         testl   $15,%edi
  406         jz      .L024cbc_out_aligned
  407         movl    %ebx,%ecx
  408         leal    (%esp),%esi
  409         shrl    $2,%ecx
  410 .byte   243,165
  411         subl    %ebx,%edi
  412 .L024cbc_out_aligned:
  413         movl    4(%ebp),%esi
  414         movl    8(%ebp),%ecx
  415         addl    %ebx,%edi
  416         addl    %ebx,%esi
  417         subl    %ebx,%ecx
  418         movl    $512,%ebx
  419         jz      .L025cbc_break
  420         cmpl    %ebx,%ecx
  421         jae     .L021cbc_loop
  422 .L022cbc_unaligned_tail:
  423         xorl    %eax,%eax
  424         cmpl    %ebp,%esp
  425         cmovel  %ecx,%eax
  426         subl    %eax,%esp
  427         movl    %edi,%eax
  428         movl    %ecx,%ebx
  429         shrl    $2,%ecx
  430         leal    (%esp),%edi
  431 .byte   243,165
  432         movl    %esp,%esi
  433         movl    %eax,%edi
  434         movl    %ebx,%ecx
  435         jmp     .L021cbc_loop
  436 .align  16
  437 .L025cbc_break:
  438         cmpl    %ebp,%esp
  439         je      .L026cbc_done
  440         pxor    %xmm0,%xmm0
  441         leal    (%esp),%eax
  442 .L027cbc_bzero:
  443         movaps  %xmm0,(%eax)
  444         leal    16(%eax),%eax
  445         cmpl    %eax,%ebp
  446         ja      .L027cbc_bzero
  447 .L026cbc_done:
  448         movl    16(%ebp),%ebp
  449         leal    24(%ebp),%esp
  450         jmp     .L028cbc_exit
  451 .align  16
  452 .L020cbc_aligned:
  453         leal    (%esi,%ecx,1),%ebp
  454         negl    %ebp
  455         andl    $4095,%ebp
  456         xorl    %eax,%eax
  457         cmpl    $64,%ebp
  458         movl    $63,%ebp
  459         cmovael %eax,%ebp
  460         andl    %ecx,%ebp
  461         subl    %ebp,%ecx
  462         jz      .L029cbc_aligned_tail
  463         leal    -16(%edx),%eax
  464         leal    16(%edx),%ebx
  465         shrl    $4,%ecx
  466 .byte   243,15,167,208
  467         movaps  (%eax),%xmm0
  468         movaps  %xmm0,-16(%edx)
  469         testl   %ebp,%ebp
  470         jz      .L028cbc_exit
  471 .L029cbc_aligned_tail:
  472         movl    %ebp,%ecx
  473         leal    -24(%esp),%ebp
  474         movl    %ebp,%esp
  475         movl    %ebp,%eax
  476         subl    %ecx,%esp
  477         andl    $-16,%ebp
  478         andl    $-16,%esp
  479         movl    %eax,16(%ebp)
  480         movl    %edi,%eax
  481         movl    %ecx,%ebx
  482         shrl    $2,%ecx
  483         leal    (%esp),%edi
  484 .byte   243,165
  485         movl    %esp,%esi
  486         movl    %eax,%edi
  487         movl    %ebx,%ecx
  488         jmp     .L021cbc_loop
  489 .L028cbc_exit:
  490         movl    $1,%eax
  491         leal    4(%esp),%esp
  492 .L018cbc_abort:
  493         popl    %edi
  494         popl    %esi
  495         popl    %ebx
  496         popl    %ebp
  497         ret
  498 .size   padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin
  499 .globl  padlock_cfb_encrypt
  500 .type   padlock_cfb_encrypt,@function
  501 .align  16
  502 padlock_cfb_encrypt:
  503 .L_padlock_cfb_encrypt_begin:
  504         pushl   %ebp
  505         pushl   %ebx
  506         pushl   %esi
  507         pushl   %edi
  508         movl    20(%esp),%edi
  509         movl    24(%esp),%esi
  510         movl    28(%esp),%edx
  511         movl    32(%esp),%ecx
  512         testl   $15,%edx
  513         jnz     .L030cfb_abort
  514         testl   $15,%ecx
  515         jnz     .L030cfb_abort
  516         leal    .Lpadlock_saved_context-.L031cfb_pic_point,%eax
  517         pushfl
  518         cld
  519         call    _padlock_verify_ctx
  520 .L031cfb_pic_point:
  521         leal    16(%edx),%edx
  522         xorl    %eax,%eax
  523         xorl    %ebx,%ebx
  524         testl   $32,(%edx)
  525         jnz     .L032cfb_aligned
  526         testl   $15,%edi
  527         setz    %al
  528         testl   $15,%esi
  529         setz    %bl
  530         testl   %ebx,%eax
  531         jnz     .L032cfb_aligned
  532         negl    %eax
  533         movl    $512,%ebx
  534         notl    %eax
  535         leal    -24(%esp),%ebp
  536         cmpl    %ebx,%ecx
  537         cmovcl  %ecx,%ebx
  538         andl    %ebx,%eax
  539         movl    %ecx,%ebx
  540         negl    %eax
  541         andl    $511,%ebx
  542         leal    (%eax,%ebp,1),%esp
  543         movl    $512,%eax
  544         cmovzl  %eax,%ebx
  545         movl    %ebp,%eax
  546         andl    $-16,%ebp
  547         andl    $-16,%esp
  548         movl    %eax,16(%ebp)
  549         jmp     .L033cfb_loop
  550 .align  16
  551 .L033cfb_loop:
  552         movl    %edi,(%ebp)
  553         movl    %esi,4(%ebp)
  554         movl    %ecx,8(%ebp)
  555         movl    %ebx,%ecx
  556         movl    %ebx,12(%ebp)
  557         testl   $15,%edi
  558         cmovnzl %esp,%edi
  559         testl   $15,%esi
  560         jz      .L034cfb_inp_aligned
  561         shrl    $2,%ecx
  562 .byte   243,165
  563         subl    %ebx,%edi
  564         movl    %ebx,%ecx
  565         movl    %edi,%esi
  566 .L034cfb_inp_aligned:
  567         leal    -16(%edx),%eax
  568         leal    16(%edx),%ebx
  569         shrl    $4,%ecx
  570 .byte   243,15,167,224
  571         movaps  (%eax),%xmm0
  572         movaps  %xmm0,-16(%edx)
  573         movl    (%ebp),%edi
  574         movl    12(%ebp),%ebx
  575         testl   $15,%edi
  576         jz      .L035cfb_out_aligned
  577         movl    %ebx,%ecx
  578         leal    (%esp),%esi
  579         shrl    $2,%ecx
  580 .byte   243,165
  581         subl    %ebx,%edi
  582 .L035cfb_out_aligned:
  583         movl    4(%ebp),%esi
  584         movl    8(%ebp),%ecx
  585         addl    %ebx,%edi
  586         addl    %ebx,%esi
  587         subl    %ebx,%ecx
  588         movl    $512,%ebx
  589         jnz     .L033cfb_loop
  590         cmpl    %ebp,%esp
  591         je      .L036cfb_done
  592         pxor    %xmm0,%xmm0
  593         leal    (%esp),%eax
  594 .L037cfb_bzero:
  595         movaps  %xmm0,(%eax)
  596         leal    16(%eax),%eax
  597         cmpl    %eax,%ebp
  598         ja      .L037cfb_bzero
  599 .L036cfb_done:
  600         movl    16(%ebp),%ebp
  601         leal    24(%ebp),%esp
  602         jmp     .L038cfb_exit
  603 .align  16
  604 .L032cfb_aligned:
  605         leal    -16(%edx),%eax
  606         leal    16(%edx),%ebx
  607         shrl    $4,%ecx
  608 .byte   243,15,167,224
  609         movaps  (%eax),%xmm0
  610         movaps  %xmm0,-16(%edx)
  611 .L038cfb_exit:
  612         movl    $1,%eax
  613         leal    4(%esp),%esp
  614 .L030cfb_abort:
  615         popl    %edi
  616         popl    %esi
  617         popl    %ebx
  618         popl    %ebp
  619         ret
  620 .size   padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin
  621 .globl  padlock_ofb_encrypt
  622 .type   padlock_ofb_encrypt,@function
  623 .align  16
  624 padlock_ofb_encrypt:
  625 .L_padlock_ofb_encrypt_begin:
  626         pushl   %ebp
  627         pushl   %ebx
  628         pushl   %esi
  629         pushl   %edi
  630         movl    20(%esp),%edi
  631         movl    24(%esp),%esi
  632         movl    28(%esp),%edx
  633         movl    32(%esp),%ecx
  634         testl   $15,%edx
  635         jnz     .L039ofb_abort
  636         testl   $15,%ecx
  637         jnz     .L039ofb_abort
  638         leal    .Lpadlock_saved_context-.L040ofb_pic_point,%eax
  639         pushfl
  640         cld
  641         call    _padlock_verify_ctx
  642 .L040ofb_pic_point:
  643         leal    16(%edx),%edx
  644         xorl    %eax,%eax
  645         xorl    %ebx,%ebx
  646         testl   $32,(%edx)
  647         jnz     .L041ofb_aligned
  648         testl   $15,%edi
  649         setz    %al
  650         testl   $15,%esi
  651         setz    %bl
  652         testl   %ebx,%eax
  653         jnz     .L041ofb_aligned
  654         negl    %eax
  655         movl    $512,%ebx
  656         notl    %eax
  657         leal    -24(%esp),%ebp
  658         cmpl    %ebx,%ecx
  659         cmovcl  %ecx,%ebx
  660         andl    %ebx,%eax
  661         movl    %ecx,%ebx
  662         negl    %eax
  663         andl    $511,%ebx
  664         leal    (%eax,%ebp,1),%esp
  665         movl    $512,%eax
  666         cmovzl  %eax,%ebx
  667         movl    %ebp,%eax
  668         andl    $-16,%ebp
  669         andl    $-16,%esp
  670         movl    %eax,16(%ebp)
  671         jmp     .L042ofb_loop
  672 .align  16
  673 .L042ofb_loop:
  674         movl    %edi,(%ebp)
  675         movl    %esi,4(%ebp)
  676         movl    %ecx,8(%ebp)
  677         movl    %ebx,%ecx
  678         movl    %ebx,12(%ebp)
  679         testl   $15,%edi
  680         cmovnzl %esp,%edi
  681         testl   $15,%esi
  682         jz      .L043ofb_inp_aligned
  683         shrl    $2,%ecx
  684 .byte   243,165
  685         subl    %ebx,%edi
  686         movl    %ebx,%ecx
  687         movl    %edi,%esi
  688 .L043ofb_inp_aligned:
  689         leal    -16(%edx),%eax
  690         leal    16(%edx),%ebx
  691         shrl    $4,%ecx
  692 .byte   243,15,167,232
  693         movaps  (%eax),%xmm0
  694         movaps  %xmm0,-16(%edx)
  695         movl    (%ebp),%edi
  696         movl    12(%ebp),%ebx
  697         testl   $15,%edi
  698         jz      .L044ofb_out_aligned
  699         movl    %ebx,%ecx
  700         leal    (%esp),%esi
  701         shrl    $2,%ecx
  702 .byte   243,165
  703         subl    %ebx,%edi
  704 .L044ofb_out_aligned:
  705         movl    4(%ebp),%esi
  706         movl    8(%ebp),%ecx
  707         addl    %ebx,%edi
  708         addl    %ebx,%esi
  709         subl    %ebx,%ecx
  710         movl    $512,%ebx
  711         jnz     .L042ofb_loop
  712         cmpl    %ebp,%esp
  713         je      .L045ofb_done
  714         pxor    %xmm0,%xmm0
  715         leal    (%esp),%eax
  716 .L046ofb_bzero:
  717         movaps  %xmm0,(%eax)
  718         leal    16(%eax),%eax
  719         cmpl    %eax,%ebp
  720         ja      .L046ofb_bzero
  721 .L045ofb_done:
  722         movl    16(%ebp),%ebp
  723         leal    24(%ebp),%esp
  724         jmp     .L047ofb_exit
  725 .align  16
  726 .L041ofb_aligned:
  727         leal    -16(%edx),%eax
  728         leal    16(%edx),%ebx
  729         shrl    $4,%ecx
  730 .byte   243,15,167,232
  731         movaps  (%eax),%xmm0
  732         movaps  %xmm0,-16(%edx)
  733 .L047ofb_exit:
  734         movl    $1,%eax
  735         leal    4(%esp),%esp
  736 .L039ofb_abort:
  737         popl    %edi
  738         popl    %esi
  739         popl    %ebx
  740         popl    %ebp
  741         ret
  742 .size   padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin
  743 .globl  padlock_ctr32_encrypt
  744 .type   padlock_ctr32_encrypt,@function
  745 .align  16
  746 padlock_ctr32_encrypt:
  747 .L_padlock_ctr32_encrypt_begin:
  748         pushl   %ebp
  749         pushl   %ebx
  750         pushl   %esi
  751         pushl   %edi
  752         movl    20(%esp),%edi
  753         movl    24(%esp),%esi
  754         movl    28(%esp),%edx
  755         movl    32(%esp),%ecx
  756         testl   $15,%edx
  757         jnz     .L048ctr32_abort
  758         testl   $15,%ecx
  759         jnz     .L048ctr32_abort
  760         leal    .Lpadlock_saved_context-.L049ctr32_pic_point,%eax
  761         pushfl
  762         cld
  763         call    _padlock_verify_ctx
  764 .L049ctr32_pic_point:
  765         leal    16(%edx),%edx
  766         xorl    %eax,%eax
  767         movq    -16(%edx),%mm0
  768         movl    $512,%ebx
  769         notl    %eax
  770         leal    -24(%esp),%ebp
  771         cmpl    %ebx,%ecx
  772         cmovcl  %ecx,%ebx
  773         andl    %ebx,%eax
  774         movl    %ecx,%ebx
  775         negl    %eax
  776         andl    $511,%ebx
  777         leal    (%eax,%ebp,1),%esp
  778         movl    $512,%eax
  779         cmovzl  %eax,%ebx
  780         movl    %ebp,%eax
  781         andl    $-16,%ebp
  782         andl    $-16,%esp
  783         movl    %eax,16(%ebp)
  784         jmp     .L050ctr32_loop
  785 .align  16
  786 .L050ctr32_loop:
  787         movl    %edi,(%ebp)
  788         movl    %esi,4(%ebp)
  789         movl    %ecx,8(%ebp)
  790         movl    %ebx,%ecx
  791         movl    %ebx,12(%ebp)
  792         movl    -4(%edx),%ecx
  793         xorl    %edi,%edi
  794         movl    -8(%edx),%eax
  795 .L051ctr32_prepare:
  796         movl    %ecx,12(%esp,%edi,1)
  797         bswap   %ecx
  798         movq    %mm0,(%esp,%edi,1)
  799         incl    %ecx
  800         movl    %eax,8(%esp,%edi,1)
  801         bswap   %ecx
  802         leal    16(%edi),%edi
  803         cmpl    %ebx,%edi
  804         jb      .L051ctr32_prepare
  805         movl    %ecx,-4(%edx)
  806         leal    (%esp),%esi
  807         leal    (%esp),%edi
  808         movl    %ebx,%ecx
  809         leal    -16(%edx),%eax
  810         leal    16(%edx),%ebx
  811         shrl    $4,%ecx
  812 .byte   243,15,167,200
  813         movl    (%ebp),%edi
  814         movl    12(%ebp),%ebx
  815         movl    4(%ebp),%esi
  816         xorl    %ecx,%ecx
  817 .L052ctr32_xor:
  818         movups  (%esi,%ecx,1),%xmm1
  819         leal    16(%ecx),%ecx
  820         pxor    -16(%esp,%ecx,1),%xmm1
  821         movups  %xmm1,-16(%edi,%ecx,1)
  822         cmpl    %ebx,%ecx
  823         jb      .L052ctr32_xor
  824         movl    8(%ebp),%ecx
  825         addl    %ebx,%edi
  826         addl    %ebx,%esi
  827         subl    %ebx,%ecx
  828         movl    $512,%ebx
  829         jnz     .L050ctr32_loop
  830         pxor    %xmm0,%xmm0
  831         leal    (%esp),%eax
  832 .L053ctr32_bzero:
  833         movaps  %xmm0,(%eax)
  834         leal    16(%eax),%eax
  835         cmpl    %eax,%ebp
  836         ja      .L053ctr32_bzero
  837 .L054ctr32_done:
  838         movl    16(%ebp),%ebp
  839         leal    24(%ebp),%esp
  840         movl    $1,%eax
  841         leal    4(%esp),%esp
  842         emms
  843 .L048ctr32_abort:
  844         popl    %edi
  845         popl    %esi
  846         popl    %ebx
  847         popl    %ebp
  848         ret
  849 .size   padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin
  850 .globl  padlock_xstore
  851 .type   padlock_xstore,@function
  852 .align  16
  853 padlock_xstore:
  854 .L_padlock_xstore_begin:
  855         pushl   %edi
  856         movl    8(%esp),%edi
  857         movl    12(%esp),%edx
  858 .byte   15,167,192
  859         popl    %edi
  860         ret
  861 .size   padlock_xstore,.-.L_padlock_xstore_begin
  862 .type   _win32_segv_handler,@function
  863 .align  16
  864 _win32_segv_handler:
  865         movl    $1,%eax
  866         movl    4(%esp),%edx
  867         movl    12(%esp),%ecx
  868         cmpl    $3221225477,(%edx)
  869         jne     .L055ret
  870         addl    $4,184(%ecx)
  871         movl    $0,%eax
  872 .L055ret:
  873         ret
  874 .size   _win32_segv_handler,.-_win32_segv_handler
  875 .globl  padlock_sha1_oneshot
  876 .type   padlock_sha1_oneshot,@function
  877 .align  16
  878 padlock_sha1_oneshot:
  879 .L_padlock_sha1_oneshot_begin:
  880         pushl   %edi
  881         pushl   %esi
  882         xorl    %eax,%eax
  883         movl    12(%esp),%edi
  884         movl    16(%esp),%esi
  885         movl    20(%esp),%ecx
  886         movl    %esp,%edx
  887         addl    $-128,%esp
  888         movups  (%edi),%xmm0
  889         andl    $-16,%esp
  890         movl    16(%edi),%eax
  891         movaps  %xmm0,(%esp)
  892         movl    %esp,%edi
  893         movl    %eax,16(%esp)
  894         xorl    %eax,%eax
  895 .byte   243,15,166,200
  896         movaps  (%esp),%xmm0
  897         movl    16(%esp),%eax
  898         movl    %edx,%esp
  899         movl    12(%esp),%edi
  900         movups  %xmm0,(%edi)
  901         movl    %eax,16(%edi)
  902         popl    %esi
  903         popl    %edi
  904         ret
  905 .size   padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin
  906 .globl  padlock_sha1_blocks
  907 .type   padlock_sha1_blocks,@function
  908 .align  16
  909 padlock_sha1_blocks:
  910 .L_padlock_sha1_blocks_begin:
  911         pushl   %edi
  912         pushl   %esi
  913         movl    12(%esp),%edi
  914         movl    16(%esp),%esi
  915         movl    %esp,%edx
  916         movl    20(%esp),%ecx
  917         addl    $-128,%esp
  918         movups  (%edi),%xmm0
  919         andl    $-16,%esp
  920         movl    16(%edi),%eax
  921         movaps  %xmm0,(%esp)
  922         movl    %esp,%edi
  923         movl    %eax,16(%esp)
  924         movl    $-1,%eax
  925 .byte   243,15,166,200
  926         movaps  (%esp),%xmm0
  927         movl    16(%esp),%eax
  928         movl    %edx,%esp
  929         movl    12(%esp),%edi
  930         movups  %xmm0,(%edi)
  931         movl    %eax,16(%edi)
  932         popl    %esi
  933         popl    %edi
  934         ret
  935 .size   padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin
  936 .globl  padlock_sha256_oneshot
  937 .type   padlock_sha256_oneshot,@function
  938 .align  16
  939 padlock_sha256_oneshot:
  940 .L_padlock_sha256_oneshot_begin:
  941         pushl   %edi
  942         pushl   %esi
  943         xorl    %eax,%eax
  944         movl    12(%esp),%edi
  945         movl    16(%esp),%esi
  946         movl    20(%esp),%ecx
  947         movl    %esp,%edx
  948         addl    $-128,%esp
  949         movups  (%edi),%xmm0
  950         andl    $-16,%esp
  951         movups  16(%edi),%xmm1
  952         movaps  %xmm0,(%esp)
  953         movl    %esp,%edi
  954         movaps  %xmm1,16(%esp)
  955         xorl    %eax,%eax
  956 .byte   243,15,166,208
  957         movaps  (%esp),%xmm0
  958         movaps  16(%esp),%xmm1
  959         movl    %edx,%esp
  960         movl    12(%esp),%edi
  961         movups  %xmm0,(%edi)
  962         movups  %xmm1,16(%edi)
  963         popl    %esi
  964         popl    %edi
  965         ret
  966 .size   padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin
  967 .globl  padlock_sha256_blocks
  968 .type   padlock_sha256_blocks,@function
  969 .align  16
  970 padlock_sha256_blocks:
  971 .L_padlock_sha256_blocks_begin:
  972         pushl   %edi
  973         pushl   %esi
  974         movl    12(%esp),%edi
  975         movl    16(%esp),%esi
  976         movl    20(%esp),%ecx
  977         movl    %esp,%edx
  978         addl    $-128,%esp
  979         movups  (%edi),%xmm0
  980         andl    $-16,%esp
  981         movups  16(%edi),%xmm1
  982         movaps  %xmm0,(%esp)
  983         movl    %esp,%edi
  984         movaps  %xmm1,16(%esp)
  985         movl    $-1,%eax
  986 .byte   243,15,166,208
  987         movaps  (%esp),%xmm0
  988         movaps  16(%esp),%xmm1
  989         movl    %edx,%esp
  990         movl    12(%esp),%edi
  991         movups  %xmm0,(%edi)
  992         movups  %xmm1,16(%edi)
  993         popl    %esi
  994         popl    %edi
  995         ret
  996 .size   padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin
  997 .globl  padlock_sha512_blocks
  998 .type   padlock_sha512_blocks,@function
  999 .align  16
 1000 padlock_sha512_blocks:
 1001 .L_padlock_sha512_blocks_begin:
 1002         pushl   %edi
 1003         pushl   %esi
 1004         movl    12(%esp),%edi
 1005         movl    16(%esp),%esi
 1006         movl    20(%esp),%ecx
 1007         movl    %esp,%edx
 1008         addl    $-128,%esp
 1009         movups  (%edi),%xmm0
 1010         andl    $-16,%esp
 1011         movups  16(%edi),%xmm1
 1012         movups  32(%edi),%xmm2
 1013         movups  48(%edi),%xmm3
 1014         movaps  %xmm0,(%esp)
 1015         movl    %esp,%edi
 1016         movaps  %xmm1,16(%esp)
 1017         movaps  %xmm2,32(%esp)
 1018         movaps  %xmm3,48(%esp)
 1019 .byte   243,15,166,224
 1020         movaps  (%esp),%xmm0
 1021         movaps  16(%esp),%xmm1
 1022         movaps  32(%esp),%xmm2
 1023         movaps  48(%esp),%xmm3
 1024         movl    %edx,%esp
 1025         movl    12(%esp),%edi
 1026         movups  %xmm0,(%edi)
 1027         movups  %xmm1,16(%edi)
 1028         movups  %xmm2,32(%edi)
 1029         movups  %xmm3,48(%edi)
 1030         popl    %esi
 1031         popl    %edi
 1032         ret
 1033 .size   padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin
 1034 .byte   86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32
 1035 .byte   109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65
 1036 .byte   77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101
 1037 .byte   110,115,115,108,46,111,114,103,62,0
 1038 .align  16
 1039 .data
 1040 .align  4
 1041 .Lpadlock_saved_context:
 1042 .long   0
 1043 #else
 1044 .text
 1045 .globl  padlock_capability
 1046 .type   padlock_capability,@function
 1047 .align  16
 1048 padlock_capability:
 1049 .L_padlock_capability_begin:
 1050         pushl   %ebx
 1051         pushfl
 1052         popl    %eax
 1053         movl    %eax,%ecx
 1054         xorl    $2097152,%eax
 1055         pushl   %eax
 1056         popfl
 1057         pushfl
 1058         popl    %eax
 1059         xorl    %eax,%ecx
 1060         xorl    %eax,%eax
 1061         btl     $21,%ecx
 1062         jnc     .L000noluck
 1063         .byte   0x0f,0xa2
 1064         xorl    %eax,%eax
 1065         cmpl    $0x746e6543,%ebx
 1066         jne     .L001zhaoxin
 1067         cmpl    $0x48727561,%edx
 1068         jne     .L000noluck
 1069         cmpl    $0x736c7561,%ecx
 1070         jne     .L000noluck
 1071         jmp     .L002zhaoxinEnd
 1072 .L001zhaoxin:
 1073         cmpl    $0x68532020,%ebx
 1074         jne     .L000noluck
 1075         cmpl    $0x68676e61,%edx
 1076         jne     .L000noluck
 1077         cmpl    $0x20206961,%ecx
 1078         jne     .L000noluck
 1079 .L002zhaoxinEnd:
 1080         movl    $3221225472,%eax
 1081         .byte   0x0f,0xa2
 1082         movl    %eax,%edx
 1083         xorl    %eax,%eax
 1084         cmpl    $3221225473,%edx
 1085         jb      .L000noluck
 1086         movl    $1,%eax
 1087         .byte   0x0f,0xa2
 1088         orl     $15,%eax
 1089         xorl    %ebx,%ebx
 1090         andl    $4095,%eax
 1091         cmpl    $1791,%eax
 1092         sete    %bl
 1093         movl    $3221225473,%eax
 1094         pushl   %ebx
 1095         .byte   0x0f,0xa2
 1096         popl    %ebx
 1097         movl    %edx,%eax
 1098         shll    $4,%ebx
 1099         andl    $4294967279,%eax
 1100         orl     %ebx,%eax
 1101 .L000noluck:
 1102         popl    %ebx
 1103         ret
 1104 .size   padlock_capability,.-.L_padlock_capability_begin
 1105 .globl  padlock_key_bswap
 1106 .type   padlock_key_bswap,@function
 1107 .align  16
 1108 padlock_key_bswap:
 1109 .L_padlock_key_bswap_begin:
 1110         movl    4(%esp),%edx
 1111         movl    240(%edx),%ecx
 1112 .L003bswap_loop:
 1113         movl    (%edx),%eax
 1114         bswap   %eax
 1115         movl    %eax,(%edx)
 1116         leal    4(%edx),%edx
 1117         subl    $1,%ecx
 1118         jnz     .L003bswap_loop
 1119         ret
 1120 .size   padlock_key_bswap,.-.L_padlock_key_bswap_begin
 1121 .globl  padlock_verify_context
 1122 .type   padlock_verify_context,@function
 1123 .align  16
 1124 padlock_verify_context:
 1125 .L_padlock_verify_context_begin:
 1126         movl    4(%esp),%edx
 1127         leal    .Lpadlock_saved_context-.L004verify_pic_point,%eax
 1128         pushfl
 1129         call    _padlock_verify_ctx
 1130 .L004verify_pic_point:
 1131         leal    4(%esp),%esp
 1132         ret
 1133 .size   padlock_verify_context,.-.L_padlock_verify_context_begin
 1134 .type   _padlock_verify_ctx,@function
 1135 .align  16
 1136 _padlock_verify_ctx:
 1137         addl    (%esp),%eax
 1138         btl     $30,4(%esp)
 1139         jnc     .L005verified
 1140         cmpl    (%eax),%edx
 1141         je      .L005verified
 1142         pushfl
 1143         popfl
 1144 .L005verified:
 1145         movl    %edx,(%eax)
 1146         ret
 1147 .size   _padlock_verify_ctx,.-_padlock_verify_ctx
 1148 .globl  padlock_reload_key
 1149 .type   padlock_reload_key,@function
 1150 .align  16
 1151 padlock_reload_key:
 1152 .L_padlock_reload_key_begin:
 1153         pushfl
 1154         popfl
 1155         ret
 1156 .size   padlock_reload_key,.-.L_padlock_reload_key_begin
 1157 .globl  padlock_aes_block
 1158 .type   padlock_aes_block,@function
 1159 .align  16
 1160 padlock_aes_block:
 1161 .L_padlock_aes_block_begin:
 1162         pushl   %edi
 1163         pushl   %esi
 1164         pushl   %ebx
 1165         movl    16(%esp),%edi
 1166         movl    20(%esp),%esi
 1167         movl    24(%esp),%edx
 1168         movl    $1,%ecx
 1169         leal    32(%edx),%ebx
 1170         leal    16(%edx),%edx
 1171 .byte   243,15,167,200
 1172         popl    %ebx
 1173         popl    %esi
 1174         popl    %edi
 1175         ret
 1176 .size   padlock_aes_block,.-.L_padlock_aes_block_begin
 1177 .globl  padlock_ecb_encrypt
 1178 .type   padlock_ecb_encrypt,@function
 1179 .align  16
 1180 padlock_ecb_encrypt:
 1181 .L_padlock_ecb_encrypt_begin:
 1182         pushl   %ebp
 1183         pushl   %ebx
 1184         pushl   %esi
 1185         pushl   %edi
 1186         movl    20(%esp),%edi
 1187         movl    24(%esp),%esi
 1188         movl    28(%esp),%edx
 1189         movl    32(%esp),%ecx
 1190         testl   $15,%edx
 1191         jnz     .L006ecb_abort
 1192         testl   $15,%ecx
 1193         jnz     .L006ecb_abort
 1194         leal    .Lpadlock_saved_context-.L007ecb_pic_point,%eax
 1195         pushfl
 1196         cld
 1197         call    _padlock_verify_ctx
 1198 .L007ecb_pic_point:
 1199         leal    16(%edx),%edx
 1200         xorl    %eax,%eax
 1201         xorl    %ebx,%ebx
 1202         testl   $32,(%edx)
 1203         jnz     .L008ecb_aligned
 1204         testl   $15,%edi
 1205         setz    %al
 1206         testl   $15,%esi
 1207         setz    %bl
 1208         testl   %ebx,%eax
 1209         jnz     .L008ecb_aligned
 1210         negl    %eax
 1211         movl    $512,%ebx
 1212         notl    %eax
 1213         leal    -24(%esp),%ebp
 1214         cmpl    %ebx,%ecx
 1215         cmovcl  %ecx,%ebx
 1216         andl    %ebx,%eax
 1217         movl    %ecx,%ebx
 1218         negl    %eax
 1219         andl    $511,%ebx
 1220         leal    (%eax,%ebp,1),%esp
 1221         movl    $512,%eax
 1222         cmovzl  %eax,%ebx
 1223         movl    %ebp,%eax
 1224         andl    $-16,%ebp
 1225         andl    $-16,%esp
 1226         movl    %eax,16(%ebp)
 1227         cmpl    %ebx,%ecx
 1228         ja      .L009ecb_loop
 1229         movl    %esi,%eax
 1230         cmpl    %esp,%ebp
 1231         cmovel  %edi,%eax
 1232         addl    %ecx,%eax
 1233         negl    %eax
 1234         andl    $4095,%eax
 1235         cmpl    $128,%eax
 1236         movl    $-128,%eax
 1237         cmovael %ebx,%eax
 1238         andl    %eax,%ebx
 1239         jz      .L010ecb_unaligned_tail
 1240         jmp     .L009ecb_loop
 1241 .align  16
 1242 .L009ecb_loop:
 1243         movl    %edi,(%ebp)
 1244         movl    %esi,4(%ebp)
 1245         movl    %ecx,8(%ebp)
 1246         movl    %ebx,%ecx
 1247         movl    %ebx,12(%ebp)
 1248         testl   $15,%edi
 1249         cmovnzl %esp,%edi
 1250         testl   $15,%esi
 1251         jz      .L011ecb_inp_aligned
 1252         shrl    $2,%ecx
 1253 .byte   243,165
 1254         subl    %ebx,%edi
 1255         movl    %ebx,%ecx
 1256         movl    %edi,%esi
 1257 .L011ecb_inp_aligned:
 1258         leal    -16(%edx),%eax
 1259         leal    16(%edx),%ebx
 1260         shrl    $4,%ecx
 1261 .byte   243,15,167,200
 1262         movl    (%ebp),%edi
 1263         movl    12(%ebp),%ebx
 1264         testl   $15,%edi
 1265         jz      .L012ecb_out_aligned
 1266         movl    %ebx,%ecx
 1267         leal    (%esp),%esi
 1268         shrl    $2,%ecx
 1269 .byte   243,165
 1270         subl    %ebx,%edi
 1271 .L012ecb_out_aligned:
 1272         movl    4(%ebp),%esi
 1273         movl    8(%ebp),%ecx
 1274         addl    %ebx,%edi
 1275         addl    %ebx,%esi
 1276         subl    %ebx,%ecx
 1277         movl    $512,%ebx
 1278         jz      .L013ecb_break
 1279         cmpl    %ebx,%ecx
 1280         jae     .L009ecb_loop
 1281 .L010ecb_unaligned_tail:
 1282         xorl    %eax,%eax
 1283         cmpl    %ebp,%esp
 1284         cmovel  %ecx,%eax
 1285         subl    %eax,%esp
 1286         movl    %edi,%eax
 1287         movl    %ecx,%ebx
 1288         shrl    $2,%ecx
 1289         leal    (%esp),%edi
 1290 .byte   243,165
 1291         movl    %esp,%esi
 1292         movl    %eax,%edi
 1293         movl    %ebx,%ecx
 1294         jmp     .L009ecb_loop
 1295 .align  16
 1296 .L013ecb_break:
 1297         cmpl    %ebp,%esp
 1298         je      .L014ecb_done
 1299         pxor    %xmm0,%xmm0
 1300         leal    (%esp),%eax
 1301 .L015ecb_bzero:
 1302         movaps  %xmm0,(%eax)
 1303         leal    16(%eax),%eax
 1304         cmpl    %eax,%ebp
 1305         ja      .L015ecb_bzero
 1306 .L014ecb_done:
 1307         movl    16(%ebp),%ebp
 1308         leal    24(%ebp),%esp
 1309         jmp     .L016ecb_exit
 1310 .align  16
 1311 .L008ecb_aligned:
 1312         leal    (%esi,%ecx,1),%ebp
 1313         negl    %ebp
 1314         andl    $4095,%ebp
 1315         xorl    %eax,%eax
 1316         cmpl    $128,%ebp
 1317         movl    $127,%ebp
 1318         cmovael %eax,%ebp
 1319         andl    %ecx,%ebp
 1320         subl    %ebp,%ecx
 1321         jz      .L017ecb_aligned_tail
 1322         leal    -16(%edx),%eax
 1323         leal    16(%edx),%ebx
 1324         shrl    $4,%ecx
 1325 .byte   243,15,167,200
 1326         testl   %ebp,%ebp
 1327         jz      .L016ecb_exit
 1328 .L017ecb_aligned_tail:
 1329         movl    %ebp,%ecx
 1330         leal    -24(%esp),%ebp
 1331         movl    %ebp,%esp
 1332         movl    %ebp,%eax
 1333         subl    %ecx,%esp
 1334         andl    $-16,%ebp
 1335         andl    $-16,%esp
 1336         movl    %eax,16(%ebp)
 1337         movl    %edi,%eax
 1338         movl    %ecx,%ebx
 1339         shrl    $2,%ecx
 1340         leal    (%esp),%edi
 1341 .byte   243,165
 1342         movl    %esp,%esi
 1343         movl    %eax,%edi
 1344         movl    %ebx,%ecx
 1345         jmp     .L009ecb_loop
 1346 .L016ecb_exit:
 1347         movl    $1,%eax
 1348         leal    4(%esp),%esp
 1349 .L006ecb_abort:
 1350         popl    %edi
 1351         popl    %esi
 1352         popl    %ebx
 1353         popl    %ebp
 1354         ret
 1355 .size   padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin
 1356 .globl  padlock_cbc_encrypt
 1357 .type   padlock_cbc_encrypt,@function
 1358 .align  16
 1359 padlock_cbc_encrypt:
 1360 .L_padlock_cbc_encrypt_begin:
 1361         pushl   %ebp
 1362         pushl   %ebx
 1363         pushl   %esi
 1364         pushl   %edi
 1365         movl    20(%esp),%edi
 1366         movl    24(%esp),%esi
 1367         movl    28(%esp),%edx
 1368         movl    32(%esp),%ecx
 1369         testl   $15,%edx
 1370         jnz     .L018cbc_abort
 1371         testl   $15,%ecx
 1372         jnz     .L018cbc_abort
 1373         leal    .Lpadlock_saved_context-.L019cbc_pic_point,%eax
 1374         pushfl
 1375         cld
 1376         call    _padlock_verify_ctx
 1377 .L019cbc_pic_point:
 1378         leal    16(%edx),%edx
 1379         xorl    %eax,%eax
 1380         xorl    %ebx,%ebx
 1381         testl   $32,(%edx)
 1382         jnz     .L020cbc_aligned
 1383         testl   $15,%edi
 1384         setz    %al
 1385         testl   $15,%esi
 1386         setz    %bl
 1387         testl   %ebx,%eax
 1388         jnz     .L020cbc_aligned
 1389         negl    %eax
 1390         movl    $512,%ebx
 1391         notl    %eax
 1392         leal    -24(%esp),%ebp
 1393         cmpl    %ebx,%ecx
 1394         cmovcl  %ecx,%ebx
 1395         andl    %ebx,%eax
 1396         movl    %ecx,%ebx
 1397         negl    %eax
 1398         andl    $511,%ebx
 1399         leal    (%eax,%ebp,1),%esp
 1400         movl    $512,%eax
 1401         cmovzl  %eax,%ebx
 1402         movl    %ebp,%eax
 1403         andl    $-16,%ebp
 1404         andl    $-16,%esp
 1405         movl    %eax,16(%ebp)
 1406         cmpl    %ebx,%ecx
 1407         ja      .L021cbc_loop
 1408         movl    %esi,%eax
 1409         cmpl    %esp,%ebp
 1410         cmovel  %edi,%eax
 1411         addl    %ecx,%eax
 1412         negl    %eax
 1413         andl    $4095,%eax
 1414         cmpl    $64,%eax
 1415         movl    $-64,%eax
 1416         cmovael %ebx,%eax
 1417         andl    %eax,%ebx
 1418         jz      .L022cbc_unaligned_tail
 1419         jmp     .L021cbc_loop
 1420 .align  16
 1421 .L021cbc_loop:
 1422         movl    %edi,(%ebp)
 1423         movl    %esi,4(%ebp)
 1424         movl    %ecx,8(%ebp)
 1425         movl    %ebx,%ecx
 1426         movl    %ebx,12(%ebp)
 1427         testl   $15,%edi
 1428         cmovnzl %esp,%edi
 1429         testl   $15,%esi
 1430         jz      .L023cbc_inp_aligned
 1431         shrl    $2,%ecx
 1432 .byte   243,165
 1433         subl    %ebx,%edi
 1434         movl    %ebx,%ecx
 1435         movl    %edi,%esi
 1436 .L023cbc_inp_aligned:
 1437         leal    -16(%edx),%eax
 1438         leal    16(%edx),%ebx
 1439         shrl    $4,%ecx
 1440 .byte   243,15,167,208
 1441         movaps  (%eax),%xmm0
 1442         movaps  %xmm0,-16(%edx)
 1443         movl    (%ebp),%edi
 1444         movl    12(%ebp),%ebx
 1445         testl   $15,%edi
 1446         jz      .L024cbc_out_aligned
 1447         movl    %ebx,%ecx
 1448         leal    (%esp),%esi
 1449         shrl    $2,%ecx
 1450 .byte   243,165
 1451         subl    %ebx,%edi
 1452 .L024cbc_out_aligned:
 1453         movl    4(%ebp),%esi
 1454         movl    8(%ebp),%ecx
 1455         addl    %ebx,%edi
 1456         addl    %ebx,%esi
 1457         subl    %ebx,%ecx
 1458         movl    $512,%ebx
 1459         jz      .L025cbc_break
 1460         cmpl    %ebx,%ecx
 1461         jae     .L021cbc_loop
 1462 .L022cbc_unaligned_tail:
 1463         xorl    %eax,%eax
 1464         cmpl    %ebp,%esp
 1465         cmovel  %ecx,%eax
 1466         subl    %eax,%esp
 1467         movl    %edi,%eax
 1468         movl    %ecx,%ebx
 1469         shrl    $2,%ecx
 1470         leal    (%esp),%edi
 1471 .byte   243,165
 1472         movl    %esp,%esi
 1473         movl    %eax,%edi
 1474         movl    %ebx,%ecx
 1475         jmp     .L021cbc_loop
 1476 .align  16
 1477 .L025cbc_break:
 1478         cmpl    %ebp,%esp
 1479         je      .L026cbc_done
 1480         pxor    %xmm0,%xmm0
 1481         leal    (%esp),%eax
 1482 .L027cbc_bzero:
 1483         movaps  %xmm0,(%eax)
 1484         leal    16(%eax),%eax
 1485         cmpl    %eax,%ebp
 1486         ja      .L027cbc_bzero
 1487 .L026cbc_done:
 1488         movl    16(%ebp),%ebp
 1489         leal    24(%ebp),%esp
 1490         jmp     .L028cbc_exit
 1491 .align  16
 1492 .L020cbc_aligned:
 1493         leal    (%esi,%ecx,1),%ebp
 1494         negl    %ebp
 1495         andl    $4095,%ebp
 1496         xorl    %eax,%eax
 1497         cmpl    $64,%ebp
 1498         movl    $63,%ebp
 1499         cmovael %eax,%ebp
 1500         andl    %ecx,%ebp
 1501         subl    %ebp,%ecx
 1502         jz      .L029cbc_aligned_tail
 1503         leal    -16(%edx),%eax
 1504         leal    16(%edx),%ebx
 1505         shrl    $4,%ecx
 1506 .byte   243,15,167,208
 1507         movaps  (%eax),%xmm0
 1508         movaps  %xmm0,-16(%edx)
 1509         testl   %ebp,%ebp
 1510         jz      .L028cbc_exit
 1511 .L029cbc_aligned_tail:
 1512         movl    %ebp,%ecx
 1513         leal    -24(%esp),%ebp
 1514         movl    %ebp,%esp
 1515         movl    %ebp,%eax
 1516         subl    %ecx,%esp
 1517         andl    $-16,%ebp
 1518         andl    $-16,%esp
 1519         movl    %eax,16(%ebp)
 1520         movl    %edi,%eax
 1521         movl    %ecx,%ebx
 1522         shrl    $2,%ecx
 1523         leal    (%esp),%edi
 1524 .byte   243,165
 1525         movl    %esp,%esi
 1526         movl    %eax,%edi
 1527         movl    %ebx,%ecx
 1528         jmp     .L021cbc_loop
 1529 .L028cbc_exit:
 1530         movl    $1,%eax
 1531         leal    4(%esp),%esp
 1532 .L018cbc_abort:
 1533         popl    %edi
 1534         popl    %esi
 1535         popl    %ebx
 1536         popl    %ebp
 1537         ret
 1538 .size   padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin
 1539 .globl  padlock_cfb_encrypt
 1540 .type   padlock_cfb_encrypt,@function
 1541 .align  16
 1542 padlock_cfb_encrypt:
 1543 .L_padlock_cfb_encrypt_begin:
 1544         pushl   %ebp
 1545         pushl   %ebx
 1546         pushl   %esi
 1547         pushl   %edi
 1548         movl    20(%esp),%edi
 1549         movl    24(%esp),%esi
 1550         movl    28(%esp),%edx
 1551         movl    32(%esp),%ecx
 1552         testl   $15,%edx
 1553         jnz     .L030cfb_abort
 1554         testl   $15,%ecx
 1555         jnz     .L030cfb_abort
 1556         leal    .Lpadlock_saved_context-.L031cfb_pic_point,%eax
 1557         pushfl
 1558         cld
 1559         call    _padlock_verify_ctx
 1560 .L031cfb_pic_point:
 1561         leal    16(%edx),%edx
 1562         xorl    %eax,%eax
 1563         xorl    %ebx,%ebx
 1564         testl   $32,(%edx)
 1565         jnz     .L032cfb_aligned
 1566         testl   $15,%edi
 1567         setz    %al
 1568         testl   $15,%esi
 1569         setz    %bl
 1570         testl   %ebx,%eax
 1571         jnz     .L032cfb_aligned
 1572         negl    %eax
 1573         movl    $512,%ebx
 1574         notl    %eax
 1575         leal    -24(%esp),%ebp
 1576         cmpl    %ebx,%ecx
 1577         cmovcl  %ecx,%ebx
 1578         andl    %ebx,%eax
 1579         movl    %ecx,%ebx
 1580         negl    %eax
 1581         andl    $511,%ebx
 1582         leal    (%eax,%ebp,1),%esp
 1583         movl    $512,%eax
 1584         cmovzl  %eax,%ebx
 1585         movl    %ebp,%eax
 1586         andl    $-16,%ebp
 1587         andl    $-16,%esp
 1588         movl    %eax,16(%ebp)
 1589         jmp     .L033cfb_loop
 1590 .align  16
 1591 .L033cfb_loop:
 1592         movl    %edi,(%ebp)
 1593         movl    %esi,4(%ebp)
 1594         movl    %ecx,8(%ebp)
 1595         movl    %ebx,%ecx
 1596         movl    %ebx,12(%ebp)
 1597         testl   $15,%edi
 1598         cmovnzl %esp,%edi
 1599         testl   $15,%esi
 1600         jz      .L034cfb_inp_aligned
 1601         shrl    $2,%ecx
 1602 .byte   243,165
 1603         subl    %ebx,%edi
 1604         movl    %ebx,%ecx
 1605         movl    %edi,%esi
 1606 .L034cfb_inp_aligned:
 1607         leal    -16(%edx),%eax
 1608         leal    16(%edx),%ebx
 1609         shrl    $4,%ecx
 1610 .byte   243,15,167,224
 1611         movaps  (%eax),%xmm0
 1612         movaps  %xmm0,-16(%edx)
 1613         movl    (%ebp),%edi
 1614         movl    12(%ebp),%ebx
 1615         testl   $15,%edi
 1616         jz      .L035cfb_out_aligned
 1617         movl    %ebx,%ecx
 1618         leal    (%esp),%esi
 1619         shrl    $2,%ecx
 1620 .byte   243,165
 1621         subl    %ebx,%edi
 1622 .L035cfb_out_aligned:
 1623         movl    4(%ebp),%esi
 1624         movl    8(%ebp),%ecx
 1625         addl    %ebx,%edi
 1626         addl    %ebx,%esi
 1627         subl    %ebx,%ecx
 1628         movl    $512,%ebx
 1629         jnz     .L033cfb_loop
 1630         cmpl    %ebp,%esp
 1631         je      .L036cfb_done
 1632         pxor    %xmm0,%xmm0
 1633         leal    (%esp),%eax
 1634 .L037cfb_bzero:
 1635         movaps  %xmm0,(%eax)
 1636         leal    16(%eax),%eax
 1637         cmpl    %eax,%ebp
 1638         ja      .L037cfb_bzero
 1639 .L036cfb_done:
 1640         movl    16(%ebp),%ebp
 1641         leal    24(%ebp),%esp
 1642         jmp     .L038cfb_exit
 1643 .align  16
 1644 .L032cfb_aligned:
 1645         leal    -16(%edx),%eax
 1646         leal    16(%edx),%ebx
 1647         shrl    $4,%ecx
 1648 .byte   243,15,167,224
 1649         movaps  (%eax),%xmm0
 1650         movaps  %xmm0,-16(%edx)
 1651 .L038cfb_exit:
 1652         movl    $1,%eax
 1653         leal    4(%esp),%esp
 1654 .L030cfb_abort:
 1655         popl    %edi
 1656         popl    %esi
 1657         popl    %ebx
 1658         popl    %ebp
 1659         ret
 1660 .size   padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin
 1661 .globl  padlock_ofb_encrypt
 1662 .type   padlock_ofb_encrypt,@function
 1663 .align  16
 1664 padlock_ofb_encrypt:
 1665 .L_padlock_ofb_encrypt_begin:
 1666         pushl   %ebp
 1667         pushl   %ebx
 1668         pushl   %esi
 1669         pushl   %edi
 1670         movl    20(%esp),%edi
 1671         movl    24(%esp),%esi
 1672         movl    28(%esp),%edx
 1673         movl    32(%esp),%ecx
 1674         testl   $15,%edx
 1675         jnz     .L039ofb_abort
 1676         testl   $15,%ecx
 1677         jnz     .L039ofb_abort
 1678         leal    .Lpadlock_saved_context-.L040ofb_pic_point,%eax
 1679         pushfl
 1680         cld
 1681         call    _padlock_verify_ctx
 1682 .L040ofb_pic_point:
 1683         leal    16(%edx),%edx
 1684         xorl    %eax,%eax
 1685         xorl    %ebx,%ebx
 1686         testl   $32,(%edx)
 1687         jnz     .L041ofb_aligned
 1688         testl   $15,%edi
 1689         setz    %al
 1690         testl   $15,%esi
 1691         setz    %bl
 1692         testl   %ebx,%eax
 1693         jnz     .L041ofb_aligned
 1694         negl    %eax
 1695         movl    $512,%ebx
 1696         notl    %eax
 1697         leal    -24(%esp),%ebp
 1698         cmpl    %ebx,%ecx
 1699         cmovcl  %ecx,%ebx
 1700         andl    %ebx,%eax
 1701         movl    %ecx,%ebx
 1702         negl    %eax
 1703         andl    $511,%ebx
 1704         leal    (%eax,%ebp,1),%esp
 1705         movl    $512,%eax
 1706         cmovzl  %eax,%ebx
 1707         movl    %ebp,%eax
 1708         andl    $-16,%ebp
 1709         andl    $-16,%esp
 1710         movl    %eax,16(%ebp)
 1711         jmp     .L042ofb_loop
 1712 .align  16
 1713 .L042ofb_loop:
 1714         movl    %edi,(%ebp)
 1715         movl    %esi,4(%ebp)
 1716         movl    %ecx,8(%ebp)
 1717         movl    %ebx,%ecx
 1718         movl    %ebx,12(%ebp)
 1719         testl   $15,%edi
 1720         cmovnzl %esp,%edi
 1721         testl   $15,%esi
 1722         jz      .L043ofb_inp_aligned
 1723         shrl    $2,%ecx
 1724 .byte   243,165
 1725         subl    %ebx,%edi
 1726         movl    %ebx,%ecx
 1727         movl    %edi,%esi
 1728 .L043ofb_inp_aligned:
 1729         leal    -16(%edx),%eax
 1730         leal    16(%edx),%ebx
 1731         shrl    $4,%ecx
 1732 .byte   243,15,167,232
 1733         movaps  (%eax),%xmm0
 1734         movaps  %xmm0,-16(%edx)
 1735         movl    (%ebp),%edi
 1736         movl    12(%ebp),%ebx
 1737         testl   $15,%edi
 1738         jz      .L044ofb_out_aligned
 1739         movl    %ebx,%ecx
 1740         leal    (%esp),%esi
 1741         shrl    $2,%ecx
 1742 .byte   243,165
 1743         subl    %ebx,%edi
 1744 .L044ofb_out_aligned:
 1745         movl    4(%ebp),%esi
 1746         movl    8(%ebp),%ecx
 1747         addl    %ebx,%edi
 1748         addl    %ebx,%esi
 1749         subl    %ebx,%ecx
 1750         movl    $512,%ebx
 1751         jnz     .L042ofb_loop
 1752         cmpl    %ebp,%esp
 1753         je      .L045ofb_done
 1754         pxor    %xmm0,%xmm0
 1755         leal    (%esp),%eax
 1756 .L046ofb_bzero:
 1757         movaps  %xmm0,(%eax)
 1758         leal    16(%eax),%eax
 1759         cmpl    %eax,%ebp
 1760         ja      .L046ofb_bzero
 1761 .L045ofb_done:
 1762         movl    16(%ebp),%ebp
 1763         leal    24(%ebp),%esp
 1764         jmp     .L047ofb_exit
 1765 .align  16
 1766 .L041ofb_aligned:
 1767         leal    -16(%edx),%eax
 1768         leal    16(%edx),%ebx
 1769         shrl    $4,%ecx
 1770 .byte   243,15,167,232
 1771         movaps  (%eax),%xmm0
 1772         movaps  %xmm0,-16(%edx)
 1773 .L047ofb_exit:
 1774         movl    $1,%eax
 1775         leal    4(%esp),%esp
 1776 .L039ofb_abort:
 1777         popl    %edi
 1778         popl    %esi
 1779         popl    %ebx
 1780         popl    %ebp
 1781         ret
 1782 .size   padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin
 1783 .globl  padlock_ctr32_encrypt
 1784 .type   padlock_ctr32_encrypt,@function
 1785 .align  16
 1786 padlock_ctr32_encrypt:
 1787 .L_padlock_ctr32_encrypt_begin:
 1788         pushl   %ebp
 1789         pushl   %ebx
 1790         pushl   %esi
 1791         pushl   %edi
 1792         movl    20(%esp),%edi
 1793         movl    24(%esp),%esi
 1794         movl    28(%esp),%edx
 1795         movl    32(%esp),%ecx
 1796         testl   $15,%edx
 1797         jnz     .L048ctr32_abort
 1798         testl   $15,%ecx
 1799         jnz     .L048ctr32_abort
 1800         leal    .Lpadlock_saved_context-.L049ctr32_pic_point,%eax
 1801         pushfl
 1802         cld
 1803         call    _padlock_verify_ctx
 1804 .L049ctr32_pic_point:
 1805         leal    16(%edx),%edx
 1806         xorl    %eax,%eax
 1807         movq    -16(%edx),%mm0
 1808         movl    $512,%ebx
 1809         notl    %eax
 1810         leal    -24(%esp),%ebp
 1811         cmpl    %ebx,%ecx
 1812         cmovcl  %ecx,%ebx
 1813         andl    %ebx,%eax
 1814         movl    %ecx,%ebx
 1815         negl    %eax
 1816         andl    $511,%ebx
 1817         leal    (%eax,%ebp,1),%esp
 1818         movl    $512,%eax
 1819         cmovzl  %eax,%ebx
 1820         movl    %ebp,%eax
 1821         andl    $-16,%ebp
 1822         andl    $-16,%esp
 1823         movl    %eax,16(%ebp)
 1824         jmp     .L050ctr32_loop
 1825 .align  16
 1826 .L050ctr32_loop:
 1827         movl    %edi,(%ebp)
 1828         movl    %esi,4(%ebp)
 1829         movl    %ecx,8(%ebp)
 1830         movl    %ebx,%ecx
 1831         movl    %ebx,12(%ebp)
 1832         movl    -4(%edx),%ecx
 1833         xorl    %edi,%edi
 1834         movl    -8(%edx),%eax
 1835 .L051ctr32_prepare:
 1836         movl    %ecx,12(%esp,%edi,1)
 1837         bswap   %ecx
 1838         movq    %mm0,(%esp,%edi,1)
 1839         incl    %ecx
 1840         movl    %eax,8(%esp,%edi,1)
 1841         bswap   %ecx
 1842         leal    16(%edi),%edi
 1843         cmpl    %ebx,%edi
 1844         jb      .L051ctr32_prepare
 1845         movl    %ecx,-4(%edx)
 1846         leal    (%esp),%esi
 1847         leal    (%esp),%edi
 1848         movl    %ebx,%ecx
 1849         leal    -16(%edx),%eax
 1850         leal    16(%edx),%ebx
 1851         shrl    $4,%ecx
 1852 .byte   243,15,167,200
 1853         movl    (%ebp),%edi
 1854         movl    12(%ebp),%ebx
 1855         movl    4(%ebp),%esi
 1856         xorl    %ecx,%ecx
 1857 .L052ctr32_xor:
 1858         movups  (%esi,%ecx,1),%xmm1
 1859         leal    16(%ecx),%ecx
 1860         pxor    -16(%esp,%ecx,1),%xmm1
 1861         movups  %xmm1,-16(%edi,%ecx,1)
 1862         cmpl    %ebx,%ecx
 1863         jb      .L052ctr32_xor
 1864         movl    8(%ebp),%ecx
 1865         addl    %ebx,%edi
 1866         addl    %ebx,%esi
 1867         subl    %ebx,%ecx
 1868         movl    $512,%ebx
 1869         jnz     .L050ctr32_loop
 1870         pxor    %xmm0,%xmm0
 1871         leal    (%esp),%eax
 1872 .L053ctr32_bzero:
 1873         movaps  %xmm0,(%eax)
 1874         leal    16(%eax),%eax
 1875         cmpl    %eax,%ebp
 1876         ja      .L053ctr32_bzero
 1877 .L054ctr32_done:
 1878         movl    16(%ebp),%ebp
 1879         leal    24(%ebp),%esp
 1880         movl    $1,%eax
 1881         leal    4(%esp),%esp
 1882         emms
 1883 .L048ctr32_abort:
 1884         popl    %edi
 1885         popl    %esi
 1886         popl    %ebx
 1887         popl    %ebp
 1888         ret
 1889 .size   padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin
 1890 .globl  padlock_xstore
 1891 .type   padlock_xstore,@function
 1892 .align  16
 1893 padlock_xstore:
 1894 .L_padlock_xstore_begin:
 1895         pushl   %edi
 1896         movl    8(%esp),%edi
 1897         movl    12(%esp),%edx
 1898 .byte   15,167,192
 1899         popl    %edi
 1900         ret
 1901 .size   padlock_xstore,.-.L_padlock_xstore_begin
 1902 .type   _win32_segv_handler,@function
 1903 .align  16
 1904 _win32_segv_handler:
 1905         movl    $1,%eax
 1906         movl    4(%esp),%edx
 1907         movl    12(%esp),%ecx
 1908         cmpl    $3221225477,(%edx)
 1909         jne     .L055ret
 1910         addl    $4,184(%ecx)
 1911         movl    $0,%eax
 1912 .L055ret:
 1913         ret
 1914 .size   _win32_segv_handler,.-_win32_segv_handler
 1915 .globl  padlock_sha1_oneshot
 1916 .type   padlock_sha1_oneshot,@function
 1917 .align  16
 1918 padlock_sha1_oneshot:
 1919 .L_padlock_sha1_oneshot_begin:
 1920         pushl   %edi
 1921         pushl   %esi
 1922         xorl    %eax,%eax
 1923         movl    12(%esp),%edi
 1924         movl    16(%esp),%esi
 1925         movl    20(%esp),%ecx
 1926         movl    %esp,%edx
 1927         addl    $-128,%esp
 1928         movups  (%edi),%xmm0
 1929         andl    $-16,%esp
 1930         movl    16(%edi),%eax
 1931         movaps  %xmm0,(%esp)
 1932         movl    %esp,%edi
 1933         movl    %eax,16(%esp)
 1934         xorl    %eax,%eax
 1935 .byte   243,15,166,200
 1936         movaps  (%esp),%xmm0
 1937         movl    16(%esp),%eax
 1938         movl    %edx,%esp
 1939         movl    12(%esp),%edi
 1940         movups  %xmm0,(%edi)
 1941         movl    %eax,16(%edi)
 1942         popl    %esi
 1943         popl    %edi
 1944         ret
 1945 .size   padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin
 1946 .globl  padlock_sha1_blocks
 1947 .type   padlock_sha1_blocks,@function
 1948 .align  16
 1949 padlock_sha1_blocks:
 1950 .L_padlock_sha1_blocks_begin:
 1951         pushl   %edi
 1952         pushl   %esi
 1953         movl    12(%esp),%edi
 1954         movl    16(%esp),%esi
 1955         movl    %esp,%edx
 1956         movl    20(%esp),%ecx
 1957         addl    $-128,%esp
 1958         movups  (%edi),%xmm0
 1959         andl    $-16,%esp
 1960         movl    16(%edi),%eax
 1961         movaps  %xmm0,(%esp)
 1962         movl    %esp,%edi
 1963         movl    %eax,16(%esp)
 1964         movl    $-1,%eax
 1965 .byte   243,15,166,200
 1966         movaps  (%esp),%xmm0
 1967         movl    16(%esp),%eax
 1968         movl    %edx,%esp
 1969         movl    12(%esp),%edi
 1970         movups  %xmm0,(%edi)
 1971         movl    %eax,16(%edi)
 1972         popl    %esi
 1973         popl    %edi
 1974         ret
 1975 .size   padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin
 1976 .globl  padlock_sha256_oneshot
 1977 .type   padlock_sha256_oneshot,@function
 1978 .align  16
 1979 padlock_sha256_oneshot:
 1980 .L_padlock_sha256_oneshot_begin:
 1981         pushl   %edi
 1982         pushl   %esi
 1983         xorl    %eax,%eax
 1984         movl    12(%esp),%edi
 1985         movl    16(%esp),%esi
 1986         movl    20(%esp),%ecx
 1987         movl    %esp,%edx
 1988         addl    $-128,%esp
 1989         movups  (%edi),%xmm0
 1990         andl    $-16,%esp
 1991         movups  16(%edi),%xmm1
 1992         movaps  %xmm0,(%esp)
 1993         movl    %esp,%edi
 1994         movaps  %xmm1,16(%esp)
 1995         xorl    %eax,%eax
 1996 .byte   243,15,166,208
 1997         movaps  (%esp),%xmm0
 1998         movaps  16(%esp),%xmm1
 1999         movl    %edx,%esp
 2000         movl    12(%esp),%edi
 2001         movups  %xmm0,(%edi)
 2002         movups  %xmm1,16(%edi)
 2003         popl    %esi
 2004         popl    %edi
 2005         ret
 2006 .size   padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin
 2007 .globl  padlock_sha256_blocks
 2008 .type   padlock_sha256_blocks,@function
 2009 .align  16
 2010 padlock_sha256_blocks:
 2011 .L_padlock_sha256_blocks_begin:
 2012         pushl   %edi
 2013         pushl   %esi
 2014         movl    12(%esp),%edi
 2015         movl    16(%esp),%esi
 2016         movl    20(%esp),%ecx
 2017         movl    %esp,%edx
 2018         addl    $-128,%esp
 2019         movups  (%edi),%xmm0
 2020         andl    $-16,%esp
 2021         movups  16(%edi),%xmm1
 2022         movaps  %xmm0,(%esp)
 2023         movl    %esp,%edi
 2024         movaps  %xmm1,16(%esp)
 2025         movl    $-1,%eax
 2026 .byte   243,15,166,208
 2027         movaps  (%esp),%xmm0
 2028         movaps  16(%esp),%xmm1
 2029         movl    %edx,%esp
 2030         movl    12(%esp),%edi
 2031         movups  %xmm0,(%edi)
 2032         movups  %xmm1,16(%edi)
 2033         popl    %esi
 2034         popl    %edi
 2035         ret
 2036 .size   padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin
 2037 .globl  padlock_sha512_blocks
 2038 .type   padlock_sha512_blocks,@function
 2039 .align  16
 2040 padlock_sha512_blocks:
 2041 .L_padlock_sha512_blocks_begin:
 2042         pushl   %edi
 2043         pushl   %esi
 2044         movl    12(%esp),%edi
 2045         movl    16(%esp),%esi
 2046         movl    20(%esp),%ecx
 2047         movl    %esp,%edx
 2048         addl    $-128,%esp
 2049         movups  (%edi),%xmm0
 2050         andl    $-16,%esp
 2051         movups  16(%edi),%xmm1
 2052         movups  32(%edi),%xmm2
 2053         movups  48(%edi),%xmm3
 2054         movaps  %xmm0,(%esp)
 2055         movl    %esp,%edi
 2056         movaps  %xmm1,16(%esp)
 2057         movaps  %xmm2,32(%esp)
 2058         movaps  %xmm3,48(%esp)
 2059 .byte   243,15,166,224
 2060         movaps  (%esp),%xmm0
 2061         movaps  16(%esp),%xmm1
 2062         movaps  32(%esp),%xmm2
 2063         movaps  48(%esp),%xmm3
 2064         movl    %edx,%esp
 2065         movl    12(%esp),%edi
 2066         movups  %xmm0,(%edi)
 2067         movups  %xmm1,16(%edi)
 2068         movups  %xmm2,32(%edi)
 2069         movups  %xmm3,48(%edi)
 2070         popl    %esi
 2071         popl    %edi
 2072         ret
 2073 .size   padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin
 2074 .byte   86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32
 2075 .byte   109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65
 2076 .byte   77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101
 2077 .byte   110,115,115,108,46,111,114,103,62,0
 2078 .align  16
 2079 .data
 2080 .align  4
 2081 .Lpadlock_saved_context:
 2082 .long   0
 2083 #endif

Cache object: c30edb91f1c0aaca8b44cfe5b9b7c553


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