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/amd64/rc4-x86_64.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 rc4-x86_64.pl. */
    3 .text   
    4 
    5 
    6 .globl  RC4
    7 .type   RC4,@function
    8 .align  16
    9 RC4:
   10 .cfi_startproc  
   11         orq     %rsi,%rsi
   12         jne     .Lentry
   13         .byte   0xf3,0xc3
   14 .Lentry:
   15         pushq   %rbx
   16 .cfi_adjust_cfa_offset  8
   17 .cfi_offset     %rbx,-16
   18         pushq   %r12
   19 .cfi_adjust_cfa_offset  8
   20 .cfi_offset     %r12,-24
   21         pushq   %r13
   22 .cfi_adjust_cfa_offset  8
   23 .cfi_offset     %r13,-32
   24 .Lprologue:
   25         movq    %rsi,%r11
   26         movq    %rdx,%r12
   27         movq    %rcx,%r13
   28         xorq    %r10,%r10
   29         xorq    %rcx,%rcx
   30 
   31         leaq    8(%rdi),%rdi
   32         movb    -8(%rdi),%r10b
   33         movb    -4(%rdi),%cl
   34         cmpl    $-1,256(%rdi)
   35         je      .LRC4_CHAR
   36         movl    OPENSSL_ia32cap_P(%rip),%r8d
   37         xorq    %rbx,%rbx
   38         incb    %r10b
   39         subq    %r10,%rbx
   40         subq    %r12,%r13
   41         movl    (%rdi,%r10,4),%eax
   42         testq   $-16,%r11
   43         jz      .Lloop1
   44         btl     $30,%r8d
   45         jc      .Lintel
   46         andq    $7,%rbx
   47         leaq    1(%r10),%rsi
   48         jz      .Loop8
   49         subq    %rbx,%r11
   50 .Loop8_warmup:
   51         addb    %al,%cl
   52         movl    (%rdi,%rcx,4),%edx
   53         movl    %eax,(%rdi,%rcx,4)
   54         movl    %edx,(%rdi,%r10,4)
   55         addb    %dl,%al
   56         incb    %r10b
   57         movl    (%rdi,%rax,4),%edx
   58         movl    (%rdi,%r10,4),%eax
   59         xorb    (%r12),%dl
   60         movb    %dl,(%r12,%r13,1)
   61         leaq    1(%r12),%r12
   62         decq    %rbx
   63         jnz     .Loop8_warmup
   64 
   65         leaq    1(%r10),%rsi
   66         jmp     .Loop8
   67 .align  16
   68 .Loop8:
   69         addb    %al,%cl
   70         movl    (%rdi,%rcx,4),%edx
   71         movl    %eax,(%rdi,%rcx,4)
   72         movl    0(%rdi,%rsi,4),%ebx
   73         rorq    $8,%r8
   74         movl    %edx,0(%rdi,%r10,4)
   75         addb    %al,%dl
   76         movb    (%rdi,%rdx,4),%r8b
   77         addb    %bl,%cl
   78         movl    (%rdi,%rcx,4),%edx
   79         movl    %ebx,(%rdi,%rcx,4)
   80         movl    4(%rdi,%rsi,4),%eax
   81         rorq    $8,%r8
   82         movl    %edx,4(%rdi,%r10,4)
   83         addb    %bl,%dl
   84         movb    (%rdi,%rdx,4),%r8b
   85         addb    %al,%cl
   86         movl    (%rdi,%rcx,4),%edx
   87         movl    %eax,(%rdi,%rcx,4)
   88         movl    8(%rdi,%rsi,4),%ebx
   89         rorq    $8,%r8
   90         movl    %edx,8(%rdi,%r10,4)
   91         addb    %al,%dl
   92         movb    (%rdi,%rdx,4),%r8b
   93         addb    %bl,%cl
   94         movl    (%rdi,%rcx,4),%edx
   95         movl    %ebx,(%rdi,%rcx,4)
   96         movl    12(%rdi,%rsi,4),%eax
   97         rorq    $8,%r8
   98         movl    %edx,12(%rdi,%r10,4)
   99         addb    %bl,%dl
  100         movb    (%rdi,%rdx,4),%r8b
  101         addb    %al,%cl
  102         movl    (%rdi,%rcx,4),%edx
  103         movl    %eax,(%rdi,%rcx,4)
  104         movl    16(%rdi,%rsi,4),%ebx
  105         rorq    $8,%r8
  106         movl    %edx,16(%rdi,%r10,4)
  107         addb    %al,%dl
  108         movb    (%rdi,%rdx,4),%r8b
  109         addb    %bl,%cl
  110         movl    (%rdi,%rcx,4),%edx
  111         movl    %ebx,(%rdi,%rcx,4)
  112         movl    20(%rdi,%rsi,4),%eax
  113         rorq    $8,%r8
  114         movl    %edx,20(%rdi,%r10,4)
  115         addb    %bl,%dl
  116         movb    (%rdi,%rdx,4),%r8b
  117         addb    %al,%cl
  118         movl    (%rdi,%rcx,4),%edx
  119         movl    %eax,(%rdi,%rcx,4)
  120         movl    24(%rdi,%rsi,4),%ebx
  121         rorq    $8,%r8
  122         movl    %edx,24(%rdi,%r10,4)
  123         addb    %al,%dl
  124         movb    (%rdi,%rdx,4),%r8b
  125         addb    $8,%sil
  126         addb    %bl,%cl
  127         movl    (%rdi,%rcx,4),%edx
  128         movl    %ebx,(%rdi,%rcx,4)
  129         movl    -4(%rdi,%rsi,4),%eax
  130         rorq    $8,%r8
  131         movl    %edx,28(%rdi,%r10,4)
  132         addb    %bl,%dl
  133         movb    (%rdi,%rdx,4),%r8b
  134         addb    $8,%r10b
  135         rorq    $8,%r8
  136         subq    $8,%r11
  137 
  138         xorq    (%r12),%r8
  139         movq    %r8,(%r12,%r13,1)
  140         leaq    8(%r12),%r12
  141 
  142         testq   $-8,%r11
  143         jnz     .Loop8
  144         cmpq    $0,%r11
  145         jne     .Lloop1
  146         jmp     .Lexit
  147 
  148 .align  16
  149 .Lintel:
  150         testq   $-32,%r11
  151         jz      .Lloop1
  152         andq    $15,%rbx
  153         jz      .Loop16_is_hot
  154         subq    %rbx,%r11
  155 .Loop16_warmup:
  156         addb    %al,%cl
  157         movl    (%rdi,%rcx,4),%edx
  158         movl    %eax,(%rdi,%rcx,4)
  159         movl    %edx,(%rdi,%r10,4)
  160         addb    %dl,%al
  161         incb    %r10b
  162         movl    (%rdi,%rax,4),%edx
  163         movl    (%rdi,%r10,4),%eax
  164         xorb    (%r12),%dl
  165         movb    %dl,(%r12,%r13,1)
  166         leaq    1(%r12),%r12
  167         decq    %rbx
  168         jnz     .Loop16_warmup
  169 
  170         movq    %rcx,%rbx
  171         xorq    %rcx,%rcx
  172         movb    %bl,%cl
  173 
  174 .Loop16_is_hot:
  175         leaq    (%rdi,%r10,4),%rsi
  176         addb    %al,%cl
  177         movl    (%rdi,%rcx,4),%edx
  178         pxor    %xmm0,%xmm0
  179         movl    %eax,(%rdi,%rcx,4)
  180         addb    %dl,%al
  181         movl    4(%rsi),%ebx
  182         movzbl  %al,%eax
  183         movl    %edx,0(%rsi)
  184         addb    %bl,%cl
  185         pinsrw  $0,(%rdi,%rax,4),%xmm0
  186         jmp     .Loop16_enter
  187 .align  16
  188 .Loop16:
  189         addb    %al,%cl
  190         movl    (%rdi,%rcx,4),%edx
  191         pxor    %xmm0,%xmm2
  192         psllq   $8,%xmm1
  193         pxor    %xmm0,%xmm0
  194         movl    %eax,(%rdi,%rcx,4)
  195         addb    %dl,%al
  196         movl    4(%rsi),%ebx
  197         movzbl  %al,%eax
  198         movl    %edx,0(%rsi)
  199         pxor    %xmm1,%xmm2
  200         addb    %bl,%cl
  201         pinsrw  $0,(%rdi,%rax,4),%xmm0
  202         movdqu  %xmm2,(%r12,%r13,1)
  203         leaq    16(%r12),%r12
  204 .Loop16_enter:
  205         movl    (%rdi,%rcx,4),%edx
  206         pxor    %xmm1,%xmm1
  207         movl    %ebx,(%rdi,%rcx,4)
  208         addb    %dl,%bl
  209         movl    8(%rsi),%eax
  210         movzbl  %bl,%ebx
  211         movl    %edx,4(%rsi)
  212         addb    %al,%cl
  213         pinsrw  $0,(%rdi,%rbx,4),%xmm1
  214         movl    (%rdi,%rcx,4),%edx
  215         movl    %eax,(%rdi,%rcx,4)
  216         addb    %dl,%al
  217         movl    12(%rsi),%ebx
  218         movzbl  %al,%eax
  219         movl    %edx,8(%rsi)
  220         addb    %bl,%cl
  221         pinsrw  $1,(%rdi,%rax,4),%xmm0
  222         movl    (%rdi,%rcx,4),%edx
  223         movl    %ebx,(%rdi,%rcx,4)
  224         addb    %dl,%bl
  225         movl    16(%rsi),%eax
  226         movzbl  %bl,%ebx
  227         movl    %edx,12(%rsi)
  228         addb    %al,%cl
  229         pinsrw  $1,(%rdi,%rbx,4),%xmm1
  230         movl    (%rdi,%rcx,4),%edx
  231         movl    %eax,(%rdi,%rcx,4)
  232         addb    %dl,%al
  233         movl    20(%rsi),%ebx
  234         movzbl  %al,%eax
  235         movl    %edx,16(%rsi)
  236         addb    %bl,%cl
  237         pinsrw  $2,(%rdi,%rax,4),%xmm0
  238         movl    (%rdi,%rcx,4),%edx
  239         movl    %ebx,(%rdi,%rcx,4)
  240         addb    %dl,%bl
  241         movl    24(%rsi),%eax
  242         movzbl  %bl,%ebx
  243         movl    %edx,20(%rsi)
  244         addb    %al,%cl
  245         pinsrw  $2,(%rdi,%rbx,4),%xmm1
  246         movl    (%rdi,%rcx,4),%edx
  247         movl    %eax,(%rdi,%rcx,4)
  248         addb    %dl,%al
  249         movl    28(%rsi),%ebx
  250         movzbl  %al,%eax
  251         movl    %edx,24(%rsi)
  252         addb    %bl,%cl
  253         pinsrw  $3,(%rdi,%rax,4),%xmm0
  254         movl    (%rdi,%rcx,4),%edx
  255         movl    %ebx,(%rdi,%rcx,4)
  256         addb    %dl,%bl
  257         movl    32(%rsi),%eax
  258         movzbl  %bl,%ebx
  259         movl    %edx,28(%rsi)
  260         addb    %al,%cl
  261         pinsrw  $3,(%rdi,%rbx,4),%xmm1
  262         movl    (%rdi,%rcx,4),%edx
  263         movl    %eax,(%rdi,%rcx,4)
  264         addb    %dl,%al
  265         movl    36(%rsi),%ebx
  266         movzbl  %al,%eax
  267         movl    %edx,32(%rsi)
  268         addb    %bl,%cl
  269         pinsrw  $4,(%rdi,%rax,4),%xmm0
  270         movl    (%rdi,%rcx,4),%edx
  271         movl    %ebx,(%rdi,%rcx,4)
  272         addb    %dl,%bl
  273         movl    40(%rsi),%eax
  274         movzbl  %bl,%ebx
  275         movl    %edx,36(%rsi)
  276         addb    %al,%cl
  277         pinsrw  $4,(%rdi,%rbx,4),%xmm1
  278         movl    (%rdi,%rcx,4),%edx
  279         movl    %eax,(%rdi,%rcx,4)
  280         addb    %dl,%al
  281         movl    44(%rsi),%ebx
  282         movzbl  %al,%eax
  283         movl    %edx,40(%rsi)
  284         addb    %bl,%cl
  285         pinsrw  $5,(%rdi,%rax,4),%xmm0
  286         movl    (%rdi,%rcx,4),%edx
  287         movl    %ebx,(%rdi,%rcx,4)
  288         addb    %dl,%bl
  289         movl    48(%rsi),%eax
  290         movzbl  %bl,%ebx
  291         movl    %edx,44(%rsi)
  292         addb    %al,%cl
  293         pinsrw  $5,(%rdi,%rbx,4),%xmm1
  294         movl    (%rdi,%rcx,4),%edx
  295         movl    %eax,(%rdi,%rcx,4)
  296         addb    %dl,%al
  297         movl    52(%rsi),%ebx
  298         movzbl  %al,%eax
  299         movl    %edx,48(%rsi)
  300         addb    %bl,%cl
  301         pinsrw  $6,(%rdi,%rax,4),%xmm0
  302         movl    (%rdi,%rcx,4),%edx
  303         movl    %ebx,(%rdi,%rcx,4)
  304         addb    %dl,%bl
  305         movl    56(%rsi),%eax
  306         movzbl  %bl,%ebx
  307         movl    %edx,52(%rsi)
  308         addb    %al,%cl
  309         pinsrw  $6,(%rdi,%rbx,4),%xmm1
  310         movl    (%rdi,%rcx,4),%edx
  311         movl    %eax,(%rdi,%rcx,4)
  312         addb    %dl,%al
  313         movl    60(%rsi),%ebx
  314         movzbl  %al,%eax
  315         movl    %edx,56(%rsi)
  316         addb    %bl,%cl
  317         pinsrw  $7,(%rdi,%rax,4),%xmm0
  318         addb    $16,%r10b
  319         movdqu  (%r12),%xmm2
  320         movl    (%rdi,%rcx,4),%edx
  321         movl    %ebx,(%rdi,%rcx,4)
  322         addb    %dl,%bl
  323         movzbl  %bl,%ebx
  324         movl    %edx,60(%rsi)
  325         leaq    (%rdi,%r10,4),%rsi
  326         pinsrw  $7,(%rdi,%rbx,4),%xmm1
  327         movl    (%rsi),%eax
  328         movq    %rcx,%rbx
  329         xorq    %rcx,%rcx
  330         subq    $16,%r11
  331         movb    %bl,%cl
  332         testq   $-16,%r11
  333         jnz     .Loop16
  334 
  335         psllq   $8,%xmm1
  336         pxor    %xmm0,%xmm2
  337         pxor    %xmm1,%xmm2
  338         movdqu  %xmm2,(%r12,%r13,1)
  339         leaq    16(%r12),%r12
  340 
  341         cmpq    $0,%r11
  342         jne     .Lloop1
  343         jmp     .Lexit
  344 
  345 .align  16
  346 .Lloop1:
  347         addb    %al,%cl
  348         movl    (%rdi,%rcx,4),%edx
  349         movl    %eax,(%rdi,%rcx,4)
  350         movl    %edx,(%rdi,%r10,4)
  351         addb    %dl,%al
  352         incb    %r10b
  353         movl    (%rdi,%rax,4),%edx
  354         movl    (%rdi,%r10,4),%eax
  355         xorb    (%r12),%dl
  356         movb    %dl,(%r12,%r13,1)
  357         leaq    1(%r12),%r12
  358         decq    %r11
  359         jnz     .Lloop1
  360         jmp     .Lexit
  361 
  362 .align  16
  363 .LRC4_CHAR:
  364         addb    $1,%r10b
  365         movzbl  (%rdi,%r10,1),%eax
  366         testq   $-8,%r11
  367         jz      .Lcloop1
  368         jmp     .Lcloop8
  369 .align  16
  370 .Lcloop8:
  371         movl    (%r12),%r8d
  372         movl    4(%r12),%r9d
  373         addb    %al,%cl
  374         leaq    1(%r10),%rsi
  375         movzbl  (%rdi,%rcx,1),%edx
  376         movzbl  %sil,%esi
  377         movzbl  (%rdi,%rsi,1),%ebx
  378         movb    %al,(%rdi,%rcx,1)
  379         cmpq    %rsi,%rcx
  380         movb    %dl,(%rdi,%r10,1)
  381         jne     .Lcmov0
  382         movq    %rax,%rbx
  383 .Lcmov0:
  384         addb    %al,%dl
  385         xorb    (%rdi,%rdx,1),%r8b
  386         rorl    $8,%r8d
  387         addb    %bl,%cl
  388         leaq    1(%rsi),%r10
  389         movzbl  (%rdi,%rcx,1),%edx
  390         movzbl  %r10b,%r10d
  391         movzbl  (%rdi,%r10,1),%eax
  392         movb    %bl,(%rdi,%rcx,1)
  393         cmpq    %r10,%rcx
  394         movb    %dl,(%rdi,%rsi,1)
  395         jne     .Lcmov1
  396         movq    %rbx,%rax
  397 .Lcmov1:
  398         addb    %bl,%dl
  399         xorb    (%rdi,%rdx,1),%r8b
  400         rorl    $8,%r8d
  401         addb    %al,%cl
  402         leaq    1(%r10),%rsi
  403         movzbl  (%rdi,%rcx,1),%edx
  404         movzbl  %sil,%esi
  405         movzbl  (%rdi,%rsi,1),%ebx
  406         movb    %al,(%rdi,%rcx,1)
  407         cmpq    %rsi,%rcx
  408         movb    %dl,(%rdi,%r10,1)
  409         jne     .Lcmov2
  410         movq    %rax,%rbx
  411 .Lcmov2:
  412         addb    %al,%dl
  413         xorb    (%rdi,%rdx,1),%r8b
  414         rorl    $8,%r8d
  415         addb    %bl,%cl
  416         leaq    1(%rsi),%r10
  417         movzbl  (%rdi,%rcx,1),%edx
  418         movzbl  %r10b,%r10d
  419         movzbl  (%rdi,%r10,1),%eax
  420         movb    %bl,(%rdi,%rcx,1)
  421         cmpq    %r10,%rcx
  422         movb    %dl,(%rdi,%rsi,1)
  423         jne     .Lcmov3
  424         movq    %rbx,%rax
  425 .Lcmov3:
  426         addb    %bl,%dl
  427         xorb    (%rdi,%rdx,1),%r8b
  428         rorl    $8,%r8d
  429         addb    %al,%cl
  430         leaq    1(%r10),%rsi
  431         movzbl  (%rdi,%rcx,1),%edx
  432         movzbl  %sil,%esi
  433         movzbl  (%rdi,%rsi,1),%ebx
  434         movb    %al,(%rdi,%rcx,1)
  435         cmpq    %rsi,%rcx
  436         movb    %dl,(%rdi,%r10,1)
  437         jne     .Lcmov4
  438         movq    %rax,%rbx
  439 .Lcmov4:
  440         addb    %al,%dl
  441         xorb    (%rdi,%rdx,1),%r9b
  442         rorl    $8,%r9d
  443         addb    %bl,%cl
  444         leaq    1(%rsi),%r10
  445         movzbl  (%rdi,%rcx,1),%edx
  446         movzbl  %r10b,%r10d
  447         movzbl  (%rdi,%r10,1),%eax
  448         movb    %bl,(%rdi,%rcx,1)
  449         cmpq    %r10,%rcx
  450         movb    %dl,(%rdi,%rsi,1)
  451         jne     .Lcmov5
  452         movq    %rbx,%rax
  453 .Lcmov5:
  454         addb    %bl,%dl
  455         xorb    (%rdi,%rdx,1),%r9b
  456         rorl    $8,%r9d
  457         addb    %al,%cl
  458         leaq    1(%r10),%rsi
  459         movzbl  (%rdi,%rcx,1),%edx
  460         movzbl  %sil,%esi
  461         movzbl  (%rdi,%rsi,1),%ebx
  462         movb    %al,(%rdi,%rcx,1)
  463         cmpq    %rsi,%rcx
  464         movb    %dl,(%rdi,%r10,1)
  465         jne     .Lcmov6
  466         movq    %rax,%rbx
  467 .Lcmov6:
  468         addb    %al,%dl
  469         xorb    (%rdi,%rdx,1),%r9b
  470         rorl    $8,%r9d
  471         addb    %bl,%cl
  472         leaq    1(%rsi),%r10
  473         movzbl  (%rdi,%rcx,1),%edx
  474         movzbl  %r10b,%r10d
  475         movzbl  (%rdi,%r10,1),%eax
  476         movb    %bl,(%rdi,%rcx,1)
  477         cmpq    %r10,%rcx
  478         movb    %dl,(%rdi,%rsi,1)
  479         jne     .Lcmov7
  480         movq    %rbx,%rax
  481 .Lcmov7:
  482         addb    %bl,%dl
  483         xorb    (%rdi,%rdx,1),%r9b
  484         rorl    $8,%r9d
  485         leaq    -8(%r11),%r11
  486         movl    %r8d,(%r13)
  487         leaq    8(%r12),%r12
  488         movl    %r9d,4(%r13)
  489         leaq    8(%r13),%r13
  490 
  491         testq   $-8,%r11
  492         jnz     .Lcloop8
  493         cmpq    $0,%r11
  494         jne     .Lcloop1
  495         jmp     .Lexit
  496 .align  16
  497 .Lcloop1:
  498         addb    %al,%cl
  499         movzbl  %cl,%ecx
  500         movzbl  (%rdi,%rcx,1),%edx
  501         movb    %al,(%rdi,%rcx,1)
  502         movb    %dl,(%rdi,%r10,1)
  503         addb    %al,%dl
  504         addb    $1,%r10b
  505         movzbl  %dl,%edx
  506         movzbl  %r10b,%r10d
  507         movzbl  (%rdi,%rdx,1),%edx
  508         movzbl  (%rdi,%r10,1),%eax
  509         xorb    (%r12),%dl
  510         leaq    1(%r12),%r12
  511         movb    %dl,(%r13)
  512         leaq    1(%r13),%r13
  513         subq    $1,%r11
  514         jnz     .Lcloop1
  515         jmp     .Lexit
  516 
  517 .align  16
  518 .Lexit:
  519         subb    $1,%r10b
  520         movl    %r10d,-8(%rdi)
  521         movl    %ecx,-4(%rdi)
  522 
  523         movq    (%rsp),%r13
  524 .cfi_restore    %r13
  525         movq    8(%rsp),%r12
  526 .cfi_restore    %r12
  527         movq    16(%rsp),%rbx
  528 .cfi_restore    %rbx
  529         addq    $24,%rsp
  530 .cfi_adjust_cfa_offset  -24
  531 .Lepilogue:
  532         .byte   0xf3,0xc3
  533 .cfi_endproc    
  534 .size   RC4,.-RC4
  535 .globl  RC4_set_key
  536 .type   RC4_set_key,@function
  537 .align  16
  538 RC4_set_key:
  539 .cfi_startproc  
  540         leaq    8(%rdi),%rdi
  541         leaq    (%rdx,%rsi,1),%rdx
  542         negq    %rsi
  543         movq    %rsi,%rcx
  544         xorl    %eax,%eax
  545         xorq    %r9,%r9
  546         xorq    %r10,%r10
  547         xorq    %r11,%r11
  548 
  549         movl    OPENSSL_ia32cap_P(%rip),%r8d
  550         btl     $20,%r8d
  551         jc      .Lc1stloop
  552         jmp     .Lw1stloop
  553 
  554 .align  16
  555 .Lw1stloop:
  556         movl    %eax,(%rdi,%rax,4)
  557         addb    $1,%al
  558         jnc     .Lw1stloop
  559 
  560         xorq    %r9,%r9
  561         xorq    %r8,%r8
  562 .align  16
  563 .Lw2ndloop:
  564         movl    (%rdi,%r9,4),%r10d
  565         addb    (%rdx,%rsi,1),%r8b
  566         addb    %r10b,%r8b
  567         addq    $1,%rsi
  568         movl    (%rdi,%r8,4),%r11d
  569         cmovzq  %rcx,%rsi
  570         movl    %r10d,(%rdi,%r8,4)
  571         movl    %r11d,(%rdi,%r9,4)
  572         addb    $1,%r9b
  573         jnc     .Lw2ndloop
  574         jmp     .Lexit_key
  575 
  576 .align  16
  577 .Lc1stloop:
  578         movb    %al,(%rdi,%rax,1)
  579         addb    $1,%al
  580         jnc     .Lc1stloop
  581 
  582         xorq    %r9,%r9
  583         xorq    %r8,%r8
  584 .align  16
  585 .Lc2ndloop:
  586         movb    (%rdi,%r9,1),%r10b
  587         addb    (%rdx,%rsi,1),%r8b
  588         addb    %r10b,%r8b
  589         addq    $1,%rsi
  590         movb    (%rdi,%r8,1),%r11b
  591         jnz     .Lcnowrap
  592         movq    %rcx,%rsi
  593 .Lcnowrap:
  594         movb    %r10b,(%rdi,%r8,1)
  595         movb    %r11b,(%rdi,%r9,1)
  596         addb    $1,%r9b
  597         jnc     .Lc2ndloop
  598         movl    $-1,256(%rdi)
  599 
  600 .align  16
  601 .Lexit_key:
  602         xorl    %eax,%eax
  603         movl    %eax,-8(%rdi)
  604         movl    %eax,-4(%rdi)
  605         .byte   0xf3,0xc3
  606 .cfi_endproc    
  607 .size   RC4_set_key,.-RC4_set_key
  608 
  609 .globl  RC4_options
  610 .type   RC4_options,@function
  611 .align  16
  612 RC4_options:
  613 .cfi_startproc  
  614         leaq    .Lopts(%rip),%rax
  615         movl    OPENSSL_ia32cap_P(%rip),%edx
  616         btl     $20,%edx
  617         jc      .L8xchar
  618         btl     $30,%edx
  619         jnc     .Ldone
  620         addq    $25,%rax
  621         .byte   0xf3,0xc3
  622 .L8xchar:
  623         addq    $12,%rax
  624 .Ldone:
  625         .byte   0xf3,0xc3
  626 .cfi_endproc    
  627 .align  64
  628 .Lopts:
  629 .byte   114,99,52,40,56,120,44,105,110,116,41,0
  630 .byte   114,99,52,40,56,120,44,99,104,97,114,41,0
  631 .byte   114,99,52,40,49,54,120,44,105,110,116,41,0
  632 .byte   82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
  633 .align  64
  634 .size   RC4_options,.-RC4_options

Cache object: 8c39b8e6e1a19c41c4e7b35af97d5d72


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