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/powerpc64le/chacha-ppc.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 chacha-ppc.pl. */
    3 .machine        "any"
    4 .abiversion     2
    5 .text
    6 
    7 .globl  ChaCha20_ctr32_int
    8 .type   ChaCha20_ctr32_int,@function
    9 .align  5
   10 ChaCha20_ctr32_int:
   11 .localentry     ChaCha20_ctr32_int,0
   12 
   13 __ChaCha20_ctr32_int:
   14         cmpldi  5,0
   15         .long   0x4DC20020
   16 
   17         stdu    1,-256(1)
   18         mflr    0
   19 
   20         std     14,112(1)
   21         std     15,120(1)
   22         std     16,128(1)
   23         std     17,136(1)
   24         std     18,144(1)
   25         std     19,152(1)
   26         std     20,160(1)
   27         std     21,168(1)
   28         std     22,176(1)
   29         std     23,184(1)
   30         std     24,192(1)
   31         std     25,200(1)
   32         std     26,208(1)
   33         std     27,216(1)
   34         std     28,224(1)
   35         std     29,232(1)
   36         std     30,240(1)
   37         std     31,248(1)
   38         std     0,272(1)
   39 
   40         lwz     11,0(7)
   41         lwz     12,4(7)
   42         lwz     14,8(7)
   43         lwz     15,12(7)
   44 
   45         bl      __ChaCha20_1x
   46 
   47         ld      0,272(1)
   48         ld      14,112(1)
   49         ld      15,120(1)
   50         ld      16,128(1)
   51         ld      17,136(1)
   52         ld      18,144(1)
   53         ld      19,152(1)
   54         ld      20,160(1)
   55         ld      21,168(1)
   56         ld      22,176(1)
   57         ld      23,184(1)
   58         ld      24,192(1)
   59         ld      25,200(1)
   60         ld      26,208(1)
   61         ld      27,216(1)
   62         ld      28,224(1)
   63         ld      29,232(1)
   64         ld      30,240(1)
   65         ld      31,248(1)
   66         mtlr    0
   67         addi    1,1,256
   68         blr     
   69 .long   0
   70 .byte   0,12,4,1,0x80,18,5,0
   71 .long   0
   72 .size   ChaCha20_ctr32_int,.-ChaCha20_ctr32_int
   73 
   74 .align  5
   75 __ChaCha20_1x:
   76 .Loop_outer:
   77         lis     16,0x6170
   78         lis     17,0x3320
   79         lis     18,0x7962
   80         lis     19,0x6b20
   81         ori     16,16,0x7865
   82         ori     17,17,0x646e
   83         ori     18,18,0x2d32
   84         ori     19,19,0x6574
   85 
   86         li      0,10
   87         lwz     20,0(6)
   88         lwz     21,4(6)
   89         lwz     22,8(6)
   90         lwz     23,12(6)
   91         lwz     24,16(6)
   92         mr      28,11
   93         lwz     25,20(6)
   94         mr      29,12
   95         lwz     26,24(6)
   96         mr      30,14
   97         lwz     27,28(6)
   98         mr      31,15
   99 
  100         mr      7,20
  101         mr      8,21
  102         mr      9,22
  103         mr      10,23
  104 
  105         mtctr   0
  106 .Loop:
  107         add     16,16,20
  108         add     17,17,21
  109         add     18,18,22
  110         add     19,19,23
  111         xor     28,28,16
  112         xor     29,29,17
  113         xor     30,30,18
  114         xor     31,31,19
  115         rotlwi  28,28,16
  116         rotlwi  29,29,16
  117         rotlwi  30,30,16
  118         rotlwi  31,31,16
  119         add     24,24,28
  120         add     25,25,29
  121         add     26,26,30
  122         add     27,27,31
  123         xor     20,20,24
  124         xor     21,21,25
  125         xor     22,22,26
  126         xor     23,23,27
  127         rotlwi  20,20,12
  128         rotlwi  21,21,12
  129         rotlwi  22,22,12
  130         rotlwi  23,23,12
  131         add     16,16,20
  132         add     17,17,21
  133         add     18,18,22
  134         add     19,19,23
  135         xor     28,28,16
  136         xor     29,29,17
  137         xor     30,30,18
  138         xor     31,31,19
  139         rotlwi  28,28,8
  140         rotlwi  29,29,8
  141         rotlwi  30,30,8
  142         rotlwi  31,31,8
  143         add     24,24,28
  144         add     25,25,29
  145         add     26,26,30
  146         add     27,27,31
  147         xor     20,20,24
  148         xor     21,21,25
  149         xor     22,22,26
  150         xor     23,23,27
  151         rotlwi  20,20,7
  152         rotlwi  21,21,7
  153         rotlwi  22,22,7
  154         rotlwi  23,23,7
  155         add     16,16,21
  156         add     17,17,22
  157         add     18,18,23
  158         add     19,19,20
  159         xor     31,31,16
  160         xor     28,28,17
  161         xor     29,29,18
  162         xor     30,30,19
  163         rotlwi  31,31,16
  164         rotlwi  28,28,16
  165         rotlwi  29,29,16
  166         rotlwi  30,30,16
  167         add     26,26,31
  168         add     27,27,28
  169         add     24,24,29
  170         add     25,25,30
  171         xor     21,21,26
  172         xor     22,22,27
  173         xor     23,23,24
  174         xor     20,20,25
  175         rotlwi  21,21,12
  176         rotlwi  22,22,12
  177         rotlwi  23,23,12
  178         rotlwi  20,20,12
  179         add     16,16,21
  180         add     17,17,22
  181         add     18,18,23
  182         add     19,19,20
  183         xor     31,31,16
  184         xor     28,28,17
  185         xor     29,29,18
  186         xor     30,30,19
  187         rotlwi  31,31,8
  188         rotlwi  28,28,8
  189         rotlwi  29,29,8
  190         rotlwi  30,30,8
  191         add     26,26,31
  192         add     27,27,28
  193         add     24,24,29
  194         add     25,25,30
  195         xor     21,21,26
  196         xor     22,22,27
  197         xor     23,23,24
  198         xor     20,20,25
  199         rotlwi  21,21,7
  200         rotlwi  22,22,7
  201         rotlwi  23,23,7
  202         rotlwi  20,20,7
  203         bdnz    .Loop
  204 
  205         subic   5,5,64
  206         addi    16,16,0x7865
  207         addi    17,17,0x646e
  208         addi    18,18,0x2d32
  209         addi    19,19,0x6574
  210         addis   16,16,0x6170
  211         addis   17,17,0x3320
  212         addis   18,18,0x7962
  213         addis   19,19,0x6b20
  214 
  215         subfe.  0,0,0
  216         add     20,20,7
  217         lwz     7,16(6)
  218         add     21,21,8
  219         lwz     8,20(6)
  220         add     22,22,9
  221         lwz     9,24(6)
  222         add     23,23,10
  223         lwz     10,28(6)
  224         add     24,24,7
  225         add     25,25,8
  226         add     26,26,9
  227         add     27,27,10
  228 
  229         add     28,28,11
  230         add     29,29,12
  231         add     30,30,14
  232         add     31,31,15
  233         addi    11,11,1
  234         bne     .Ltail
  235 
  236         lwz     7,0(4)
  237         lwz     8,4(4)
  238         cmpldi  5,0
  239         lwz     9,8(4)
  240         lwz     10,12(4)
  241         xor     16,16,7
  242         lwz     7,16(4)
  243         xor     17,17,8
  244         lwz     8,20(4)
  245         xor     18,18,9
  246         lwz     9,24(4)
  247         xor     19,19,10
  248         lwz     10,28(4)
  249         xor     20,20,7
  250         lwz     7,32(4)
  251         xor     21,21,8
  252         lwz     8,36(4)
  253         xor     22,22,9
  254         lwz     9,40(4)
  255         xor     23,23,10
  256         lwz     10,44(4)
  257         xor     24,24,7
  258         lwz     7,48(4)
  259         xor     25,25,8
  260         lwz     8,52(4)
  261         xor     26,26,9
  262         lwz     9,56(4)
  263         xor     27,27,10
  264         lwz     10,60(4)
  265         xor     28,28,7
  266         stw     16,0(3)
  267         xor     29,29,8
  268         stw     17,4(3)
  269         xor     30,30,9
  270         stw     18,8(3)
  271         xor     31,31,10
  272         stw     19,12(3)
  273         stw     20,16(3)
  274         stw     21,20(3)
  275         stw     22,24(3)
  276         stw     23,28(3)
  277         stw     24,32(3)
  278         stw     25,36(3)
  279         stw     26,40(3)
  280         stw     27,44(3)
  281         stw     28,48(3)
  282         stw     29,52(3)
  283         stw     30,56(3)
  284         addi    4,4,64
  285         stw     31,60(3)
  286         addi    3,3,64
  287 
  288         bne     .Loop_outer
  289 
  290         blr     
  291 
  292 .align  4
  293 .Ltail:
  294         addi    5,5,64
  295         subi    4,4,1
  296         subi    3,3,1
  297         addi    7,1,48-1
  298         mtctr   5
  299 
  300         stw     16,48(1)
  301         stw     17,52(1)
  302         stw     18,56(1)
  303         stw     19,60(1)
  304         stw     20,64(1)
  305         stw     21,68(1)
  306         stw     22,72(1)
  307         stw     23,76(1)
  308         stw     24,80(1)
  309         stw     25,84(1)
  310         stw     26,88(1)
  311         stw     27,92(1)
  312         stw     28,96(1)
  313         stw     29,100(1)
  314         stw     30,104(1)
  315         stw     31,108(1)
  316 
  317 .Loop_tail:
  318         lbzu    11,1(4)
  319         lbzu    16,1(7)
  320         xor     12,11,16
  321         stbu    12,1(3)
  322         bdnz    .Loop_tail
  323 
  324         stw     1,48(1)
  325         stw     1,52(1)
  326         stw     1,56(1)
  327         stw     1,60(1)
  328         stw     1,64(1)
  329         stw     1,68(1)
  330         stw     1,72(1)
  331         stw     1,76(1)
  332         stw     1,80(1)
  333         stw     1,84(1)
  334         stw     1,88(1)
  335         stw     1,92(1)
  336         stw     1,96(1)
  337         stw     1,100(1)
  338         stw     1,104(1)
  339         stw     1,108(1)
  340 
  341         blr     
  342 .long   0
  343 .byte   0,12,0x14,0,0,0,0,0
  344 
  345 .globl  ChaCha20_ctr32_vmx
  346 .type   ChaCha20_ctr32_vmx,@function
  347 .align  5
  348 ChaCha20_ctr32_vmx:
  349 .localentry     ChaCha20_ctr32_vmx,0
  350 
  351         cmpldi  5,256
  352         blt     __ChaCha20_ctr32_int
  353 
  354         stdu    1,-416(1)
  355         mflr    0
  356         li      10,127
  357         li      11,143
  358         li      12,-1
  359         stvx    23,10,1
  360         addi    10,10,32
  361         stvx    24,11,1
  362         addi    11,11,32
  363         stvx    25,10,1
  364         addi    10,10,32
  365         stvx    26,11,1
  366         addi    11,11,32
  367         stvx    27,10,1
  368         addi    10,10,32
  369         stvx    28,11,1
  370         addi    11,11,32
  371         stvx    29,10,1
  372         addi    10,10,32
  373         stvx    30,11,1
  374         stvx    31,10,1
  375         stw     12,268(1)
  376         std     14,272(1)
  377         std     15,280(1)
  378         std     16,288(1)
  379         std     17,296(1)
  380         std     18,304(1)
  381         std     19,312(1)
  382         std     20,320(1)
  383         std     21,328(1)
  384         std     22,336(1)
  385         std     23,344(1)
  386         std     24,352(1)
  387         std     25,360(1)
  388         std     26,368(1)
  389         std     27,376(1)
  390         std     28,384(1)
  391         std     29,392(1)
  392         std     30,400(1)
  393         std     31,408(1)
  394         li      12,-4096+511
  395         std     0, 432(1)
  396         or      12,12,12
  397 
  398         bl      .Lconsts
  399         li      16,16
  400         li      17,32
  401         li      18,48
  402         li      19,64
  403         li      20,31
  404         li      21,15
  405 
  406         lvx     13,0,6
  407         lvsr    29,0,6
  408         lvx     14,16,6
  409         lvx     27,20,6
  410 
  411         lvx     15,0,7
  412         lvsr    30,0,7
  413         lvx     28,21,7
  414 
  415         lvx     12,0,12
  416         lvx     17,16,12
  417         lvx     18,17,12
  418         lvx     19,18,12
  419         lvx     23,19,12
  420 
  421         vperm   13,14,13,29
  422         vperm   14,27,14,29
  423         vperm   15,28,15,30
  424 
  425         lwz     11,0(7)
  426         lwz     12,4(7)
  427         vadduwm 15,15,17
  428         lwz     14,8(7)
  429         vadduwm 16,15,17
  430         lwz     15,12(7)
  431         vadduwm 17,16,17
  432 
  433         vxor    29,29,29
  434         vspltisw        26,-1
  435         lvsr    24,0,4
  436         lvsl    25,0,3
  437         vperm   26,26,29,25
  438 
  439 
  440 
  441 
  442 
  443 
  444 
  445         li      0,10
  446         b       .Loop_outer_vmx
  447 
  448 .align  4
  449 .Loop_outer_vmx:
  450         lis     16,0x6170
  451         lis     17,0x3320
  452         vor     0,12,12
  453         lis     18,0x7962
  454         lis     19,0x6b20
  455         vor     4,12,12
  456         ori     16,16,0x7865
  457         ori     17,17,0x646e
  458         vor     8,12,12
  459         ori     18,18,0x2d32
  460         ori     19,19,0x6574
  461         vor     1,13,13
  462 
  463         lwz     20,0(6)
  464         vor     5,13,13
  465         lwz     21,4(6)
  466         vor     9,13,13
  467         lwz     22,8(6)
  468         vor     2,14,14
  469         lwz     23,12(6)
  470         vor     6,14,14
  471         lwz     24,16(6)
  472         vor     10,14,14
  473         mr      28,11
  474         lwz     25,20(6)
  475         vor     3,15,15
  476         mr      29,12
  477         lwz     26,24(6)
  478         vor     7,16,16
  479         mr      30,14
  480         lwz     27,28(6)
  481         vor     11,17,17
  482         mr      31,15
  483 
  484         mr      7,20
  485         mr      8,21
  486         mr      9,22
  487         mr      10,23
  488 
  489         vspltisw        27,12
  490         vspltisw        28,7
  491 
  492         mtctr   0
  493         nop     
  494 .Loop_vmx:
  495         vadduwm 0,0,1
  496         vadduwm 4,4,5
  497         vadduwm 8,8,9
  498         add     16,16,20
  499         add     17,17,21
  500         add     18,18,22
  501         vxor    3,3,0
  502         vxor    7,7,4
  503         vxor    11,11,8
  504         add     19,19,23
  505         xor     28,28,16
  506         xor     29,29,17
  507         vperm   3,3,3,19
  508         vperm   7,7,7,19
  509         vperm   11,11,11,19
  510         xor     30,30,18
  511         xor     31,31,19
  512         rotlwi  28,28,16
  513         vadduwm 2,2,3
  514         vadduwm 6,6,7
  515         vadduwm 10,10,11
  516         rotlwi  29,29,16
  517         rotlwi  30,30,16
  518         rotlwi  31,31,16
  519         vxor    1,1,2
  520         vxor    5,5,6
  521         vxor    9,9,10
  522         add     24,24,28
  523         add     25,25,29
  524         add     26,26,30
  525         vrlw    1,1,27
  526         vrlw    5,5,27
  527         vrlw    9,9,27
  528         add     27,27,31
  529         xor     20,20,24
  530         xor     21,21,25
  531         vadduwm 0,0,1
  532         vadduwm 4,4,5
  533         vadduwm 8,8,9
  534         xor     22,22,26
  535         xor     23,23,27
  536         rotlwi  20,20,12
  537         vxor    3,3,0
  538         vxor    7,7,4
  539         vxor    11,11,8
  540         rotlwi  21,21,12
  541         rotlwi  22,22,12
  542         rotlwi  23,23,12
  543         vperm   3,3,3,23
  544         vperm   7,7,7,23
  545         vperm   11,11,11,23
  546         add     16,16,20
  547         add     17,17,21
  548         add     18,18,22
  549         vadduwm 2,2,3
  550         vadduwm 6,6,7
  551         vadduwm 10,10,11
  552         add     19,19,23
  553         xor     28,28,16
  554         xor     29,29,17
  555         vxor    1,1,2
  556         vxor    5,5,6
  557         vxor    9,9,10
  558         xor     30,30,18
  559         xor     31,31,19
  560         rotlwi  28,28,8
  561         vrlw    1,1,28
  562         vrlw    5,5,28
  563         vrlw    9,9,28
  564         rotlwi  29,29,8
  565         rotlwi  30,30,8
  566         rotlwi  31,31,8
  567         vsldoi  2,2,2, 8
  568         vsldoi  6,6,6, 8
  569         vsldoi  10,10,10, 8
  570         add     24,24,28
  571         add     25,25,29
  572         add     26,26,30
  573         vsldoi  1,1,1, 12
  574         vsldoi  5,5,5, 12
  575         vsldoi  9,9,9, 12
  576         add     27,27,31
  577         xor     20,20,24
  578         xor     21,21,25
  579         vsldoi  3,3,3, 4
  580         vsldoi  7,7,7, 4
  581         vsldoi  11,11,11, 4
  582         xor     22,22,26
  583         xor     23,23,27
  584         rotlwi  20,20,7
  585         rotlwi  21,21,7
  586         rotlwi  22,22,7
  587         rotlwi  23,23,7
  588         vadduwm 0,0,1
  589         vadduwm 4,4,5
  590         vadduwm 8,8,9
  591         add     16,16,21
  592         add     17,17,22
  593         add     18,18,23
  594         vxor    3,3,0
  595         vxor    7,7,4
  596         vxor    11,11,8
  597         add     19,19,20
  598         xor     31,31,16
  599         xor     28,28,17
  600         vperm   3,3,3,19
  601         vperm   7,7,7,19
  602         vperm   11,11,11,19
  603         xor     29,29,18
  604         xor     30,30,19
  605         rotlwi  31,31,16
  606         vadduwm 2,2,3
  607         vadduwm 6,6,7
  608         vadduwm 10,10,11
  609         rotlwi  28,28,16
  610         rotlwi  29,29,16
  611         rotlwi  30,30,16
  612         vxor    1,1,2
  613         vxor    5,5,6
  614         vxor    9,9,10
  615         add     26,26,31
  616         add     27,27,28
  617         add     24,24,29
  618         vrlw    1,1,27
  619         vrlw    5,5,27
  620         vrlw    9,9,27
  621         add     25,25,30
  622         xor     21,21,26
  623         xor     22,22,27
  624         vadduwm 0,0,1
  625         vadduwm 4,4,5
  626         vadduwm 8,8,9
  627         xor     23,23,24
  628         xor     20,20,25
  629         rotlwi  21,21,12
  630         vxor    3,3,0
  631         vxor    7,7,4
  632         vxor    11,11,8
  633         rotlwi  22,22,12
  634         rotlwi  23,23,12
  635         rotlwi  20,20,12
  636         vperm   3,3,3,23
  637         vperm   7,7,7,23
  638         vperm   11,11,11,23
  639         add     16,16,21
  640         add     17,17,22
  641         add     18,18,23
  642         vadduwm 2,2,3
  643         vadduwm 6,6,7
  644         vadduwm 10,10,11
  645         add     19,19,20
  646         xor     31,31,16
  647         xor     28,28,17
  648         vxor    1,1,2
  649         vxor    5,5,6
  650         vxor    9,9,10
  651         xor     29,29,18
  652         xor     30,30,19
  653         rotlwi  31,31,8
  654         vrlw    1,1,28
  655         vrlw    5,5,28
  656         vrlw    9,9,28
  657         rotlwi  28,28,8
  658         rotlwi  29,29,8
  659         rotlwi  30,30,8
  660         vsldoi  2,2,2, 8
  661         vsldoi  6,6,6, 8
  662         vsldoi  10,10,10, 8
  663         add     26,26,31
  664         add     27,27,28
  665         add     24,24,29
  666         vsldoi  1,1,1, 4
  667         vsldoi  5,5,5, 4
  668         vsldoi  9,9,9, 4
  669         add     25,25,30
  670         xor     21,21,26
  671         xor     22,22,27
  672         vsldoi  3,3,3, 12
  673         vsldoi  7,7,7, 12
  674         vsldoi  11,11,11, 12
  675         xor     23,23,24
  676         xor     20,20,25
  677         rotlwi  21,21,7
  678         rotlwi  22,22,7
  679         rotlwi  23,23,7
  680         rotlwi  20,20,7
  681         bdnz    .Loop_vmx
  682 
  683         subi    5,5,256
  684         addi    16,16,0x7865
  685         addi    17,17,0x646e
  686         addi    18,18,0x2d32
  687         addi    19,19,0x6574
  688         addis   16,16,0x6170
  689         addis   17,17,0x3320
  690         addis   18,18,0x7962
  691         addis   19,19,0x6b20
  692         add     20,20,7
  693         lwz     7,16(6)
  694         add     21,21,8
  695         lwz     8,20(6)
  696         add     22,22,9
  697         lwz     9,24(6)
  698         add     23,23,10
  699         lwz     10,28(6)
  700         add     24,24,7
  701         add     25,25,8
  702         add     26,26,9
  703         add     27,27,10
  704         add     28,28,11
  705         add     29,29,12
  706         add     30,30,14
  707         add     31,31,15
  708 
  709         vadduwm 0,0,12
  710         vadduwm 4,4,12
  711         vadduwm 8,8,12
  712         vadduwm 1,1,13
  713         vadduwm 5,5,13
  714         vadduwm 9,9,13
  715         vadduwm 2,2,14
  716         vadduwm 6,6,14
  717         vadduwm 10,10,14
  718         vadduwm 3,3,15
  719         vadduwm 7,7,16
  720         vadduwm 11,11,17
  721 
  722         addi    11,11,4
  723         vadduwm 15,15,18
  724         vadduwm 16,16,18
  725         vadduwm 17,17,18
  726 
  727         lwz     7,0(4)
  728         lwz     8,4(4)
  729         lwz     9,8(4)
  730         lwz     10,12(4)
  731         xor     16,16,7
  732         lwz     7,16(4)
  733         xor     17,17,8
  734         lwz     8,20(4)
  735         xor     18,18,9
  736         lwz     9,24(4)
  737         xor     19,19,10
  738         lwz     10,28(4)
  739         xor     20,20,7
  740         lwz     7,32(4)
  741         xor     21,21,8
  742         lwz     8,36(4)
  743         xor     22,22,9
  744         lwz     9,40(4)
  745         xor     23,23,10
  746         lwz     10,44(4)
  747         xor     24,24,7
  748         lwz     7,48(4)
  749         xor     25,25,8
  750         lwz     8,52(4)
  751         xor     26,26,9
  752         lwz     9,56(4)
  753         xor     27,27,10
  754         lwz     10,60(4)
  755         xor     28,28,7
  756         stw     16,0(3)
  757         xor     29,29,8
  758         stw     17,4(3)
  759         xor     30,30,9
  760         stw     18,8(3)
  761         xor     31,31,10
  762         stw     19,12(3)
  763         addi    4,4,64
  764         stw     20,16(3)
  765         li      7,16
  766         stw     21,20(3)
  767         li      8,32
  768         stw     22,24(3)
  769         li      9,48
  770         stw     23,28(3)
  771         li      10,64
  772         stw     24,32(3)
  773         stw     25,36(3)
  774         stw     26,40(3)
  775         stw     27,44(3)
  776         stw     28,48(3)
  777         stw     29,52(3)
  778         stw     30,56(3)
  779         stw     31,60(3)
  780         addi    3,3,64
  781 
  782         lvx     27,0,4
  783         lvx     28,7,4
  784         lvx     29,8,4
  785         lvx     30,9,4
  786         lvx     31,10,4
  787         addi    4,4,64
  788 
  789         vperm   27,28,27,24
  790         vperm   28,29,28,24
  791         vperm   29,30,29,24
  792         vperm   30,31,30,24
  793         vxor    0,0,27
  794         vxor    1,1,28
  795         lvx     28,7,4
  796         vxor    2,2,29
  797         lvx     29,8,4
  798         vxor    3,3,30
  799         lvx     30,9,4
  800         lvx     27,10,4
  801         addi    4,4,64
  802         li      10,63
  803         vperm   0,0,0,25
  804         vperm   1,1,1,25
  805         vperm   2,2,2,25
  806         vperm   3,3,3,25
  807 
  808         vperm   31,28,31,24
  809         vperm   28,29,28,24
  810         vperm   29,30,29,24
  811         vperm   30,27,30,24
  812         vxor    4,4,31
  813         vxor    5,5,28
  814         lvx     28,7,4
  815         vxor    6,6,29
  816         lvx     29,8,4
  817         vxor    7,7,30
  818         lvx     30,9,4
  819         lvx     31,10,4
  820         addi    4,4,64
  821         vperm   4,4,4,25
  822         vperm   5,5,5,25
  823         vperm   6,6,6,25
  824         vperm   7,7,7,25
  825 
  826         vperm   27,28,27,24
  827         vperm   28,29,28,24
  828         vperm   29,30,29,24
  829         vperm   30,31,30,24
  830         vxor    8,8,27
  831         vxor    9,9,28
  832         vxor    10,10,29
  833         vxor    11,11,30
  834         vperm   8,8,8,25
  835         vperm   9,9,9,25
  836         vperm   10,10,10,25
  837         vperm   11,11,11,25
  838 
  839         andi.   17,3,15
  840         mr      16,3
  841 
  842         vsel    27,0,1,26
  843         vsel    28,1,2,26
  844         vsel    29,2,3,26
  845         vsel    30,3,4,26
  846         vsel    1,4,5,26
  847         vsel    2,5,6,26
  848         vsel    3,6,7,26
  849         vsel    4,7,8,26
  850         vsel    5,8,9,26
  851         vsel    6,9,10,26
  852         vsel    7,10,11,26
  853 
  854 
  855         stvx    27,7,3
  856         stvx    28,8,3
  857         stvx    29,9,3
  858         addi    3,3,64
  859         stvx    30,0,3
  860         stvx    1,7,3
  861         stvx    2,8,3
  862         stvx    3,9,3
  863         addi    3,3,64
  864         stvx    4,0,3
  865         stvx    5,7,3
  866         stvx    6,8,3
  867         stvx    7,9,3
  868         addi    3,3,64
  869 
  870         beq     .Laligned_vmx
  871 
  872         sub     18,3,17
  873         li      19,0
  874 .Lunaligned_tail_vmx:
  875         stvebx  11,19,18
  876         addi    19,19,1
  877         cmpw    19,17
  878         bne     .Lunaligned_tail_vmx
  879 
  880         sub     18,16,17
  881 .Lunaligned_head_vmx:
  882         stvebx  0,17,18
  883         cmpwi   17,15
  884         addi    17,17,1
  885         bne     .Lunaligned_head_vmx
  886 
  887         cmpldi  5,255
  888         bgt     .Loop_outer_vmx
  889 
  890         b       .Ldone_vmx
  891 
  892 .align  4
  893 .Laligned_vmx:
  894         stvx    0,0,16
  895 
  896         cmpldi  5,255
  897         bgt     .Loop_outer_vmx
  898         nop     
  899 
  900 .Ldone_vmx:
  901         cmpldi  5,0
  902         bnel    __ChaCha20_1x
  903 
  904         lwz     12,268(1)
  905         li      10,127
  906         li      11,143
  907         or      12,12,12
  908         lvx     23,10,1
  909         addi    10,10,32
  910         lvx     24,11,1
  911         addi    11,11,32
  912         lvx     25,10,1
  913         addi    10,10,32
  914         lvx     26,11,1
  915         addi    11,11,32
  916         lvx     27,10,1
  917         addi    10,10,32
  918         lvx     28,11,1
  919         addi    11,11,32
  920         lvx     29,10,1
  921         addi    10,10,32
  922         lvx     30,11,1
  923         lvx     31,10,1
  924         ld      0, 432(1)
  925         ld      14,272(1)
  926         ld      15,280(1)
  927         ld      16,288(1)
  928         ld      17,296(1)
  929         ld      18,304(1)
  930         ld      19,312(1)
  931         ld      20,320(1)
  932         ld      21,328(1)
  933         ld      22,336(1)
  934         ld      23,344(1)
  935         ld      24,352(1)
  936         ld      25,360(1)
  937         ld      26,368(1)
  938         ld      27,376(1)
  939         ld      28,384(1)
  940         ld      29,392(1)
  941         ld      30,400(1)
  942         ld      31,408(1)
  943         mtlr    0
  944         addi    1,1,416
  945         blr     
  946 .long   0
  947 .byte   0,12,0x04,1,0x80,18,5,0
  948 .long   0
  949 .size   ChaCha20_ctr32_vmx,.-ChaCha20_ctr32_vmx
  950 
  951 .globl  ChaCha20_ctr32_vsx
  952 .type   ChaCha20_ctr32_vsx,@function
  953 .align  5
  954 ChaCha20_ctr32_vsx:
  955 .localentry     ChaCha20_ctr32_vsx,0
  956 
  957         stdu    1,-224(1)
  958         mflr    0
  959         li      10,127
  960         li      11,143
  961         li      12,-1
  962         stvx    26,10,1
  963         addi    10,10,32
  964         stvx    27,11,1
  965         addi    11,11,32
  966         stvx    28,10,1
  967         addi    10,10,32
  968         stvx    29,11,1
  969         addi    11,11,32
  970         stvx    30,10,1
  971         stvx    31,11,1
  972         stw     12,220(1)
  973         li      12,-4096+63
  974         std     0, 240(1)
  975         or      12,12,12
  976 
  977         bl      .Lconsts
  978         .long   0x7E006619
  979         addi    12,12,0x50
  980         li      8,16
  981         li      9,32
  982         li      10,48
  983         li      11,64
  984 
  985         .long   0x7E203619
  986         .long   0x7E483619
  987         .long   0x7E603E19
  988 
  989         vxor    27,27,27
  990         .long   0x7F8B6619
  991         vspltw  26,19,0
  992         vsldoi  19,19,27,4
  993         vsldoi  19,27,19,12
  994         vadduwm 26,26,28
  995 
  996 
  997 
  998 
  999 
 1000         li      0,10
 1001         mtctr   0
 1002         b       .Loop_outer_vsx
 1003 
 1004 .align  5
 1005 .Loop_outer_vsx:
 1006         lvx     0,0,12
 1007         lvx     1,8,12
 1008         lvx     2,9,12
 1009         lvx     3,10,12
 1010 
 1011         vspltw  4,17,0
 1012         vspltw  5,17,1
 1013         vspltw  6,17,2
 1014         vspltw  7,17,3
 1015 
 1016         vspltw  8,18,0
 1017         vspltw  9,18,1
 1018         vspltw  10,18,2
 1019         vspltw  11,18,3
 1020 
 1021         vor     12,26,26
 1022         vspltw  13,19,1
 1023         vspltw  14,19,2
 1024         vspltw  15,19,3
 1025 
 1026         vspltisw        27,-16
 1027         vspltisw        28,12
 1028         vspltisw        29,8
 1029         vspltisw        30,7
 1030 
 1031 .Loop_vsx:
 1032         vadduwm 0,0,4
 1033         vadduwm 1,1,5
 1034         vadduwm 2,2,6
 1035         vadduwm 3,3,7
 1036         vxor    12,12,0
 1037         vxor    13,13,1
 1038         vxor    14,14,2
 1039         vxor    15,15,3
 1040         vrlw    12,12,27
 1041         vrlw    13,13,27
 1042         vrlw    14,14,27
 1043         vrlw    15,15,27
 1044         vadduwm 8,8,12
 1045         vadduwm 9,9,13
 1046         vadduwm 10,10,14
 1047         vadduwm 11,11,15
 1048         vxor    4,4,8
 1049         vxor    5,5,9
 1050         vxor    6,6,10
 1051         vxor    7,7,11
 1052         vrlw    4,4,28
 1053         vrlw    5,5,28
 1054         vrlw    6,6,28
 1055         vrlw    7,7,28
 1056         vadduwm 0,0,4
 1057         vadduwm 1,1,5
 1058         vadduwm 2,2,6
 1059         vadduwm 3,3,7
 1060         vxor    12,12,0
 1061         vxor    13,13,1
 1062         vxor    14,14,2
 1063         vxor    15,15,3
 1064         vrlw    12,12,29
 1065         vrlw    13,13,29
 1066         vrlw    14,14,29
 1067         vrlw    15,15,29
 1068         vadduwm 8,8,12
 1069         vadduwm 9,9,13
 1070         vadduwm 10,10,14
 1071         vadduwm 11,11,15
 1072         vxor    4,4,8
 1073         vxor    5,5,9
 1074         vxor    6,6,10
 1075         vxor    7,7,11
 1076         vrlw    4,4,30
 1077         vrlw    5,5,30
 1078         vrlw    6,6,30
 1079         vrlw    7,7,30
 1080         vadduwm 0,0,5
 1081         vadduwm 1,1,6
 1082         vadduwm 2,2,7
 1083         vadduwm 3,3,4
 1084         vxor    15,15,0
 1085         vxor    12,12,1
 1086         vxor    13,13,2
 1087         vxor    14,14,3
 1088         vrlw    15,15,27
 1089         vrlw    12,12,27
 1090         vrlw    13,13,27
 1091         vrlw    14,14,27
 1092         vadduwm 10,10,15
 1093         vadduwm 11,11,12
 1094         vadduwm 8,8,13
 1095         vadduwm 9,9,14
 1096         vxor    5,5,10
 1097         vxor    6,6,11
 1098         vxor    7,7,8
 1099         vxor    4,4,9
 1100         vrlw    5,5,28
 1101         vrlw    6,6,28
 1102         vrlw    7,7,28
 1103         vrlw    4,4,28
 1104         vadduwm 0,0,5
 1105         vadduwm 1,1,6
 1106         vadduwm 2,2,7
 1107         vadduwm 3,3,4
 1108         vxor    15,15,0
 1109         vxor    12,12,1
 1110         vxor    13,13,2
 1111         vxor    14,14,3
 1112         vrlw    15,15,29
 1113         vrlw    12,12,29
 1114         vrlw    13,13,29
 1115         vrlw    14,14,29
 1116         vadduwm 10,10,15
 1117         vadduwm 11,11,12
 1118         vadduwm 8,8,13
 1119         vadduwm 9,9,14
 1120         vxor    5,5,10
 1121         vxor    6,6,11
 1122         vxor    7,7,8
 1123         vxor    4,4,9
 1124         vrlw    5,5,30
 1125         vrlw    6,6,30
 1126         vrlw    7,7,30
 1127         vrlw    4,4,30
 1128         bdnz    .Loop_vsx
 1129 
 1130         vadduwm 12,12,26
 1131 
 1132         .long   0x13600F8C
 1133         .long   0x13821F8C
 1134         .long   0x10000E8C
 1135         .long   0x10421E8C
 1136         .long   0x13A42F8C
 1137         .long   0x13C63F8C
 1138         .long   0xF0201057
 1139         .long   0xF0601357
 1140         .long   0xF01BE057
 1141         .long   0xF05BE357
 1142 
 1143         .long   0x10842E8C
 1144         .long   0x10C63E8C
 1145         .long   0x13684F8C
 1146         .long   0x138A5F8C
 1147         .long   0xF0A43057
 1148         .long   0xF0E43357
 1149         .long   0xF09DF057
 1150         .long   0xF0DDF357
 1151 
 1152         .long   0x11084E8C
 1153         .long   0x114A5E8C
 1154         .long   0x13AC6F8C
 1155         .long   0x13CE7F8C
 1156         .long   0xF1285057
 1157         .long   0xF1685357
 1158         .long   0xF11BE057
 1159         .long   0xF15BE357
 1160 
 1161         .long   0x118C6E8C
 1162         .long   0x11CE7E8C
 1163         vspltisw        27,4
 1164         vadduwm 26,26,27
 1165         .long   0xF1AC7057
 1166         .long   0xF1EC7357
 1167         .long   0xF19DF057
 1168         .long   0xF1DDF357
 1169 
 1170         vadduwm 0,0,16
 1171         vadduwm 4,4,17
 1172         vadduwm 8,8,18
 1173         vadduwm 12,12,19
 1174 
 1175 
 1176 
 1177 
 1178 
 1179 
 1180         cmpldi  5,0x40
 1181         blt     .Ltail_vsx
 1182 
 1183         .long   0x7F602619
 1184         .long   0x7F882619
 1185         .long   0x7FA92619
 1186         .long   0x7FCA2619
 1187 
 1188         vxor    27,27,0
 1189         vxor    28,28,4
 1190         vxor    29,29,8
 1191         vxor    30,30,12
 1192 
 1193         .long   0x7F601F19
 1194         .long   0x7F881F19
 1195         addi    4,4,0x40
 1196         .long   0x7FA91F19
 1197         subi    5,5,0x40
 1198         .long   0x7FCA1F19
 1199         addi    3,3,0x40
 1200         beq     .Ldone_vsx
 1201 
 1202         vadduwm 0,1,16
 1203         vadduwm 4,5,17
 1204         vadduwm 8,9,18
 1205         vadduwm 12,13,19
 1206 
 1207 
 1208 
 1209 
 1210 
 1211 
 1212         cmpldi  5,0x40
 1213         blt     .Ltail_vsx
 1214 
 1215         .long   0x7F602619
 1216         .long   0x7F882619
 1217         .long   0x7FA92619
 1218         .long   0x7FCA2619
 1219 
 1220         vxor    27,27,0
 1221         vxor    28,28,4
 1222         vxor    29,29,8
 1223         vxor    30,30,12
 1224 
 1225         .long   0x7F601F19
 1226         .long   0x7F881F19
 1227         addi    4,4,0x40
 1228         .long   0x7FA91F19
 1229         subi    5,5,0x40
 1230         .long   0x7FCA1F19
 1231         addi    3,3,0x40
 1232         beq     .Ldone_vsx
 1233 
 1234         vadduwm 0,2,16
 1235         vadduwm 4,6,17
 1236         vadduwm 8,10,18
 1237         vadduwm 12,14,19
 1238 
 1239 
 1240 
 1241 
 1242 
 1243 
 1244         cmpldi  5,0x40
 1245         blt     .Ltail_vsx
 1246 
 1247         .long   0x7F602619
 1248         .long   0x7F882619
 1249         .long   0x7FA92619
 1250         .long   0x7FCA2619
 1251 
 1252         vxor    27,27,0
 1253         vxor    28,28,4
 1254         vxor    29,29,8
 1255         vxor    30,30,12
 1256 
 1257         .long   0x7F601F19
 1258         .long   0x7F881F19
 1259         addi    4,4,0x40
 1260         .long   0x7FA91F19
 1261         subi    5,5,0x40
 1262         .long   0x7FCA1F19
 1263         addi    3,3,0x40
 1264         beq     .Ldone_vsx
 1265 
 1266         vadduwm 0,3,16
 1267         vadduwm 4,7,17
 1268         vadduwm 8,11,18
 1269         vadduwm 12,15,19
 1270 
 1271 
 1272 
 1273 
 1274 
 1275 
 1276         cmpldi  5,0x40
 1277         blt     .Ltail_vsx
 1278 
 1279         .long   0x7F602619
 1280         .long   0x7F882619
 1281         .long   0x7FA92619
 1282         .long   0x7FCA2619
 1283 
 1284         vxor    27,27,0
 1285         vxor    28,28,4
 1286         vxor    29,29,8
 1287         vxor    30,30,12
 1288 
 1289         .long   0x7F601F19
 1290         .long   0x7F881F19
 1291         addi    4,4,0x40
 1292         .long   0x7FA91F19
 1293         subi    5,5,0x40
 1294         .long   0x7FCA1F19
 1295         addi    3,3,0x40
 1296         mtctr   0
 1297         bne     .Loop_outer_vsx
 1298 
 1299 .Ldone_vsx:
 1300         lwz     12,220(1)
 1301         li      10,127
 1302         li      11,143
 1303         ld      0, 240(1)
 1304         or      12,12,12
 1305         lvx     26,10,1
 1306         addi    10,10,32
 1307         lvx     27,11,1
 1308         addi    11,11,32
 1309         lvx     28,10,1
 1310         addi    10,10,32
 1311         lvx     29,11,1
 1312         addi    11,11,32
 1313         lvx     30,10,1
 1314         lvx     31,11,1
 1315         mtlr    0
 1316         addi    1,1,224
 1317         blr     
 1318 
 1319 .align  4
 1320 .Ltail_vsx:
 1321         addi    11,1,48
 1322         mtctr   5
 1323         .long   0x7C005F19
 1324         .long   0x7C885F19
 1325         .long   0x7D095F19
 1326         .long   0x7D8A5F19
 1327         subi    12,11,1
 1328         subi    4,4,1
 1329         subi    3,3,1
 1330 
 1331 .Loop_tail_vsx:
 1332         lbzu    6,1(12)
 1333         lbzu    7,1(4)
 1334         xor     6,6,7
 1335         stbu    6,1(3)
 1336         bdnz    .Loop_tail_vsx
 1337 
 1338         .long   0x7E005F19
 1339         .long   0x7E085F19
 1340         .long   0x7E095F19
 1341         .long   0x7E0A5F19
 1342 
 1343         b       .Ldone_vsx
 1344 .long   0
 1345 .byte   0,12,0x04,1,0x80,0,5,0
 1346 .long   0
 1347 .size   ChaCha20_ctr32_vsx,.-ChaCha20_ctr32_vsx
 1348 .align  5
 1349 .Lconsts:
 1350         mflr    0
 1351         bcl     20,31,$+4
 1352         mflr    12
 1353         addi    12,12,56
 1354         mtlr    0
 1355         blr     
 1356 .long   0
 1357 .byte   0,12,0x14,0,0,0,0,0
 1358 .space  28
 1359 .Lsigma:
 1360 .long   0x61707865,0x3320646e,0x79622d32,0x6b206574
 1361 .long   1,0,0,0
 1362 .long   4,0,0,0
 1363 .long   0x0e0f0c0d,0x0a0b0809,0x06070405,0x02030001
 1364 .long   0x0d0e0f0c,0x090a0b08,0x05060704,0x01020300
 1365 .long   0x61707865,0x61707865,0x61707865,0x61707865
 1366 .long   0x3320646e,0x3320646e,0x3320646e,0x3320646e
 1367 .long   0x79622d32,0x79622d32,0x79622d32,0x79622d32
 1368 .long   0x6b206574,0x6b206574,0x6b206574,0x6b206574
 1369 .long   0,1,2,3
 1370 .byte   67,104,97,67,104,97,50,48,32,102,111,114,32,80,111,119,101,114,80,67,47,65,108,116,105,86,101,99,44,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
 1371 .align  2
 1372 .align  2

Cache object: 1bb2336bd0de975c4a3d60c408efb095


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