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/x25519-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 x25519-x86_64.pl. */
    3 .text   
    4 
    5 .globl  x25519_fe51_mul
    6 .type   x25519_fe51_mul,@function
    7 .align  32
    8 x25519_fe51_mul:
    9 .cfi_startproc  
   10         pushq   %rbp
   11 .cfi_adjust_cfa_offset  8
   12 .cfi_offset     %rbp,-16
   13         pushq   %rbx
   14 .cfi_adjust_cfa_offset  8
   15 .cfi_offset     %rbx,-24
   16         pushq   %r12
   17 .cfi_adjust_cfa_offset  8
   18 .cfi_offset     %r12,-32
   19         pushq   %r13
   20 .cfi_adjust_cfa_offset  8
   21 .cfi_offset     %r13,-40
   22         pushq   %r14
   23 .cfi_adjust_cfa_offset  8
   24 .cfi_offset     %r14,-48
   25         pushq   %r15
   26 .cfi_adjust_cfa_offset  8
   27 .cfi_offset     %r15,-56
   28         leaq    -40(%rsp),%rsp
   29 .cfi_adjust_cfa_offset  40
   30 .Lfe51_mul_body:
   31 
   32         movq    0(%rsi),%rax
   33         movq    0(%rdx),%r11
   34         movq    8(%rdx),%r12
   35         movq    16(%rdx),%r13
   36         movq    24(%rdx),%rbp
   37         movq    32(%rdx),%r14
   38 
   39         movq    %rdi,32(%rsp)
   40         movq    %rax,%rdi
   41         mulq    %r11
   42         movq    %r11,0(%rsp)
   43         movq    %rax,%rbx
   44         movq    %rdi,%rax
   45         movq    %rdx,%rcx
   46         mulq    %r12
   47         movq    %r12,8(%rsp)
   48         movq    %rax,%r8
   49         movq    %rdi,%rax
   50         leaq    (%r14,%r14,8),%r15
   51         movq    %rdx,%r9
   52         mulq    %r13
   53         movq    %r13,16(%rsp)
   54         movq    %rax,%r10
   55         movq    %rdi,%rax
   56         leaq    (%r14,%r15,2),%rdi
   57         movq    %rdx,%r11
   58         mulq    %rbp
   59         movq    %rax,%r12
   60         movq    0(%rsi),%rax
   61         movq    %rdx,%r13
   62         mulq    %r14
   63         movq    %rax,%r14
   64         movq    8(%rsi),%rax
   65         movq    %rdx,%r15
   66 
   67         mulq    %rdi
   68         addq    %rax,%rbx
   69         movq    16(%rsi),%rax
   70         adcq    %rdx,%rcx
   71         mulq    %rdi
   72         addq    %rax,%r8
   73         movq    24(%rsi),%rax
   74         adcq    %rdx,%r9
   75         mulq    %rdi
   76         addq    %rax,%r10
   77         movq    32(%rsi),%rax
   78         adcq    %rdx,%r11
   79         mulq    %rdi
   80         imulq   $19,%rbp,%rdi
   81         addq    %rax,%r12
   82         movq    8(%rsi),%rax
   83         adcq    %rdx,%r13
   84         mulq    %rbp
   85         movq    16(%rsp),%rbp
   86         addq    %rax,%r14
   87         movq    16(%rsi),%rax
   88         adcq    %rdx,%r15
   89 
   90         mulq    %rdi
   91         addq    %rax,%rbx
   92         movq    24(%rsi),%rax
   93         adcq    %rdx,%rcx
   94         mulq    %rdi
   95         addq    %rax,%r8
   96         movq    32(%rsi),%rax
   97         adcq    %rdx,%r9
   98         mulq    %rdi
   99         imulq   $19,%rbp,%rdi
  100         addq    %rax,%r10
  101         movq    8(%rsi),%rax
  102         adcq    %rdx,%r11
  103         mulq    %rbp
  104         addq    %rax,%r12
  105         movq    16(%rsi),%rax
  106         adcq    %rdx,%r13
  107         mulq    %rbp
  108         movq    8(%rsp),%rbp
  109         addq    %rax,%r14
  110         movq    24(%rsi),%rax
  111         adcq    %rdx,%r15
  112 
  113         mulq    %rdi
  114         addq    %rax,%rbx
  115         movq    32(%rsi),%rax
  116         adcq    %rdx,%rcx
  117         mulq    %rdi
  118         addq    %rax,%r8
  119         movq    8(%rsi),%rax
  120         adcq    %rdx,%r9
  121         mulq    %rbp
  122         imulq   $19,%rbp,%rdi
  123         addq    %rax,%r10
  124         movq    16(%rsi),%rax
  125         adcq    %rdx,%r11
  126         mulq    %rbp
  127         addq    %rax,%r12
  128         movq    24(%rsi),%rax
  129         adcq    %rdx,%r13
  130         mulq    %rbp
  131         movq    0(%rsp),%rbp
  132         addq    %rax,%r14
  133         movq    32(%rsi),%rax
  134         adcq    %rdx,%r15
  135 
  136         mulq    %rdi
  137         addq    %rax,%rbx
  138         movq    8(%rsi),%rax
  139         adcq    %rdx,%rcx
  140         mulq    %rbp
  141         addq    %rax,%r8
  142         movq    16(%rsi),%rax
  143         adcq    %rdx,%r9
  144         mulq    %rbp
  145         addq    %rax,%r10
  146         movq    24(%rsi),%rax
  147         adcq    %rdx,%r11
  148         mulq    %rbp
  149         addq    %rax,%r12
  150         movq    32(%rsi),%rax
  151         adcq    %rdx,%r13
  152         mulq    %rbp
  153         addq    %rax,%r14
  154         adcq    %rdx,%r15
  155 
  156         movq    32(%rsp),%rdi
  157         jmp     .Lreduce51
  158 .Lfe51_mul_epilogue:
  159 .cfi_endproc    
  160 .size   x25519_fe51_mul,.-x25519_fe51_mul
  161 
  162 .globl  x25519_fe51_sqr
  163 .type   x25519_fe51_sqr,@function
  164 .align  32
  165 x25519_fe51_sqr:
  166 .cfi_startproc  
  167         pushq   %rbp
  168 .cfi_adjust_cfa_offset  8
  169 .cfi_offset     %rbp,-16
  170         pushq   %rbx
  171 .cfi_adjust_cfa_offset  8
  172 .cfi_offset     %rbx,-24
  173         pushq   %r12
  174 .cfi_adjust_cfa_offset  8
  175 .cfi_offset     %r12,-32
  176         pushq   %r13
  177 .cfi_adjust_cfa_offset  8
  178 .cfi_offset     %r13,-40
  179         pushq   %r14
  180 .cfi_adjust_cfa_offset  8
  181 .cfi_offset     %r14,-48
  182         pushq   %r15
  183 .cfi_adjust_cfa_offset  8
  184 .cfi_offset     %r15,-56
  185         leaq    -40(%rsp),%rsp
  186 .cfi_adjust_cfa_offset  40
  187 .Lfe51_sqr_body:
  188 
  189         movq    0(%rsi),%rax
  190         movq    16(%rsi),%r15
  191         movq    32(%rsi),%rbp
  192 
  193         movq    %rdi,32(%rsp)
  194         leaq    (%rax,%rax,1),%r14
  195         mulq    %rax
  196         movq    %rax,%rbx
  197         movq    8(%rsi),%rax
  198         movq    %rdx,%rcx
  199         mulq    %r14
  200         movq    %rax,%r8
  201         movq    %r15,%rax
  202         movq    %r15,0(%rsp)
  203         movq    %rdx,%r9
  204         mulq    %r14
  205         movq    %rax,%r10
  206         movq    24(%rsi),%rax
  207         movq    %rdx,%r11
  208         imulq   $19,%rbp,%rdi
  209         mulq    %r14
  210         movq    %rax,%r12
  211         movq    %rbp,%rax
  212         movq    %rdx,%r13
  213         mulq    %r14
  214         movq    %rax,%r14
  215         movq    %rbp,%rax
  216         movq    %rdx,%r15
  217 
  218         mulq    %rdi
  219         addq    %rax,%r12
  220         movq    8(%rsi),%rax
  221         adcq    %rdx,%r13
  222 
  223         movq    24(%rsi),%rsi
  224         leaq    (%rax,%rax,1),%rbp
  225         mulq    %rax
  226         addq    %rax,%r10
  227         movq    0(%rsp),%rax
  228         adcq    %rdx,%r11
  229         mulq    %rbp
  230         addq    %rax,%r12
  231         movq    %rbp,%rax
  232         adcq    %rdx,%r13
  233         mulq    %rsi
  234         addq    %rax,%r14
  235         movq    %rbp,%rax
  236         adcq    %rdx,%r15
  237         imulq   $19,%rsi,%rbp
  238         mulq    %rdi
  239         addq    %rax,%rbx
  240         leaq    (%rsi,%rsi,1),%rax
  241         adcq    %rdx,%rcx
  242 
  243         mulq    %rdi
  244         addq    %rax,%r10
  245         movq    %rsi,%rax
  246         adcq    %rdx,%r11
  247         mulq    %rbp
  248         addq    %rax,%r8
  249         movq    0(%rsp),%rax
  250         adcq    %rdx,%r9
  251 
  252         leaq    (%rax,%rax,1),%rsi
  253         mulq    %rax
  254         addq    %rax,%r14
  255         movq    %rbp,%rax
  256         adcq    %rdx,%r15
  257         mulq    %rsi
  258         addq    %rax,%rbx
  259         movq    %rsi,%rax
  260         adcq    %rdx,%rcx
  261         mulq    %rdi
  262         addq    %rax,%r8
  263         adcq    %rdx,%r9
  264 
  265         movq    32(%rsp),%rdi
  266         jmp     .Lreduce51
  267 
  268 .align  32
  269 .Lreduce51:
  270         movq    $0x7ffffffffffff,%rbp
  271 
  272         movq    %r10,%rdx
  273         shrq    $51,%r10
  274         shlq    $13,%r11
  275         andq    %rbp,%rdx
  276         orq     %r10,%r11
  277         addq    %r11,%r12
  278         adcq    $0,%r13
  279 
  280         movq    %rbx,%rax
  281         shrq    $51,%rbx
  282         shlq    $13,%rcx
  283         andq    %rbp,%rax
  284         orq     %rbx,%rcx
  285         addq    %rcx,%r8
  286         adcq    $0,%r9
  287 
  288         movq    %r12,%rbx
  289         shrq    $51,%r12
  290         shlq    $13,%r13
  291         andq    %rbp,%rbx
  292         orq     %r12,%r13
  293         addq    %r13,%r14
  294         adcq    $0,%r15
  295 
  296         movq    %r8,%rcx
  297         shrq    $51,%r8
  298         shlq    $13,%r9
  299         andq    %rbp,%rcx
  300         orq     %r8,%r9
  301         addq    %r9,%rdx
  302 
  303         movq    %r14,%r10
  304         shrq    $51,%r14
  305         shlq    $13,%r15
  306         andq    %rbp,%r10
  307         orq     %r14,%r15
  308 
  309         leaq    (%r15,%r15,8),%r14
  310         leaq    (%r15,%r14,2),%r15
  311         addq    %r15,%rax
  312 
  313         movq    %rdx,%r8
  314         andq    %rbp,%rdx
  315         shrq    $51,%r8
  316         addq    %r8,%rbx
  317 
  318         movq    %rax,%r9
  319         andq    %rbp,%rax
  320         shrq    $51,%r9
  321         addq    %r9,%rcx
  322 
  323         movq    %rax,0(%rdi)
  324         movq    %rcx,8(%rdi)
  325         movq    %rdx,16(%rdi)
  326         movq    %rbx,24(%rdi)
  327         movq    %r10,32(%rdi)
  328 
  329         movq    40(%rsp),%r15
  330 .cfi_restore    %r15
  331         movq    48(%rsp),%r14
  332 .cfi_restore    %r14
  333         movq    56(%rsp),%r13
  334 .cfi_restore    %r13
  335         movq    64(%rsp),%r12
  336 .cfi_restore    %r12
  337         movq    72(%rsp),%rbx
  338 .cfi_restore    %rbx
  339         movq    80(%rsp),%rbp
  340 .cfi_restore    %rbp
  341         leaq    88(%rsp),%rsp
  342 .cfi_adjust_cfa_offset  88
  343 .Lfe51_sqr_epilogue:
  344         .byte   0xf3,0xc3
  345 .cfi_endproc    
  346 .size   x25519_fe51_sqr,.-x25519_fe51_sqr
  347 
  348 .globl  x25519_fe51_mul121666
  349 .type   x25519_fe51_mul121666,@function
  350 .align  32
  351 x25519_fe51_mul121666:
  352 .cfi_startproc  
  353         pushq   %rbp
  354 .cfi_adjust_cfa_offset  8
  355 .cfi_offset     %rbp,-16
  356         pushq   %rbx
  357 .cfi_adjust_cfa_offset  8
  358 .cfi_offset     %rbx,-24
  359         pushq   %r12
  360 .cfi_adjust_cfa_offset  8
  361 .cfi_offset     %r12,-32
  362         pushq   %r13
  363 .cfi_adjust_cfa_offset  8
  364 .cfi_offset     %r13,-40
  365         pushq   %r14
  366 .cfi_adjust_cfa_offset  8
  367 .cfi_offset     %r14,-48
  368         pushq   %r15
  369 .cfi_adjust_cfa_offset  8
  370 .cfi_offset     %r15,-56
  371         leaq    -40(%rsp),%rsp
  372 .cfi_adjust_cfa_offset  40
  373 .Lfe51_mul121666_body:
  374         movl    $121666,%eax
  375 
  376         mulq    0(%rsi)
  377         movq    %rax,%rbx
  378         movl    $121666,%eax
  379         movq    %rdx,%rcx
  380         mulq    8(%rsi)
  381         movq    %rax,%r8
  382         movl    $121666,%eax
  383         movq    %rdx,%r9
  384         mulq    16(%rsi)
  385         movq    %rax,%r10
  386         movl    $121666,%eax
  387         movq    %rdx,%r11
  388         mulq    24(%rsi)
  389         movq    %rax,%r12
  390         movl    $121666,%eax
  391         movq    %rdx,%r13
  392         mulq    32(%rsi)
  393         movq    %rax,%r14
  394         movq    %rdx,%r15
  395 
  396         jmp     .Lreduce51
  397 .Lfe51_mul121666_epilogue:
  398 .cfi_endproc    
  399 .size   x25519_fe51_mul121666,.-x25519_fe51_mul121666
  400 
  401 .globl  x25519_fe64_eligible
  402 .type   x25519_fe64_eligible,@function
  403 .align  32
  404 x25519_fe64_eligible:
  405 .cfi_startproc  
  406         movl    OPENSSL_ia32cap_P+8(%rip),%ecx
  407         xorl    %eax,%eax
  408         andl    $0x80100,%ecx
  409         cmpl    $0x80100,%ecx
  410         cmovel  %ecx,%eax
  411         .byte   0xf3,0xc3
  412 .cfi_endproc    
  413 .size   x25519_fe64_eligible,.-x25519_fe64_eligible
  414 
  415 .globl  x25519_fe64_mul
  416 .type   x25519_fe64_mul,@function
  417 .align  32
  418 x25519_fe64_mul:
  419 .cfi_startproc  
  420         pushq   %rbp
  421 .cfi_adjust_cfa_offset  8
  422 .cfi_offset     %rbp,-16
  423         pushq   %rbx
  424 .cfi_adjust_cfa_offset  8
  425 .cfi_offset     %rbx,-24
  426         pushq   %r12
  427 .cfi_adjust_cfa_offset  8
  428 .cfi_offset     %r12,-32
  429         pushq   %r13
  430 .cfi_adjust_cfa_offset  8
  431 .cfi_offset     %r13,-40
  432         pushq   %r14
  433 .cfi_adjust_cfa_offset  8
  434 .cfi_offset     %r14,-48
  435         pushq   %r15
  436 .cfi_adjust_cfa_offset  8
  437 .cfi_offset     %r15,-56
  438         pushq   %rdi
  439 .cfi_adjust_cfa_offset  8
  440 .cfi_offset     %rdi,-64
  441         leaq    -16(%rsp),%rsp
  442 .cfi_adjust_cfa_offset  16
  443 .Lfe64_mul_body:
  444 
  445         movq    %rdx,%rax
  446         movq    0(%rdx),%rbp
  447         movq    0(%rsi),%rdx
  448         movq    8(%rax),%rcx
  449         movq    16(%rax),%r14
  450         movq    24(%rax),%r15
  451 
  452         mulxq   %rbp,%r8,%rax
  453         xorl    %edi,%edi
  454         mulxq   %rcx,%r9,%rbx
  455         adcxq   %rax,%r9
  456         mulxq   %r14,%r10,%rax
  457         adcxq   %rbx,%r10
  458         mulxq   %r15,%r11,%r12
  459         movq    8(%rsi),%rdx
  460         adcxq   %rax,%r11
  461         movq    %r14,(%rsp)
  462         adcxq   %rdi,%r12
  463 
  464         mulxq   %rbp,%rax,%rbx
  465         adoxq   %rax,%r9
  466         adcxq   %rbx,%r10
  467         mulxq   %rcx,%rax,%rbx
  468         adoxq   %rax,%r10
  469         adcxq   %rbx,%r11
  470         mulxq   %r14,%rax,%rbx
  471         adoxq   %rax,%r11
  472         adcxq   %rbx,%r12
  473         mulxq   %r15,%rax,%r13
  474         movq    16(%rsi),%rdx
  475         adoxq   %rax,%r12
  476         adcxq   %rdi,%r13
  477         adoxq   %rdi,%r13
  478 
  479         mulxq   %rbp,%rax,%rbx
  480         adcxq   %rax,%r10
  481         adoxq   %rbx,%r11
  482         mulxq   %rcx,%rax,%rbx
  483         adcxq   %rax,%r11
  484         adoxq   %rbx,%r12
  485         mulxq   %r14,%rax,%rbx
  486         adcxq   %rax,%r12
  487         adoxq   %rbx,%r13
  488         mulxq   %r15,%rax,%r14
  489         movq    24(%rsi),%rdx
  490         adcxq   %rax,%r13
  491         adoxq   %rdi,%r14
  492         adcxq   %rdi,%r14
  493 
  494         mulxq   %rbp,%rax,%rbx
  495         adoxq   %rax,%r11
  496         adcxq   %rbx,%r12
  497         mulxq   %rcx,%rax,%rbx
  498         adoxq   %rax,%r12
  499         adcxq   %rbx,%r13
  500         mulxq   (%rsp),%rax,%rbx
  501         adoxq   %rax,%r13
  502         adcxq   %rbx,%r14
  503         mulxq   %r15,%rax,%r15
  504         movl    $38,%edx
  505         adoxq   %rax,%r14
  506         adcxq   %rdi,%r15
  507         adoxq   %rdi,%r15
  508 
  509         jmp     .Lreduce64
  510 .Lfe64_mul_epilogue:
  511 .cfi_endproc    
  512 .size   x25519_fe64_mul,.-x25519_fe64_mul
  513 
  514 .globl  x25519_fe64_sqr
  515 .type   x25519_fe64_sqr,@function
  516 .align  32
  517 x25519_fe64_sqr:
  518 .cfi_startproc  
  519         pushq   %rbp
  520 .cfi_adjust_cfa_offset  8
  521 .cfi_offset     %rbp,-16
  522         pushq   %rbx
  523 .cfi_adjust_cfa_offset  8
  524 .cfi_offset     %rbx,-24
  525         pushq   %r12
  526 .cfi_adjust_cfa_offset  8
  527 .cfi_offset     %r12,-32
  528         pushq   %r13
  529 .cfi_adjust_cfa_offset  8
  530 .cfi_offset     %r13,-40
  531         pushq   %r14
  532 .cfi_adjust_cfa_offset  8
  533 .cfi_offset     %r14,-48
  534         pushq   %r15
  535 .cfi_adjust_cfa_offset  8
  536 .cfi_offset     %r15,-56
  537         pushq   %rdi
  538 .cfi_adjust_cfa_offset  8
  539 .cfi_offset     %rdi,-64
  540         leaq    -16(%rsp),%rsp
  541 .cfi_adjust_cfa_offset  16
  542 .Lfe64_sqr_body:
  543 
  544         movq    0(%rsi),%rdx
  545         movq    8(%rsi),%rcx
  546         movq    16(%rsi),%rbp
  547         movq    24(%rsi),%rsi
  548 
  549 
  550         mulxq   %rdx,%r8,%r15
  551         mulxq   %rcx,%r9,%rax
  552         xorl    %edi,%edi
  553         mulxq   %rbp,%r10,%rbx
  554         adcxq   %rax,%r10
  555         mulxq   %rsi,%r11,%r12
  556         movq    %rcx,%rdx
  557         adcxq   %rbx,%r11
  558         adcxq   %rdi,%r12
  559 
  560 
  561         mulxq   %rbp,%rax,%rbx
  562         adoxq   %rax,%r11
  563         adcxq   %rbx,%r12
  564         mulxq   %rsi,%rax,%r13
  565         movq    %rbp,%rdx
  566         adoxq   %rax,%r12
  567         adcxq   %rdi,%r13
  568 
  569 
  570         mulxq   %rsi,%rax,%r14
  571         movq    %rcx,%rdx
  572         adoxq   %rax,%r13
  573         adcxq   %rdi,%r14
  574         adoxq   %rdi,%r14
  575 
  576         adcxq   %r9,%r9
  577         adoxq   %r15,%r9
  578         adcxq   %r10,%r10
  579         mulxq   %rdx,%rax,%rbx
  580         movq    %rbp,%rdx
  581         adcxq   %r11,%r11
  582         adoxq   %rax,%r10
  583         adcxq   %r12,%r12
  584         adoxq   %rbx,%r11
  585         mulxq   %rdx,%rax,%rbx
  586         movq    %rsi,%rdx
  587         adcxq   %r13,%r13
  588         adoxq   %rax,%r12
  589         adcxq   %r14,%r14
  590         adoxq   %rbx,%r13
  591         mulxq   %rdx,%rax,%r15
  592         movl    $38,%edx
  593         adoxq   %rax,%r14
  594         adcxq   %rdi,%r15
  595         adoxq   %rdi,%r15
  596         jmp     .Lreduce64
  597 
  598 .align  32
  599 .Lreduce64:
  600         mulxq   %r12,%rax,%rbx
  601         adcxq   %rax,%r8
  602         adoxq   %rbx,%r9
  603         mulxq   %r13,%rax,%rbx
  604         adcxq   %rax,%r9
  605         adoxq   %rbx,%r10
  606         mulxq   %r14,%rax,%rbx
  607         adcxq   %rax,%r10
  608         adoxq   %rbx,%r11
  609         mulxq   %r15,%rax,%r12
  610         adcxq   %rax,%r11
  611         adoxq   %rdi,%r12
  612         adcxq   %rdi,%r12
  613 
  614         movq    16(%rsp),%rdi
  615         imulq   %rdx,%r12
  616 
  617         addq    %r12,%r8
  618         adcq    $0,%r9
  619         adcq    $0,%r10
  620         adcq    $0,%r11
  621 
  622         sbbq    %rax,%rax
  623         andq    $38,%rax
  624 
  625         addq    %rax,%r8
  626         movq    %r9,8(%rdi)
  627         movq    %r10,16(%rdi)
  628         movq    %r11,24(%rdi)
  629         movq    %r8,0(%rdi)
  630 
  631         movq    24(%rsp),%r15
  632 .cfi_restore    %r15
  633         movq    32(%rsp),%r14
  634 .cfi_restore    %r14
  635         movq    40(%rsp),%r13
  636 .cfi_restore    %r13
  637         movq    48(%rsp),%r12
  638 .cfi_restore    %r12
  639         movq    56(%rsp),%rbx
  640 .cfi_restore    %rbx
  641         movq    64(%rsp),%rbp
  642 .cfi_restore    %rbp
  643         leaq    72(%rsp),%rsp
  644 .cfi_adjust_cfa_offset  88
  645 .Lfe64_sqr_epilogue:
  646         .byte   0xf3,0xc3
  647 .cfi_endproc    
  648 .size   x25519_fe64_sqr,.-x25519_fe64_sqr
  649 
  650 .globl  x25519_fe64_mul121666
  651 .type   x25519_fe64_mul121666,@function
  652 .align  32
  653 x25519_fe64_mul121666:
  654 .Lfe64_mul121666_body:
  655 .cfi_startproc  
  656         movl    $121666,%edx
  657         mulxq   0(%rsi),%r8,%rcx
  658         mulxq   8(%rsi),%r9,%rax
  659         addq    %rcx,%r9
  660         mulxq   16(%rsi),%r10,%rcx
  661         adcq    %rax,%r10
  662         mulxq   24(%rsi),%r11,%rax
  663         adcq    %rcx,%r11
  664         adcq    $0,%rax
  665 
  666         imulq   $38,%rax,%rax
  667 
  668         addq    %rax,%r8
  669         adcq    $0,%r9
  670         adcq    $0,%r10
  671         adcq    $0,%r11
  672 
  673         sbbq    %rax,%rax
  674         andq    $38,%rax
  675 
  676         addq    %rax,%r8
  677         movq    %r9,8(%rdi)
  678         movq    %r10,16(%rdi)
  679         movq    %r11,24(%rdi)
  680         movq    %r8,0(%rdi)
  681 
  682 .Lfe64_mul121666_epilogue:
  683         .byte   0xf3,0xc3
  684 .cfi_endproc    
  685 .size   x25519_fe64_mul121666,.-x25519_fe64_mul121666
  686 
  687 .globl  x25519_fe64_add
  688 .type   x25519_fe64_add,@function
  689 .align  32
  690 x25519_fe64_add:
  691 .Lfe64_add_body:
  692 .cfi_startproc  
  693         movq    0(%rsi),%r8
  694         movq    8(%rsi),%r9
  695         movq    16(%rsi),%r10
  696         movq    24(%rsi),%r11
  697 
  698         addq    0(%rdx),%r8
  699         adcq    8(%rdx),%r9
  700         adcq    16(%rdx),%r10
  701         adcq    24(%rdx),%r11
  702 
  703         sbbq    %rax,%rax
  704         andq    $38,%rax
  705 
  706         addq    %rax,%r8
  707         adcq    $0,%r9
  708         adcq    $0,%r10
  709         movq    %r9,8(%rdi)
  710         adcq    $0,%r11
  711         movq    %r10,16(%rdi)
  712         sbbq    %rax,%rax
  713         movq    %r11,24(%rdi)
  714         andq    $38,%rax
  715 
  716         addq    %rax,%r8
  717         movq    %r8,0(%rdi)
  718 
  719 .Lfe64_add_epilogue:
  720         .byte   0xf3,0xc3
  721 .cfi_endproc    
  722 .size   x25519_fe64_add,.-x25519_fe64_add
  723 
  724 .globl  x25519_fe64_sub
  725 .type   x25519_fe64_sub,@function
  726 .align  32
  727 x25519_fe64_sub:
  728 .Lfe64_sub_body:
  729 .cfi_startproc  
  730         movq    0(%rsi),%r8
  731         movq    8(%rsi),%r9
  732         movq    16(%rsi),%r10
  733         movq    24(%rsi),%r11
  734 
  735         subq    0(%rdx),%r8
  736         sbbq    8(%rdx),%r9
  737         sbbq    16(%rdx),%r10
  738         sbbq    24(%rdx),%r11
  739 
  740         sbbq    %rax,%rax
  741         andq    $38,%rax
  742 
  743         subq    %rax,%r8
  744         sbbq    $0,%r9
  745         sbbq    $0,%r10
  746         movq    %r9,8(%rdi)
  747         sbbq    $0,%r11
  748         movq    %r10,16(%rdi)
  749         sbbq    %rax,%rax
  750         movq    %r11,24(%rdi)
  751         andq    $38,%rax
  752 
  753         subq    %rax,%r8
  754         movq    %r8,0(%rdi)
  755 
  756 .Lfe64_sub_epilogue:
  757         .byte   0xf3,0xc3
  758 .cfi_endproc    
  759 .size   x25519_fe64_sub,.-x25519_fe64_sub
  760 
  761 .globl  x25519_fe64_tobytes
  762 .type   x25519_fe64_tobytes,@function
  763 .align  32
  764 x25519_fe64_tobytes:
  765 .Lfe64_to_body:
  766 .cfi_startproc  
  767         movq    0(%rsi),%r8
  768         movq    8(%rsi),%r9
  769         movq    16(%rsi),%r10
  770         movq    24(%rsi),%r11
  771 
  772 
  773         leaq    (%r11,%r11,1),%rax
  774         sarq    $63,%r11
  775         shrq    $1,%rax
  776         andq    $19,%r11
  777         addq    $19,%r11
  778 
  779         addq    %r11,%r8
  780         adcq    $0,%r9
  781         adcq    $0,%r10
  782         adcq    $0,%rax
  783 
  784         leaq    (%rax,%rax,1),%r11
  785         sarq    $63,%rax
  786         shrq    $1,%r11
  787         notq    %rax
  788         andq    $19,%rax
  789 
  790         subq    %rax,%r8
  791         sbbq    $0,%r9
  792         sbbq    $0,%r10
  793         sbbq    $0,%r11
  794 
  795         movq    %r8,0(%rdi)
  796         movq    %r9,8(%rdi)
  797         movq    %r10,16(%rdi)
  798         movq    %r11,24(%rdi)
  799 
  800 .Lfe64_to_epilogue:
  801         .byte   0xf3,0xc3
  802 .cfi_endproc    
  803 .size   x25519_fe64_tobytes,.-x25519_fe64_tobytes
  804 .byte   88,50,53,53,49,57,32,112,114,105,109,105,116,105,118,101,115,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

Cache object: 8a8963be4bcda834af9e2aeef38ee1f7


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