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/keccak1600-ppc64.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 keccak1600-ppc64.pl. */
    3 .abiversion     2
    4 .text
    5 
    6 .type   KeccakF1600_int,@function
    7 .align  5
    8 KeccakF1600_int:
    9 .localentry     KeccakF1600_int,0
   10 
   11         li      0,24
   12         mtctr   0
   13         b       .Loop
   14 .align  4
   15 .Loop:
   16         xor     0,7,12
   17         std     11,96(1)
   18         xor     3,8,6
   19         std     16,104(1)
   20         xor     4,9,14
   21         std     21,112(1)
   22         xor     5,10,15
   23         std     26,120(1)
   24         xor     11,11,16
   25         xor     0,0,17
   26         xor     3,3,18
   27         xor     4,4,19
   28         xor     5,5,20
   29         xor     11,11,21
   30         xor     0,0,22
   31         xor     3,3,23
   32         xor     4,4,24
   33         xor     5,5,25
   34         xor     11,11,26
   35         xor     0,0,27
   36         xor     4,4,29
   37         xor     3,3,28
   38         xor     5,5,30
   39         rotldi  16,4,1
   40         xor     11,11,31
   41         rotldi  21,5,1
   42         xor     16,16,0
   43         rotldi  26,11,1
   44 
   45         xor     8,8,16
   46         xor     6,6,16
   47         xor     18,18,16
   48         xor     23,23,16
   49         xor     28,28,16
   50 
   51         rotldi  16,0,1
   52         xor     21,21,3
   53         xor     4,4,26
   54         rotldi  26,3,1
   55         xor     5,5,16
   56         xor     11,11,26
   57 
   58         xor     3,   9,21
   59         xor     14,14,21
   60         xor     19,19,21
   61         xor     24,24,21
   62         xor     29,29,21
   63 
   64         xor     7,7,11
   65         xor     12,12,11
   66         xor     17,17,11
   67         xor     22,22,11
   68         xor     27,27,11
   69         ld      11,96(1)
   70         xor     0,   10,4
   71         ld      16,104(1)
   72         xor     15,15,4
   73         ld      21,112(1)
   74         xor     20,20,4
   75         ld      26,120(1)
   76         xor     25,25,4
   77         xor     30,30,4
   78 
   79         xor     4,   11,5
   80         xor     16,16,5
   81         xor     21,21,5
   82         xor     26,26,5
   83         xor     31,31,5
   84 
   85         mr      5,8
   86         rotldi  8,6,44
   87 
   88         rotldi  9,19,43
   89 
   90         rotldi  10,25,21
   91 
   92         rotldi  11,31,14
   93 
   94         rotldi  6,16,20
   95         rotldi  19,20,25
   96         rotldi  25,24,15
   97         rotldi  31,28,2
   98 
   99         rotldi  16,29,61
  100         rotldi  20,26,8
  101         rotldi  24,18,10
  102         rotldi  28,15,55
  103 
  104         rotldi  29,21,39
  105         rotldi  26,30,56
  106         rotldi  18,14,6
  107         rotldi  15,23,45
  108 
  109         rotldi  21,27,18
  110         rotldi  30,22,41
  111         rotldi  14,17,3
  112         rotldi  23,12,36
  113 
  114         rotldi  12,0,28
  115         rotldi  17,5,1
  116         rotldi  22,4,27
  117         rotldi  27,3,62
  118 
  119         andc    0,9,8
  120         andc    3,10,9
  121         andc    4,7,11
  122         andc    5,8,7
  123         xor     7,7,0
  124         andc    0,11,10
  125         xor     8,8,3
  126         ld      3,80(1)
  127         xor     10,10,4
  128         xor     11,11,5
  129         xor     9,9,0
  130         ldu     5,8(3)
  131 
  132         andc    0,14,6
  133         std     3,80(1)
  134         andc    3,15,14
  135         andc    4,12,16
  136         xor     7,7,5
  137         andc    5,6,12
  138         xor     12,12,0
  139         andc    0,16,15
  140         xor     6,6,3
  141         xor     15,15,4
  142         xor     16,16,5
  143         xor     14,14,0
  144 
  145         andc    0,19,18
  146         andc    3,20,19
  147         andc    4,17,21
  148         andc    5,18,17
  149         xor     17,17,0
  150         andc    0,21,20
  151         xor     18,18,3
  152         xor     20,20,4
  153         xor     21,21,5
  154         xor     19,19,0
  155 
  156         andc    0,24,23
  157         andc    3,25,24
  158         andc    4,22,26
  159         andc    5,23,22
  160         xor     22,22,0
  161         andc    0,26,25
  162         xor     23,23,3
  163         xor     25,25,4
  164         xor     26,26,5
  165         xor     24,24,0
  166 
  167         andc    0,29,28
  168         andc    3,30,29
  169         andc    4,27,31
  170         andc    5,28,27
  171         xor     27,27,0
  172         andc    0,31,30
  173         xor     28,28,3
  174         xor     30,30,4
  175         xor     31,31,5
  176         xor     29,29,0
  177 
  178         bdnz    .Loop
  179 
  180         blr     
  181 .long   0
  182 .byte   0,12,0x14,0,0,0,0,0
  183 .size   KeccakF1600_int,.-KeccakF1600_int
  184 
  185 .type   KeccakF1600,@function
  186 .align  5
  187 KeccakF1600:
  188 .localentry     KeccakF1600,0
  189 
  190         stdu    1,-272(1)
  191         mflr    0
  192         std     14,128(1)
  193         std     15,136(1)
  194         std     16,144(1)
  195         std     17,152(1)
  196         std     18,160(1)
  197         std     19,168(1)
  198         std     20,176(1)
  199         std     21,184(1)
  200         std     22,192(1)
  201         std     23,200(1)
  202         std     24,208(1)
  203         std     25,216(1)
  204         std     26,224(1)
  205         std     27,232(1)
  206         std     28,240(1)
  207         std     29,248(1)
  208         std     30,256(1)
  209         std     31,264(1)
  210         std     0,288(1)
  211 
  212         bl      PICmeup
  213         subi    12,12,8
  214 
  215         std     3,48(1)
  216 
  217 
  218 
  219         std     12,80(1)
  220 
  221         ld      7,0(3)
  222         ld      8,8(3)
  223         ld      9,16(3)
  224         ld      10,24(3)
  225         ld      11,32(3)
  226         ld      12,40(3)
  227         ld      6,48(3)
  228         ld      14,56(3)
  229         ld      15,64(3)
  230         ld      16,72(3)
  231         ld      17,80(3)
  232         ld      18,88(3)
  233         ld      19,96(3)
  234         ld      20,104(3)
  235         ld      21,112(3)
  236         ld      22,120(3)
  237         ld      23,128(3)
  238         ld      24,136(3)
  239         ld      25,144(3)
  240         ld      26,152(3)
  241         ld      27,160(3)
  242         ld      28,168(3)
  243         ld      29,176(3)
  244         ld      30,184(3)
  245         ld      31,192(3)
  246 
  247         bl      KeccakF1600_int
  248 
  249         ld      3,48(1)
  250         std     7,0(3)
  251         std     8,8(3)
  252         std     9,16(3)
  253         std     10,24(3)
  254         std     11,32(3)
  255         std     12,40(3)
  256         std     6,48(3)
  257         std     14,56(3)
  258         std     15,64(3)
  259         std     16,72(3)
  260         std     17,80(3)
  261         std     18,88(3)
  262         std     19,96(3)
  263         std     20,104(3)
  264         std     21,112(3)
  265         std     22,120(3)
  266         std     23,128(3)
  267         std     24,136(3)
  268         std     25,144(3)
  269         std     26,152(3)
  270         std     27,160(3)
  271         std     28,168(3)
  272         std     29,176(3)
  273         std     30,184(3)
  274         std     31,192(3)
  275 
  276         ld      0,288(1)
  277         ld      14,128(1)
  278         ld      15,136(1)
  279         ld      16,144(1)
  280         ld      17,152(1)
  281         ld      18,160(1)
  282         ld      19,168(1)
  283         ld      20,176(1)
  284         ld      21,184(1)
  285         ld      22,192(1)
  286         ld      23,200(1)
  287         ld      24,208(1)
  288         ld      25,216(1)
  289         ld      26,224(1)
  290         ld      27,232(1)
  291         ld      28,240(1)
  292         ld      29,248(1)
  293         ld      30,256(1)
  294         ld      31,264(1)
  295         mtlr    0
  296         addi    1,1,272
  297         blr     
  298 .long   0
  299 .byte   0,12,4,1,0x80,18,1,0
  300 .long   0
  301 .size   KeccakF1600,.-KeccakF1600
  302 
  303 .type   dword_le_load,@function
  304 .align  5
  305 dword_le_load:
  306 .localentry     dword_le_load,0
  307 
  308         lbzu    0,1(3)
  309         lbzu    4,1(3)
  310         lbzu    5,1(3)
  311         insrdi  0,4,8,48
  312         lbzu    4,1(3)
  313         insrdi  0,5,8,40
  314         lbzu    5,1(3)
  315         insrdi  0,4,8,32
  316         lbzu    4,1(3)
  317         insrdi  0,5,8,24
  318         lbzu    5,1(3)
  319         insrdi  0,4,8,16
  320         lbzu    4,1(3)
  321         insrdi  0,5,8,8
  322         insrdi  0,4,8,0
  323         blr     
  324 .long   0
  325 .byte   0,12,0x14,0,0,0,1,0
  326 .long   0
  327 .size   dword_le_load,.-dword_le_load
  328 
  329 .globl  SHA3_absorb
  330 .type   SHA3_absorb,@function
  331 .type   SHA3_absorb,@function
  332 .align  5
  333 SHA3_absorb:
  334 .localentry     SHA3_absorb,0
  335 
  336         stdu    1,-272(1)
  337         mflr    0
  338         std     14,128(1)
  339         std     15,136(1)
  340         std     16,144(1)
  341         std     17,152(1)
  342         std     18,160(1)
  343         std     19,168(1)
  344         std     20,176(1)
  345         std     21,184(1)
  346         std     22,192(1)
  347         std     23,200(1)
  348         std     24,208(1)
  349         std     25,216(1)
  350         std     26,224(1)
  351         std     27,232(1)
  352         std     28,240(1)
  353         std     29,248(1)
  354         std     30,256(1)
  355         std     31,264(1)
  356         std     0,288(1)
  357 
  358         bl      PICmeup
  359         subi    4,4,1
  360         subi    12,12,8
  361 
  362         std     3,48(1)
  363         std     4,56(1)
  364         std     5,64(1)
  365         std     6,72(1)
  366         mr      0,6
  367         std     12,80(1)
  368 
  369         ld      7,0(3)
  370         ld      8,8(3)
  371         ld      9,16(3)
  372         ld      10,24(3)
  373         ld      11,32(3)
  374         ld      12,40(3)
  375         ld      6,48(3)
  376         ld      14,56(3)
  377         ld      15,64(3)
  378         ld      16,72(3)
  379         ld      17,80(3)
  380         ld      18,88(3)
  381         ld      19,96(3)
  382         ld      20,104(3)
  383         ld      21,112(3)
  384         ld      22,120(3)
  385         ld      23,128(3)
  386         ld      24,136(3)
  387         ld      25,144(3)
  388         ld      26,152(3)
  389         ld      27,160(3)
  390         ld      28,168(3)
  391         ld      29,176(3)
  392         ld      30,184(3)
  393         ld      31,192(3)
  394 
  395         mr      3,4
  396         mr      4,5
  397         mr      5,0
  398 
  399         b       .Loop_absorb
  400 
  401 .align  4
  402 .Loop_absorb:
  403         cmpld   4,5
  404         blt     .Labsorbed
  405 
  406         sub     4,4,5
  407         srwi    5,5,3
  408         std     4,64(1)
  409         mtctr   5
  410         bl      dword_le_load
  411         xor     7,7,0
  412         bdz     .Lprocess_block
  413         bl      dword_le_load
  414         xor     8,8,0
  415         bdz     .Lprocess_block
  416         bl      dword_le_load
  417         xor     9,9,0
  418         bdz     .Lprocess_block
  419         bl      dword_le_load
  420         xor     10,10,0
  421         bdz     .Lprocess_block
  422         bl      dword_le_load
  423         xor     11,11,0
  424         bdz     .Lprocess_block
  425         bl      dword_le_load
  426         xor     12,12,0
  427         bdz     .Lprocess_block
  428         bl      dword_le_load
  429         xor     6,6,0
  430         bdz     .Lprocess_block
  431         bl      dword_le_load
  432         xor     14,14,0
  433         bdz     .Lprocess_block
  434         bl      dword_le_load
  435         xor     15,15,0
  436         bdz     .Lprocess_block
  437         bl      dword_le_load
  438         xor     16,16,0
  439         bdz     .Lprocess_block
  440         bl      dword_le_load
  441         xor     17,17,0
  442         bdz     .Lprocess_block
  443         bl      dword_le_load
  444         xor     18,18,0
  445         bdz     .Lprocess_block
  446         bl      dword_le_load
  447         xor     19,19,0
  448         bdz     .Lprocess_block
  449         bl      dword_le_load
  450         xor     20,20,0
  451         bdz     .Lprocess_block
  452         bl      dword_le_load
  453         xor     21,21,0
  454         bdz     .Lprocess_block
  455         bl      dword_le_load
  456         xor     22,22,0
  457         bdz     .Lprocess_block
  458         bl      dword_le_load
  459         xor     23,23,0
  460         bdz     .Lprocess_block
  461         bl      dword_le_load
  462         xor     24,24,0
  463         bdz     .Lprocess_block
  464         bl      dword_le_load
  465         xor     25,25,0
  466         bdz     .Lprocess_block
  467         bl      dword_le_load
  468         xor     26,26,0
  469         bdz     .Lprocess_block
  470         bl      dword_le_load
  471         xor     27,27,0
  472         bdz     .Lprocess_block
  473         bl      dword_le_load
  474         xor     28,28,0
  475         bdz     .Lprocess_block
  476         bl      dword_le_load
  477         xor     29,29,0
  478         bdz     .Lprocess_block
  479         bl      dword_le_load
  480         xor     30,30,0
  481         bdz     .Lprocess_block
  482         bl      dword_le_load
  483         xor     31,31,0
  484 
  485 .Lprocess_block:
  486         std     3,56(1)
  487 
  488         bl      KeccakF1600_int
  489 
  490         ld      0,80(1)
  491         ld      5,72(1)
  492         ld      4,64(1)
  493         ld      3,56(1)
  494         addic   0,0,-192
  495         std     0,80(1)
  496 
  497         b       .Loop_absorb
  498 
  499 .align  4
  500 .Labsorbed:
  501         ld      3,48(1)
  502         std     7,0(3)
  503         std     8,8(3)
  504         std     9,16(3)
  505         std     10,24(3)
  506         std     11,32(3)
  507         std     12,40(3)
  508         std     6,48(3)
  509         std     14,56(3)
  510         std     15,64(3)
  511         std     16,72(3)
  512         std     17,80(3)
  513         std     18,88(3)
  514         std     19,96(3)
  515         std     20,104(3)
  516         std     21,112(3)
  517         std     22,120(3)
  518         std     23,128(3)
  519         std     24,136(3)
  520         std     25,144(3)
  521         std     26,152(3)
  522         std     27,160(3)
  523         std     28,168(3)
  524         std     29,176(3)
  525         std     30,184(3)
  526         std     31,192(3)
  527 
  528         mr      3,4
  529         ld      0,288(1)
  530         ld      14,128(1)
  531         ld      15,136(1)
  532         ld      16,144(1)
  533         ld      17,152(1)
  534         ld      18,160(1)
  535         ld      19,168(1)
  536         ld      20,176(1)
  537         ld      21,184(1)
  538         ld      22,192(1)
  539         ld      23,200(1)
  540         ld      24,208(1)
  541         ld      25,216(1)
  542         ld      26,224(1)
  543         ld      27,232(1)
  544         ld      28,240(1)
  545         ld      29,248(1)
  546         ld      30,256(1)
  547         ld      31,264(1)
  548         mtlr    0
  549         addi    1,1,272
  550         blr     
  551 .long   0
  552 .byte   0,12,4,1,0x80,18,4,0
  553 .long   0
  554 .size   SHA3_absorb,.-SHA3_absorb
  555 .globl  SHA3_squeeze
  556 .type   SHA3_squeeze,@function
  557 .type   SHA3_squeeze,@function
  558 .align  5
  559 SHA3_squeeze:
  560 .localentry     SHA3_squeeze,0
  561 
  562         stdu    1,-80(1)
  563         mflr    0
  564         std     28,48(1)
  565         std     29,56(1)
  566         std     30,64(1)
  567         std     31,72(1)
  568         std     0,96(1)
  569 
  570         mr      28,3
  571         subi    3,3,8
  572         subi    29,4,1
  573         mr      30,5
  574         mr      31,6
  575         b       .Loop_squeeze
  576 
  577 .align  4
  578 .Loop_squeeze:
  579         ldu     0,8(3)
  580         cmpldi  30,8
  581         blt     .Lsqueeze_tail
  582 
  583         stbu    0,1(29)
  584         srdi    0,0,8
  585         stbu    0,1(29)
  586         srdi    0,0,8
  587         stbu    0,1(29)
  588         srdi    0,0,8
  589         stbu    0,1(29)
  590         srdi    0,0,8
  591         stbu    0,1(29)
  592         srdi    0,0,8
  593         stbu    0,1(29)
  594         srdi    0,0,8
  595         stbu    0,1(29)
  596         srdi    0,0,8
  597         stbu    0,1(29)
  598 
  599         subic.  30,30,8
  600         beq     .Lsqueeze_done
  601 
  602         subic.  6,6,8
  603         bgt     .Loop_squeeze
  604 
  605         mr      3,28
  606         bl      KeccakF1600
  607         subi    3,28,8
  608         mr      6,31
  609         b       .Loop_squeeze
  610 
  611 .align  4
  612 .Lsqueeze_tail:
  613         mtctr   30
  614 .Loop_tail:
  615         stbu    0,1(29)
  616         srdi    0,0,8
  617         bdnz    .Loop_tail
  618 
  619 .Lsqueeze_done:
  620         ld      0,96(1)
  621         ld      28,48(1)
  622         ld      29,56(1)
  623         ld      30,64(1)
  624         ld      31,72(1)
  625         mtlr    0
  626         addi    1,1,80
  627         blr     
  628 .long   0
  629 .byte   0,12,4,1,0x80,4,4,0
  630 .long   0
  631 .size   SHA3_squeeze,.-SHA3_squeeze
  632 .align  6
  633 PICmeup:
  634         mflr    0
  635         bcl     20,31,$+4
  636         mflr    12
  637         addi    12,12,56
  638         mtlr    0
  639         blr     
  640 .long   0
  641 .byte   0,12,0x14,0,0,0,0,0
  642 .space  28
  643 .type   iotas,@object
  644 iotas:
  645 .long   0x00000001,0x00000000
  646 .long   0x00008082,0x00000000
  647 .long   0x0000808a,0x80000000
  648 .long   0x80008000,0x80000000
  649 .long   0x0000808b,0x00000000
  650 .long   0x80000001,0x00000000
  651 .long   0x80008081,0x80000000
  652 .long   0x00008009,0x80000000
  653 .long   0x0000008a,0x00000000
  654 .long   0x00000088,0x00000000
  655 .long   0x80008009,0x00000000
  656 .long   0x8000000a,0x00000000
  657 .long   0x8000808b,0x00000000
  658 .long   0x0000008b,0x80000000
  659 .long   0x00008089,0x80000000
  660 .long   0x00008003,0x80000000
  661 .long   0x00008002,0x80000000
  662 .long   0x00000080,0x80000000
  663 .long   0x0000800a,0x00000000
  664 .long   0x8000000a,0x80000000
  665 .long   0x80008081,0x80000000
  666 .long   0x00008080,0x80000000
  667 .long   0x80000001,0x00000000
  668 .long   0x80008008,0x80000000
  669 .size   iotas,.-iotas
  670 .byte   75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,80,80,67,54,52,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
  671 .align  2

Cache object: 3fe868bbe31565a1800acc028291f6ad


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