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/vpaes-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 vpaes-ppc.pl. */
    3 .machine        "any"
    4 
    5 .abiversion     2
    6 .text
    7 
    8 .align  7
    9 _vpaes_consts:
   10 .Lk_mc_forward:
   11 .byte   0x0e,0x0d,0x0c,0x0f,0x0a,0x09,0x08,0x0b,0x06,0x05,0x04,0x07,0x02,0x01,0x00,0x03
   12 .byte   0x0a,0x09,0x08,0x0b,0x06,0x05,0x04,0x07,0x02,0x01,0x00,0x03,0x0e,0x0d,0x0c,0x0f
   13 .byte   0x06,0x05,0x04,0x07,0x02,0x01,0x00,0x03,0x0e,0x0d,0x0c,0x0f,0x0a,0x09,0x08,0x0b
   14 .byte   0x02,0x01,0x00,0x03,0x0e,0x0d,0x0c,0x0f,0x0a,0x09,0x08,0x0b,0x06,0x05,0x04,0x07
   15 .Lk_mc_backward:
   16 .byte   0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x0a,0x09,0x04,0x07,0x06,0x05,0x00,0x03,0x02,0x01
   17 .byte   0x00,0x03,0x02,0x01,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x0a,0x09,0x04,0x07,0x06,0x05
   18 .byte   0x04,0x07,0x06,0x05,0x00,0x03,0x02,0x01,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x0a,0x09
   19 .byte   0x08,0x0b,0x0a,0x09,0x04,0x07,0x06,0x05,0x00,0x03,0x02,0x01,0x0c,0x0f,0x0e,0x0d
   20 .Lk_sr:
   21 .byte   0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00
   22 .byte   0x0f,0x0a,0x05,0x00,0x0b,0x06,0x01,0x0c,0x07,0x02,0x0d,0x08,0x03,0x0e,0x09,0x04
   23 .byte   0x0f,0x06,0x0d,0x04,0x0b,0x02,0x09,0x00,0x07,0x0e,0x05,0x0c,0x03,0x0a,0x01,0x08
   24 .byte   0x0f,0x02,0x05,0x08,0x0b,0x0e,0x01,0x04,0x07,0x0a,0x0d,0x00,0x03,0x06,0x09,0x0c
   25 
   26 
   27 
   28 
   29 .Lk_inv:
   30 .byte   0x04,0x07,0x03,0x09,0x0a,0x0b,0x0c,0x02,0x0e,0x05,0x06,0x0f,0x0d,0x08,0x01,0xf0
   31 .byte   0x03,0x0d,0x0e,0x0c,0x02,0x05,0x08,0x09,0x01,0x04,0x0a,0x06,0x0f,0x0b,0x07,0xf0
   32 .Lk_ipt:
   33 .byte   0xca,0xba,0xe0,0x90,0x52,0x22,0x78,0x08,0xc2,0xb2,0xe8,0x98,0x5a,0x2a,0x70,0x00
   34 .byte   0xcd,0x80,0xb1,0xfc,0xb0,0xfd,0xcc,0x81,0x4c,0x01,0x30,0x7d,0x31,0x7c,0x4d,0x00
   35 .Lk_sbo:
   36 .byte   0x15,0xaa,0xbf,0x7a,0xc5,0x02,0xa8,0x78,0xd0,0xd2,0x6d,0x17,0x6f,0xbd,0xc7,0x00
   37 .byte   0x8e,0x1e,0x90,0xd1,0x41,0x2b,0x35,0xfa,0xcf,0xe4,0x74,0xa5,0x5f,0xbb,0x6a,0x00
   38 .Lk_sb1:
   39 .byte   0x3b,0xf7,0xcc,0xc1,0x0d,0x2e,0xd9,0xef,0x36,0x18,0xd4,0x15,0xfa,0xe2,0x23,0x00
   40 .byte   0xa5,0xdf,0x7a,0x6e,0x14,0x2a,0xf5,0x44,0xb1,0x9b,0xe1,0x8f,0xcb,0x50,0x3e,0x00
   41 .Lk_sb2:
   42 .byte   0xc2,0xa1,0x63,0xc8,0xab,0x82,0x23,0x4a,0x69,0xeb,0x88,0x40,0x0a,0xe1,0x29,0x00
   43 .byte   0x5e,0xb7,0xe9,0x55,0xbc,0x98,0x2f,0xcd,0xe2,0x7a,0x93,0xc6,0x0b,0x71,0x24,0x00
   44 
   45 
   46 
   47 
   48 .Lk_dipt:
   49 .byte   0x15,0x4a,0x41,0x1e,0x11,0x4e,0x45,0x1a,0x0f,0x50,0x5b,0x04,0x0b,0x54,0x5f,0x00
   50 .byte   0x12,0x77,0x17,0x72,0xf4,0x91,0xf1,0x94,0x86,0xe3,0x83,0xe6,0x60,0x05,0x65,0x00
   51 .Lk_dsbo:
   52 .byte   0xc7,0xaa,0x6d,0xb9,0xd4,0x94,0x3e,0x2d,0x13,0x87,0xea,0x53,0x7e,0xf9,0x40,0x00
   53 .byte   0xca,0x4b,0x81,0x59,0xd8,0xc5,0x8e,0x9c,0x12,0xd7,0x56,0x0f,0x93,0x44,0x1d,0x00
   54 .Lk_dsb9:
   55 .byte   0xca,0xd5,0x1f,0x50,0x4f,0x99,0x4c,0xc9,0x85,0x1c,0x03,0x53,0x9a,0x86,0xd6,0x00
   56 .byte   0x72,0x5e,0x2c,0x9e,0xb2,0xfb,0xa5,0x65,0xc0,0x3b,0x17,0x89,0xec,0xd7,0x49,0x00
   57 .Lk_dsbd:
   58 .byte   0xf5,0x6e,0x9b,0x13,0x88,0x2a,0x44,0x39,0x7d,0x57,0xcc,0xdf,0xe6,0xb1,0xa2,0x00
   59 .byte   0x29,0x31,0x18,0x0d,0x15,0xde,0xef,0xd3,0x3c,0xe2,0xfa,0xf7,0x24,0xc6,0xcb,0x00
   60 .Lk_dsbb:
   61 .byte   0x60,0x26,0x46,0xf6,0xb0,0xf2,0xd4,0x04,0xd0,0x22,0x64,0x92,0x96,0xb4,0x42,0x00
   62 .byte   0xf3,0xff,0x0c,0x3e,0x32,0x55,0xaa,0x6b,0xc1,0x94,0x98,0xa6,0xcd,0x59,0x67,0x00
   63 .Lk_dsbe:
   64 .byte   0x22,0x42,0x60,0x04,0x64,0xb4,0xf6,0xb0,0x46,0xf2,0x92,0x96,0x26,0xd4,0xd0,0x00
   65 .byte   0x94,0x67,0xf3,0x6b,0x98,0x59,0x3e,0x32,0x0c,0x55,0xa6,0xcd,0xff,0xaa,0xc1,0x00
   66 
   67 
   68 
   69 
   70 .Lk_dksd:
   71 .byte   0x07,0x40,0xe3,0xa4,0x5a,0x1d,0xbe,0xf9,0xfe,0xb9,0x1a,0x5d,0xa3,0xe4,0x47,0x00
   72 .byte   0x5f,0xdc,0x69,0xea,0xab,0x28,0x9d,0x1e,0x41,0xc2,0x77,0xf4,0xb5,0x36,0x83,0x00
   73 .Lk_dksb:
   74 .byte   0x03,0xd6,0x53,0x86,0x1c,0xc9,0x4c,0x99,0x9a,0x4f,0xca,0x1f,0x85,0x50,0xd5,0x00
   75 .byte   0xd9,0x93,0x25,0x6f,0x7e,0x34,0x82,0xc8,0x11,0x5b,0xed,0xa7,0xb6,0xfc,0x4a,0x00
   76 .Lk_dkse:
   77 .byte   0x53,0x85,0x9a,0x4c,0x99,0x4f,0x50,0x86,0xd5,0x03,0x1c,0xca,0x1f,0xc9,0xd6,0x00
   78 .byte   0xcd,0x5e,0xf9,0x6a,0x20,0xb3,0x14,0x87,0xa2,0x31,0x96,0x05,0x4f,0xdc,0x7b,0xe8
   79 .Lk_dks9:
   80 .byte   0x4a,0xed,0x93,0x34,0x82,0x25,0x5b,0xfc,0xb6,0x11,0x6f,0xc8,0x7e,0xd9,0xa7,0x00
   81 .byte   0x8b,0xb8,0x9f,0xac,0xe9,0xda,0xfd,0xce,0x45,0x76,0x51,0x62,0x27,0x14,0x33,0x00
   82 
   83 .Lk_rcon:
   84 .byte   0xb6,0xee,0x9d,0xaf,0xb9,0x91,0x83,0x1f,0x81,0x7d,0x7c,0x4d,0x08,0x98,0x2a,0x70
   85 .Lk_s63:
   86 .byte   0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b
   87 
   88 .Lk_opt:
   89 .byte   0xf7,0x97,0x41,0x21,0xde,0xbe,0x68,0x08,0xff,0x9f,0x49,0x29,0xd6,0xb6,0x60,0x00
   90 .byte   0xe1,0x0d,0x5d,0xb1,0xb0,0x5c,0x0c,0xe0,0x01,0xed,0xbd,0x51,0x50,0xbc,0xec,0x00
   91 .Lk_deskew:
   92 .byte   0x1d,0xfe,0xb9,0x5a,0x5d,0xbe,0xf9,0x1a,0x07,0xe4,0xa3,0x40,0x47,0xa4,0xe3,0x00
   93 .byte   0x28,0x41,0xc2,0xab,0xf4,0x9d,0x1e,0x77,0x5f,0x36,0xb5,0xdc,0x83,0xea,0x69,0x00
   94 .align  5
   95 .Lconsts:
   96         mflr    0
   97         bcl     20,31,$+4
   98         mflr    12
   99         addi    12,12,-0x308
  100         mtlr    0
  101         blr     
  102 .long   0
  103 .byte   0,12,0x14,0,0,0,0,0
  104 .byte   86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,108,116,105,86,101,99,44,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
  105 .align  2
  106 .align  6
  107 
  108 
  109 
  110 
  111 
  112 
  113 .align  4
  114 _vpaes_encrypt_preheat:
  115         mflr    8
  116         bl      .Lconsts
  117         mtlr    8
  118         li      11, 0xc0
  119         li      10, 0xd0
  120         li      9,  0xe0
  121         li      8,  0xf0
  122         vxor    7, 7, 7
  123         vspltisb        8,4
  124         vspltisb        9,0x0f
  125         lvx     10, 12, 11
  126         li      11, 0x100
  127         lvx     11, 12, 10
  128         li      10, 0x110
  129         lvx     12, 12, 9
  130         li      9,  0x120
  131         lvx     13, 12, 8
  132         li      8,  0x130
  133         lvx     14, 12, 11
  134         li      11, 0x140
  135         lvx     15, 12, 10
  136         li      10, 0x150
  137         lvx     16, 12, 9
  138         lvx     17, 12, 8
  139         lvx     18, 12, 11
  140         lvx     19, 12, 10
  141         blr     
  142 .long   0
  143 .byte   0,12,0x14,0,0,0,0,0
  144 
  145 
  146 
  147 
  148 
  149 
  150 
  151 
  152 
  153 
  154 
  155 
  156 
  157 
  158 
  159 .align  5
  160 _vpaes_encrypt_core:
  161         lwz     8, 240(5)
  162         li      9, 16
  163         lvx     5, 0, 5
  164         li      11, 0x10
  165         lvx     6, 9, 5
  166         addi    9, 9, 16
  167         vperm   5, 6, 5, 31
  168         addi    10, 11, 0x40
  169         vsrb    1, 0, 8
  170         vperm   0, 12, 12, 0
  171         vperm   1, 13, 13, 1
  172         vxor    0, 0, 5
  173         vxor    0, 0, 1
  174         mtctr   8
  175         b       .Lenc_entry
  176 
  177 .align  4
  178 .Lenc_loop:
  179 
  180         vperm   4, 17, 7, 2
  181         lvx     1, 12, 11
  182         addi    11, 11, 16
  183         vperm   0, 16, 7, 3
  184         vxor    4, 4, 5
  185         andi.   11, 11, 0x30
  186         vperm   5, 19, 7, 2
  187         vxor    0, 0, 4
  188         vperm   2, 18, 7, 3
  189         lvx     4, 12, 10
  190         addi    10, 11, 0x40
  191         vperm   3, 0, 7, 1
  192         vxor    2, 2, 5
  193         vperm   0, 0, 7, 4
  194         vxor    3, 3, 2
  195         vperm   4, 3, 7, 1
  196         vxor    0, 0, 3
  197         vxor    0, 0, 4
  198 
  199 .Lenc_entry:
  200 
  201         vsrb    1, 0, 8
  202         vperm   5, 11, 11, 0
  203         vxor    0, 0, 1
  204         vperm   3, 10, 10, 1
  205         vperm   4, 10, 10, 0
  206         vand    0, 0, 9
  207         vxor    3, 3, 5
  208         vxor    4, 4, 5
  209         vperm   2, 10, 7, 3
  210         vor     5,6,6
  211         lvx     6, 9, 5
  212         vperm   3, 10, 7, 4
  213         addi    9, 9, 16
  214         vxor    2, 2, 0
  215         vperm   5, 6, 5, 31
  216         vxor    3, 3, 1
  217         bdnz    .Lenc_loop
  218 
  219 
  220         addi    10, 11, 0x80
  221 
  222 
  223         vperm   4, 14, 7, 2
  224         lvx     1, 12, 10
  225         vperm   0, 15, 7, 3
  226         vxor    4, 4, 5
  227         vxor    0, 0, 4
  228         vperm   0, 0, 7, 1
  229         blr     
  230 .long   0
  231 .byte   0,12,0x14,0,0,0,0,0
  232 
  233 .globl  vpaes_encrypt
  234 .type   vpaes_encrypt,@function
  235 .align  5
  236 vpaes_encrypt:
  237 .localentry     vpaes_encrypt,0
  238 
  239         stdu    1,-256(1)
  240         li      10,63
  241         li      11,79
  242         mflr    6
  243         li      7,-1
  244         stvx    20,10,1
  245         addi    10,10,32
  246         stvx    21,11,1
  247         addi    11,11,32
  248         stvx    22,10,1
  249         addi    10,10,32
  250         stvx    23,11,1
  251         addi    11,11,32
  252         stvx    24,10,1
  253         addi    10,10,32
  254         stvx    25,11,1
  255         addi    11,11,32
  256         stvx    26,10,1
  257         addi    10,10,32
  258         stvx    27,11,1
  259         addi    11,11,32
  260         stvx    28,10,1
  261         addi    10,10,32
  262         stvx    29,11,1
  263         addi    11,11,32
  264         stvx    30,10,1
  265         stvx    31,11,1
  266         stw     7,252(1)
  267         li      0, -1
  268         std     6,272(1)
  269         or      0,0,0
  270 
  271         bl      _vpaes_encrypt_preheat
  272 
  273         lvsr    27, 0, 3
  274         lvx     0, 0, 3
  275         addi    3, 3, 15
  276         lvsl    29, 0, 4
  277         lvsr    31, 0, 5
  278         lvx     26, 0, 3
  279         vperm   0, 26, 0, 27
  280 
  281         bl      _vpaes_encrypt_core
  282 
  283         andi.   8, 4, 15
  284         li      9, 16
  285         beq     .Lenc_out_aligned
  286 
  287         vperm   0, 0, 0, 29
  288         mtctr   9
  289 .Lenc_out_unaligned:
  290         stvebx  0, 0, 4
  291         addi    4, 4, 1
  292         bdnz    .Lenc_out_unaligned
  293         b       .Lenc_done
  294 
  295 .align  4
  296 .Lenc_out_aligned:
  297         stvx    0, 0, 4
  298 .Lenc_done:
  299 
  300         li      10,63
  301         li      11,79
  302         mtlr    6
  303         or      7,7,7
  304         lvx     20,10,1
  305         addi    10,10,32
  306         lvx     21,11,1
  307         addi    11,11,32
  308         lvx     22,10,1
  309         addi    10,10,32
  310         lvx     23,11,1
  311         addi    11,11,32
  312         lvx     24,10,1
  313         addi    10,10,32
  314         lvx     25,11,1
  315         addi    11,11,32
  316         lvx     26,10,1
  317         addi    10,10,32
  318         lvx     27,11,1
  319         addi    11,11,32
  320         lvx     28,10,1
  321         addi    10,10,32
  322         lvx     29,11,1
  323         addi    11,11,32
  324         lvx     30,10,1
  325         lvx     31,11,1
  326         addi    1,1,256
  327         blr     
  328 .long   0
  329 .byte   0,12,0x04,1,0x80,0,3,0
  330 .long   0
  331 .size   vpaes_encrypt,.-vpaes_encrypt
  332 
  333 .align  4
  334 _vpaes_decrypt_preheat:
  335         mflr    8
  336         bl      .Lconsts
  337         mtlr    8
  338         li      11, 0xc0
  339         li      10, 0xd0
  340         li      9,  0x160
  341         li      8,  0x170
  342         vxor    7, 7, 7
  343         vspltisb        8,4
  344         vspltisb        9,0x0f
  345         lvx     10, 12, 11
  346         li      11, 0x180
  347         lvx     11, 12, 10
  348         li      10, 0x190
  349         lvx     12, 12, 9
  350         li      9,  0x1a0
  351         lvx     13, 12, 8
  352         li      8,  0x1b0
  353         lvx     14, 12, 11
  354         li      11, 0x1c0
  355         lvx     15, 12, 10
  356         li      10, 0x1d0
  357         lvx     16, 12, 9
  358         li      9,  0x1e0
  359         lvx     17, 12, 8
  360         li      8,  0x1f0
  361         lvx     18, 12, 11
  362         li      11, 0x200
  363         lvx     19, 12, 10
  364         li      10, 0x210
  365         lvx     20, 12, 9
  366         lvx     21, 12, 8
  367         lvx     22, 12, 11
  368         lvx     23, 12, 10
  369         blr     
  370 .long   0
  371 .byte   0,12,0x14,0,0,0,0,0
  372 
  373 
  374 
  375 
  376 
  377 
  378 .align  4
  379 _vpaes_decrypt_core:
  380         lwz     8, 240(5)
  381         li      9, 16
  382         lvx     5, 0, 5
  383         li      11, 0x30
  384         lvx     6, 9, 5
  385         addi    9, 9, 16
  386         vperm   5, 6, 5, 31
  387         vsrb    1, 0, 8
  388         vperm   0, 12, 12, 0
  389         vperm   1, 13, 13, 1
  390         vxor    0, 0, 5
  391         vxor    0, 0, 1
  392         mtctr   8
  393         b       .Ldec_entry
  394 
  395 .align  4
  396 .Ldec_loop:
  397 
  398 
  399 
  400         lvx     0, 12, 11
  401 
  402 
  403         vperm   4, 16, 7, 2
  404         subi    11, 11, 16
  405         vperm   1, 17, 7, 3
  406         andi.   11, 11, 0x30
  407         vxor    5, 5, 4
  408 
  409         vxor    5, 5, 1
  410 
  411 
  412         vperm   4, 18, 7, 2
  413         vperm   5, 5, 7, 0
  414         vperm   1, 19, 7, 3
  415         vxor    5, 5, 4
  416 
  417         vxor    5, 5, 1
  418 
  419 
  420         vperm   4, 20, 7, 2
  421         vperm   5, 5, 7, 0
  422         vperm   1, 21, 7, 3
  423         vxor    5, 5, 4
  424 
  425         vxor    5, 5, 1
  426 
  427 
  428         vperm   4, 22, 7, 2
  429         vperm   5, 5, 7, 0
  430         vperm   1, 23, 7, 3
  431         vxor    0, 5, 4
  432         vxor    0, 0, 1
  433 
  434 .Ldec_entry:
  435 
  436         vsrb    1, 0, 8
  437         vperm   2, 11, 11, 0
  438         vxor    0, 0, 1
  439         vperm   3, 10, 10, 1
  440         vperm   4, 10, 10, 0
  441         vand    0, 0, 9
  442         vxor    3, 3, 2
  443         vxor    4, 4, 2
  444         vperm   2, 10, 7, 3
  445         vor     5,6,6
  446         lvx     6, 9, 5
  447         vperm   3, 10, 7, 4
  448         addi    9, 9, 16
  449         vxor    2, 2, 0
  450         vperm   5, 6, 5, 31
  451         vxor    3, 3, 1
  452         bdnz    .Ldec_loop
  453 
  454 
  455         addi    10, 11, 0x80
  456 
  457         vperm   4, 14, 7, 2
  458 
  459         lvx     2, 12, 10
  460         vperm   1, 15, 7, 3
  461         vxor    4, 4, 5
  462         vxor    0, 1, 4
  463         vperm   0, 0, 7, 2
  464         blr     
  465 .long   0
  466 .byte   0,12,0x14,0,0,0,0,0
  467 
  468 .globl  vpaes_decrypt
  469 .type   vpaes_decrypt,@function
  470 .align  5
  471 vpaes_decrypt:
  472 .localentry     vpaes_decrypt,0
  473 
  474         stdu    1,-256(1)
  475         li      10,63
  476         li      11,79
  477         mflr    6
  478         li      7,-1
  479         stvx    20,10,1
  480         addi    10,10,32
  481         stvx    21,11,1
  482         addi    11,11,32
  483         stvx    22,10,1
  484         addi    10,10,32
  485         stvx    23,11,1
  486         addi    11,11,32
  487         stvx    24,10,1
  488         addi    10,10,32
  489         stvx    25,11,1
  490         addi    11,11,32
  491         stvx    26,10,1
  492         addi    10,10,32
  493         stvx    27,11,1
  494         addi    11,11,32
  495         stvx    28,10,1
  496         addi    10,10,32
  497         stvx    29,11,1
  498         addi    11,11,32
  499         stvx    30,10,1
  500         stvx    31,11,1
  501         stw     7,252(1)
  502         li      0, -1
  503         std     6,272(1)
  504         or      0,0,0
  505 
  506         bl      _vpaes_decrypt_preheat
  507 
  508         lvsr    27, 0, 3
  509         lvx     0, 0, 3
  510         addi    3, 3, 15
  511         lvsl    29, 0, 4
  512         lvsr    31, 0, 5
  513         lvx     26, 0, 3
  514         vperm   0, 26, 0, 27
  515 
  516         bl      _vpaes_decrypt_core
  517 
  518         andi.   8, 4, 15
  519         li      9, 16
  520         beq     .Ldec_out_aligned
  521 
  522         vperm   0, 0, 0, 29
  523         mtctr   9
  524 .Ldec_out_unaligned:
  525         stvebx  0, 0, 4
  526         addi    4, 4, 1
  527         bdnz    .Ldec_out_unaligned
  528         b       .Ldec_done
  529 
  530 .align  4
  531 .Ldec_out_aligned:
  532         stvx    0, 0, 4
  533 .Ldec_done:
  534 
  535         li      10,63
  536         li      11,79
  537         mtlr    6
  538         or      7,7,7
  539         lvx     20,10,1
  540         addi    10,10,32
  541         lvx     21,11,1
  542         addi    11,11,32
  543         lvx     22,10,1
  544         addi    10,10,32
  545         lvx     23,11,1
  546         addi    11,11,32
  547         lvx     24,10,1
  548         addi    10,10,32
  549         lvx     25,11,1
  550         addi    11,11,32
  551         lvx     26,10,1
  552         addi    10,10,32
  553         lvx     27,11,1
  554         addi    11,11,32
  555         lvx     28,10,1
  556         addi    10,10,32
  557         lvx     29,11,1
  558         addi    11,11,32
  559         lvx     30,10,1
  560         lvx     31,11,1
  561         addi    1,1,256
  562         blr     
  563 .long   0
  564 .byte   0,12,0x04,1,0x80,0,3,0
  565 .long   0
  566 .size   vpaes_decrypt,.-vpaes_decrypt
  567 
  568 .globl  vpaes_cbc_encrypt
  569 .type   vpaes_cbc_encrypt,@function
  570 .align  5
  571 vpaes_cbc_encrypt:
  572 .localentry     vpaes_cbc_encrypt,0
  573 
  574         cmpldi  5,16
  575         .long   0x4dc00020
  576 
  577         stdu    1,-272(1)
  578         mflr    0
  579         li      10,63
  580         li      11,79
  581         li      12,-1
  582         stvx    20,10,1
  583         addi    10,10,32
  584         stvx    21,11,1
  585         addi    11,11,32
  586         stvx    22,10,1
  587         addi    10,10,32
  588         stvx    23,11,1
  589         addi    11,11,32
  590         stvx    24,10,1
  591         addi    10,10,32
  592         stvx    25,11,1
  593         addi    11,11,32
  594         stvx    26,10,1
  595         addi    10,10,32
  596         stvx    27,11,1
  597         addi    11,11,32
  598         stvx    28,10,1
  599         addi    10,10,32
  600         stvx    29,11,1
  601         addi    11,11,32
  602         stvx    30,10,1
  603         stvx    31,11,1
  604         stw     12,252(1)
  605         std     30,256(1)
  606         std     31,264(1)
  607         li      9, -16
  608         std     0, 288(1)
  609 
  610         and     30, 5, 9
  611         andi.   9, 4, 15
  612         mr      5, 6
  613         mr      31, 7
  614         li      6, -1
  615         mcrf    1, 0
  616         mr      7, 12
  617         or      6,6,6
  618 
  619         lvx     24, 0, 31
  620         li      9, 15
  621         lvsr    27, 0, 31
  622         lvx     25, 9, 31
  623         vperm   24, 25, 24, 27
  624 
  625         cmpwi   8, 0
  626         neg     8, 3
  627         vxor    7, 7, 7
  628         lvsr    31, 0, 5
  629         lvsl    29, 0, 4
  630         lvsl    27, 0, 8
  631         vnor    30, 7, 7
  632         lvx     26, 0, 3
  633         vperm   30, 30, 7, 29
  634         addi    3, 3, 15
  635 
  636         beq     .Lcbc_decrypt
  637 
  638         bl      _vpaes_encrypt_preheat
  639         li      0, 16
  640 
  641         beq     1, .Lcbc_enc_loop
  642 
  643         vor     0,26,26
  644         lvx     26, 0, 3
  645         addi    3, 3, 16
  646         vperm   0, 26, 0, 27
  647         vxor    0, 0, 24
  648 
  649         bl      _vpaes_encrypt_core
  650 
  651         andi.   8, 4, 15
  652         vor     24,0,0
  653         sub     9, 4, 8
  654         vperm   28, 0, 0, 29
  655 
  656 .Lcbc_enc_head:
  657         stvebx  28, 8, 9
  658         cmpwi   8, 15
  659         addi    8, 8, 1
  660         bne     .Lcbc_enc_head
  661 
  662         sub.    30, 30, 0
  663         addi    4, 4, 16
  664         beq     .Lcbc_unaligned_done
  665 
  666 .Lcbc_enc_loop:
  667         vor     0,26,26
  668         lvx     26, 0, 3
  669         addi    3, 3, 16
  670         vperm   0, 26, 0, 27
  671         vxor    0, 0, 24
  672 
  673         bl      _vpaes_encrypt_core
  674 
  675         vor     24,0,0
  676         sub.    30, 30, 0
  677         vperm   0, 0, 0, 29
  678         vsel    1, 28, 0, 30
  679         vor     28,0,0
  680         stvx    1, 0, 4
  681         addi    4, 4, 16
  682         bne     .Lcbc_enc_loop
  683 
  684         b       .Lcbc_done
  685 
  686 .align  5
  687 .Lcbc_decrypt:
  688         bl      _vpaes_decrypt_preheat
  689         li      0, 16
  690 
  691         beq     1, .Lcbc_dec_loop
  692 
  693         vor     0,26,26
  694         lvx     26, 0, 3
  695         addi    3, 3, 16
  696         vperm   0, 26, 0, 27
  697         vor     25,0,0
  698 
  699         bl      _vpaes_decrypt_core
  700 
  701         andi.   8, 4, 15
  702         vxor    0, 0, 24
  703         vor     24,25,25
  704         sub     9, 4, 8
  705         vperm   28, 0, 0, 29
  706 
  707 .Lcbc_dec_head:
  708         stvebx  28, 8, 9
  709         cmpwi   8, 15
  710         addi    8, 8, 1
  711         bne     .Lcbc_dec_head
  712 
  713         sub.    30, 30, 0
  714         addi    4, 4, 16
  715         beq     .Lcbc_unaligned_done
  716 
  717 .Lcbc_dec_loop:
  718         vor     0,26,26
  719         lvx     26, 0, 3
  720         addi    3, 3, 16
  721         vperm   0, 26, 0, 27
  722         vor     25,0,0
  723 
  724         bl      _vpaes_decrypt_core
  725 
  726         vxor    0, 0, 24
  727         vor     24,25,25
  728         sub.    30, 30, 0
  729         vperm   0, 0, 0, 29
  730         vsel    1, 28, 0, 30
  731         vor     28,0,0
  732         stvx    1, 0, 4
  733         addi    4, 4, 16
  734         bne     .Lcbc_dec_loop
  735 
  736 .Lcbc_done:
  737         beq     1, .Lcbc_write_iv
  738 
  739 .Lcbc_unaligned_done:
  740         andi.   8, 4, 15
  741         sub     4, 4, 8
  742         li      9, 0
  743 .Lcbc_tail:
  744         stvebx  28, 9, 4
  745         addi    9, 9, 1
  746         cmpw    9, 8
  747         bne     .Lcbc_tail
  748 
  749 .Lcbc_write_iv:
  750         neg     8, 31
  751         li      10, 4
  752         lvsr    29, 0, 8
  753         li      11, 8
  754         li      12, 12
  755         vperm   24, 24, 24, 29
  756         stvewx  24, 0, 31
  757         stvewx  24, 10, 31
  758         stvewx  24, 11, 31
  759         stvewx  24, 12, 31
  760 
  761         or      7,7,7
  762         li      10,63
  763         li      11,79
  764         lvx     20,10,1
  765         addi    10,10,32
  766         lvx     21,11,1
  767         addi    11,11,32
  768         lvx     22,10,1
  769         addi    10,10,32
  770         lvx     23,11,1
  771         addi    11,11,32
  772         lvx     24,10,1
  773         addi    10,10,32
  774         lvx     25,11,1
  775         addi    11,11,32
  776         lvx     26,10,1
  777         addi    10,10,32
  778         lvx     27,11,1
  779         addi    11,11,32
  780         lvx     28,10,1
  781         addi    10,10,32
  782         lvx     29,11,1
  783         addi    11,11,32
  784         lvx     30,10,1
  785         lvx     31,11,1
  786 .Lcbc_abort:
  787         ld      0, 288(1)
  788         ld      30,256(1)
  789         ld      31,264(1)
  790         mtlr    0
  791         addi    1,1,272
  792         blr     
  793 .long   0
  794 .byte   0,12,0x04,1,0x80,2,6,0
  795 .long   0
  796 .size   vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
  797 
  798 
  799 
  800 
  801 
  802 .align  4
  803 _vpaes_key_preheat:
  804         mflr    8
  805         bl      .Lconsts
  806         mtlr    8
  807         li      11, 0xc0
  808         li      10, 0xd0
  809         li      9,  0xe0
  810         li      8,  0xf0
  811 
  812         vspltisb        8,4
  813         vxor    9,9,9
  814         lvx     10, 12, 11
  815         li      11, 0x120
  816         lvx     11, 12, 10
  817         li      10, 0x130
  818         lvx     12, 12, 9
  819         li      9, 0x220
  820         lvx     13, 12, 8
  821         li      8, 0x230
  822 
  823         lvx     14, 12, 11
  824         li      11, 0x240
  825         lvx     15, 12, 10
  826         li      10, 0x250
  827 
  828         lvx     16, 12, 9
  829         li      9, 0x260
  830         lvx     17, 12, 8
  831         li      8, 0x270
  832         lvx     18, 12, 11
  833         li      11, 0x280
  834         lvx     19, 12, 10
  835         li      10, 0x290
  836         lvx     20, 12, 9
  837         li      9, 0x2a0
  838         lvx     21, 12, 8
  839         li      8, 0x2b0
  840         lvx     22, 12, 11
  841         lvx     23, 12, 10
  842 
  843         lvx     24, 12, 9
  844         lvx     25, 0, 12
  845         lvx     26, 12, 8
  846         blr     
  847 .long   0
  848 .byte   0,12,0x14,0,0,0,0,0
  849 
  850 .align  4
  851 _vpaes_schedule_core:
  852         mflr    7
  853 
  854         bl      _vpaes_key_preheat
  855 
  856 
  857         neg     8, 3
  858         lvx     0, 0, 3
  859         addi    3, 3, 15
  860         lvsl    27, 0, 8
  861         lvx     6, 0, 3
  862         addi    3, 3, 8
  863         vperm   0, 6, 0, 27
  864 
  865 
  866         vor     3,0,0
  867         bl      _vpaes_schedule_transform
  868         vor     7,0,0
  869 
  870         bne     1, .Lschedule_am_decrypting
  871 
  872 
  873         li      8, 0x30
  874         li      9, 4
  875         li      10, 8
  876         li      11, 12
  877 
  878         lvsl    29, 0, 5
  879         vnor    30, 9, 9
  880         vperm   30, 30, 9, 29
  881 
  882 
  883         vperm   28, 0, 0, 29
  884         stvewx  28, 0, 5
  885         stvewx  28, 9, 5
  886         stvewx  28, 10, 5
  887         addi    10, 12, 0x80
  888         stvewx  28, 11, 5
  889         b       .Lschedule_go
  890 
  891 .Lschedule_am_decrypting:
  892         srwi    8, 4, 1
  893         andi.   8, 8, 32
  894         xori    8, 8, 32
  895         addi    10, 12, 0x80
  896 
  897         lvx     1, 8, 10
  898         li      9, 4
  899         li      10, 8
  900         li      11, 12
  901         vperm   4, 3, 3, 1
  902 
  903         neg     0, 5
  904         lvsr    29, 0, 0
  905         vnor    30, 9, 9
  906         vperm   30, 9, 30, 29
  907 
  908 
  909         vperm   28, 4, 4, 29
  910         stvewx  28, 0, 5
  911         stvewx  28, 9, 5
  912         stvewx  28, 10, 5
  913         addi    10, 12, 0x80
  914         stvewx  28, 11, 5
  915         addi    5, 5, 15
  916         xori    8, 8, 0x30
  917 
  918 .Lschedule_go:
  919         cmplwi  4, 192
  920         bgt     .Lschedule_256
  921         beq     .Lschedule_192
  922 
  923 
  924 
  925 
  926 
  927 
  928 
  929 
  930 
  931 
  932 .Lschedule_128:
  933         li      0, 10
  934         mtctr   0
  935 
  936 .Loop_schedule_128:
  937         bl      _vpaes_schedule_round
  938         bdz     .Lschedule_mangle_last
  939         bl      _vpaes_schedule_mangle
  940         b       .Loop_schedule_128
  941 
  942 
  943 
  944 
  945 
  946 
  947 
  948 
  949 
  950 
  951 
  952 
  953 
  954 
  955 
  956 
  957 .align  4
  958 .Lschedule_192:
  959         li      0, 4
  960         lvx     0, 0, 3
  961         vperm   0, 0, 6, 27
  962         vsldoi  0, 0, 3, 16-8
  963         bl      _vpaes_schedule_transform
  964         vsldoi  6, 9, 0, 16-8
  965         vsldoi  6, 6, 9, 16-8
  966         mtctr   0
  967 
  968 .Loop_schedule_192:
  969         bl      _vpaes_schedule_round
  970         vsldoi  0, 0, 6, 16-8
  971         bl      _vpaes_schedule_mangle
  972         bl      _vpaes_schedule_192_smear
  973         bl      _vpaes_schedule_mangle
  974         bl      _vpaes_schedule_round
  975         bdz     .Lschedule_mangle_last
  976         bl      _vpaes_schedule_mangle
  977         bl      _vpaes_schedule_192_smear
  978         b       .Loop_schedule_192
  979 
  980 
  981 
  982 
  983 
  984 
  985 
  986 
  987 
  988 
  989 
  990 .align  4
  991 .Lschedule_256:
  992         li      0, 7
  993         addi    3, 3, 8
  994         lvx     0, 0, 3
  995         vperm   0, 0, 6, 27
  996         bl      _vpaes_schedule_transform
  997         mtctr   0
  998 
  999 .Loop_schedule_256:
 1000         bl      _vpaes_schedule_mangle
 1001         vor     6,0,0
 1002 
 1003 
 1004         bl      _vpaes_schedule_round
 1005         bdz     .Lschedule_mangle_last
 1006         bl      _vpaes_schedule_mangle
 1007 
 1008 
 1009         vspltw  0, 0, 3-3
 1010         vor     5,7,7
 1011         vor     7,6,6
 1012         bl      _vpaes_schedule_low_round
 1013         vor     7,5,5
 1014 
 1015         b       .Loop_schedule_256
 1016 
 1017 
 1018 
 1019 
 1020 
 1021 
 1022 
 1023 
 1024 
 1025 
 1026 .align  4
 1027 .Lschedule_mangle_last:
 1028 
 1029         li      11, 0x2e0
 1030         li      9,  0x2f0
 1031         bne     1, .Lschedule_mangle_last_dec
 1032 
 1033 
 1034         lvx     1, 8, 10
 1035         li      11, 0x2c0
 1036         li      9,  0x2d0
 1037         vperm   0, 0, 0, 1
 1038 
 1039         lvx     12, 11, 12
 1040         lvx     13, 9, 12
 1041         addi    5, 5, 16
 1042         vxor    0, 0, 26
 1043         bl      _vpaes_schedule_transform
 1044 
 1045 
 1046         vperm   0, 0, 0, 29
 1047         li      10, 4
 1048         vsel    2, 28, 0, 30
 1049         li      11, 8
 1050         stvx    2, 0, 5
 1051         li      12, 12
 1052         stvewx  0, 0, 5
 1053         stvewx  0, 10, 5
 1054         stvewx  0, 11, 5
 1055         stvewx  0, 12, 5
 1056         b       .Lschedule_mangle_done
 1057 
 1058 .align  4
 1059 .Lschedule_mangle_last_dec:
 1060         lvx     12, 11, 12
 1061         lvx     13, 9,  12
 1062         addi    5, 5, -16
 1063         vxor    0, 0, 26
 1064         bl      _vpaes_schedule_transform
 1065 
 1066 
 1067         addi    9, 5, -15
 1068         vperm   0, 0, 0, 29
 1069         li      10, 4
 1070         vsel    2, 28, 0, 30
 1071         li      11, 8
 1072         stvx    2, 0, 5
 1073         li      12, 12
 1074         stvewx  0, 0, 9
 1075         stvewx  0, 10, 9
 1076         stvewx  0, 11, 9
 1077         stvewx  0, 12, 9
 1078 
 1079 
 1080 .Lschedule_mangle_done:
 1081         mtlr    7
 1082 
 1083         vxor    0, 0, 0
 1084         vxor    1, 1, 1
 1085         vxor    2, 2, 2
 1086         vxor    3, 3, 3
 1087         vxor    4, 4, 4
 1088         vxor    5, 5, 5
 1089         vxor    6, 6, 6
 1090         vxor    7, 7, 7
 1091 
 1092         blr     
 1093 .long   0
 1094 .byte   0,12,0x14,0,0,0,0,0
 1095 
 1096 
 1097 
 1098 
 1099 
 1100 
 1101 
 1102 
 1103 
 1104 
 1105 
 1106 
 1107 
 1108 
 1109 
 1110 .align  4
 1111 _vpaes_schedule_192_smear:
 1112         vspltw  0, 7, 3-3
 1113         vsldoi  1, 6, 9, 16-12
 1114         vsldoi  0, 0, 7, 16-8
 1115         vxor    6, 6, 1
 1116         vxor    6, 6, 0
 1117         vor     0,6,6
 1118         vsldoi  6, 9, 6, 16-8
 1119         vsldoi  6, 6, 9, 16-8
 1120         blr     
 1121 .long   0
 1122 .byte   0,12,0x14,0,0,0,0,0
 1123 
 1124 
 1125 
 1126 
 1127 
 1128 
 1129 
 1130 
 1131 
 1132 
 1133 
 1134 
 1135 
 1136 
 1137 
 1138 
 1139 
 1140 
 1141 
 1142 .align  4
 1143 _vpaes_schedule_round:
 1144 
 1145 
 1146         vsldoi  1, 9, 24, 16-15
 1147         vsldoi  24, 24, 24, 16-15
 1148         vxor    7, 7, 1
 1149 
 1150 
 1151         vspltw  0, 0, 3-3
 1152         vsldoi  0, 0, 0, 16-1
 1153 
 1154 
 1155 
 1156 
 1157 _vpaes_schedule_low_round:
 1158 
 1159         vsldoi  1, 7, 9, 16-12
 1160         vxor    7, 7, 1
 1161         vspltisb        1, 0x0f
 1162         vsldoi  4, 7, 9, 16-8
 1163 
 1164 
 1165         vand    1, 1, 0
 1166         vsrb    0, 0, 8
 1167         vxor    7, 7, 4
 1168         vperm   2, 11, 9, 1
 1169         vxor    1, 1, 0
 1170         vperm   3, 10, 9, 0
 1171         vxor    3, 3, 2
 1172         vperm   4, 10, 9, 1
 1173         vxor    7, 7, 26
 1174         vperm   3, 10, 9, 3
 1175         vxor    4, 4, 2
 1176         vperm   2, 10, 9, 4
 1177         vxor    3, 3, 1
 1178         vxor    2, 2, 0
 1179         vperm   4, 15, 9, 3
 1180         vperm   1, 14, 9, 2
 1181         vxor    1, 1, 4
 1182 
 1183 
 1184         vxor    0, 1, 7
 1185         vxor    7, 1, 7
 1186         blr     
 1187 .long   0
 1188 .byte   0,12,0x14,0,0,0,0,0
 1189 
 1190 
 1191 
 1192 
 1193 
 1194 
 1195 
 1196 
 1197 
 1198 
 1199 .align  4
 1200 _vpaes_schedule_transform:
 1201 
 1202         vsrb    2, 0, 8
 1203 
 1204         vperm   0, 12, 12, 0
 1205 
 1206         vperm   2, 13, 13, 2
 1207         vxor    0, 0, 2
 1208         blr     
 1209 .long   0
 1210 .byte   0,12,0x14,0,0,0,0,0
 1211 
 1212 
 1213 
 1214 
 1215 
 1216 
 1217 
 1218 
 1219 
 1220 
 1221 
 1222 
 1223 
 1224 
 1225 
 1226 
 1227 
 1228 
 1229 
 1230 
 1231 
 1232 
 1233 
 1234 
 1235 .align  4
 1236 _vpaes_schedule_mangle:
 1237 
 1238 
 1239         bne     1, .Lschedule_mangle_dec
 1240 
 1241 
 1242         vxor    4, 0, 26
 1243         addi    5, 5, 16
 1244         vperm   4, 4, 4, 25
 1245         vperm   1, 4, 4, 25
 1246         vperm   3, 1, 1, 25
 1247         vxor    4, 4, 1
 1248         lvx     1, 8, 10
 1249         vxor    3, 3, 4
 1250 
 1251         vperm   3, 3, 3, 1
 1252         addi    8, 8, -16
 1253         andi.   8, 8, 0x30
 1254 
 1255 
 1256         vperm   1, 3, 3, 29
 1257         vsel    2, 28, 1, 30
 1258         vor     28,1,1
 1259         stvx    2, 0, 5
 1260         blr     
 1261 
 1262 .align  4
 1263 .Lschedule_mangle_dec:
 1264 
 1265 
 1266         vsrb    1, 0, 8
 1267 
 1268 
 1269 
 1270         vperm   2, 16, 16, 0
 1271 
 1272         vperm   3, 17, 17, 1
 1273         vxor    3, 3, 2
 1274         vperm   3, 3, 9, 25
 1275 
 1276 
 1277         vperm   2, 18, 18, 0
 1278         vxor    2, 2, 3
 1279 
 1280         vperm   3, 19, 19, 1
 1281         vxor    3, 3, 2
 1282         vperm   3, 3, 9, 25
 1283 
 1284 
 1285         vperm   2, 20, 20, 0
 1286         vxor    2, 2, 3
 1287 
 1288         vperm   3, 21, 21, 1
 1289         vxor    3, 3, 2
 1290 
 1291 
 1292         vperm   2, 22, 22, 0
 1293         vperm   3, 3, 9, 25
 1294 
 1295         vperm   4, 23, 23, 1
 1296         lvx     1, 8, 10
 1297         vxor    2, 2, 3
 1298         vxor    3, 4, 2
 1299 
 1300         addi    5, 5, -16
 1301 
 1302         vperm   3, 3, 3, 1
 1303         addi    8, 8, -16
 1304         andi.   8, 8, 0x30
 1305 
 1306 
 1307         vperm   1, 3, 3, 29
 1308         vsel    2, 28, 1, 30
 1309         vor     28,1,1
 1310         stvx    2, 0, 5
 1311         blr     
 1312 .long   0
 1313 .byte   0,12,0x14,0,0,0,0,0
 1314 
 1315 .globl  vpaes_set_encrypt_key
 1316 .type   vpaes_set_encrypt_key,@function
 1317 .align  5
 1318 vpaes_set_encrypt_key:
 1319 .localentry     vpaes_set_encrypt_key,0
 1320 
 1321         stdu    1,-256(1)
 1322         li      10,63
 1323         li      11,79
 1324         mflr    0
 1325         li      6,-1
 1326         stvx    20,10,1
 1327         addi    10,10,32
 1328         stvx    21,11,1
 1329         addi    11,11,32
 1330         stvx    22,10,1
 1331         addi    10,10,32
 1332         stvx    23,11,1
 1333         addi    11,11,32
 1334         stvx    24,10,1
 1335         addi    10,10,32
 1336         stvx    25,11,1
 1337         addi    11,11,32
 1338         stvx    26,10,1
 1339         addi    10,10,32
 1340         stvx    27,11,1
 1341         addi    11,11,32
 1342         stvx    28,10,1
 1343         addi    10,10,32
 1344         stvx    29,11,1
 1345         addi    11,11,32
 1346         stvx    30,10,1
 1347         stvx    31,11,1
 1348         stw     6,252(1)
 1349         li      7, -1
 1350         std     0, 272(1)
 1351         or      7,7,7
 1352 
 1353         srwi    9, 4, 5
 1354         addi    9, 9, 6
 1355         stw     9, 240(5)
 1356 
 1357         cmplw   1,4,4
 1358         li      8, 0x30
 1359         bl      _vpaes_schedule_core
 1360 
 1361         ld      0, 272(1)
 1362         li      10,63
 1363         li      11,79
 1364         or      6,6,6
 1365         mtlr    0
 1366         xor     3, 3, 3
 1367         lvx     20,10,1
 1368         addi    10,10,32
 1369         lvx     21,11,1
 1370         addi    11,11,32
 1371         lvx     22,10,1
 1372         addi    10,10,32
 1373         lvx     23,11,1
 1374         addi    11,11,32
 1375         lvx     24,10,1
 1376         addi    10,10,32
 1377         lvx     25,11,1
 1378         addi    11,11,32
 1379         lvx     26,10,1
 1380         addi    10,10,32
 1381         lvx     27,11,1
 1382         addi    11,11,32
 1383         lvx     28,10,1
 1384         addi    10,10,32
 1385         lvx     29,11,1
 1386         addi    11,11,32
 1387         lvx     30,10,1
 1388         lvx     31,11,1
 1389         addi    1,1,256
 1390         blr     
 1391 .long   0
 1392 .byte   0,12,0x04,1,0x80,0,3,0
 1393 .long   0
 1394 .size   vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
 1395 
 1396 .globl  vpaes_set_decrypt_key
 1397 .type   vpaes_set_decrypt_key,@function
 1398 .align  4
 1399 vpaes_set_decrypt_key:
 1400 .localentry     vpaes_set_decrypt_key,0
 1401 
 1402         stdu    1,-256(1)
 1403         li      10,63
 1404         li      11,79
 1405         mflr    0
 1406         li      6,-1
 1407         stvx    20,10,1
 1408         addi    10,10,32
 1409         stvx    21,11,1
 1410         addi    11,11,32
 1411         stvx    22,10,1
 1412         addi    10,10,32
 1413         stvx    23,11,1
 1414         addi    11,11,32
 1415         stvx    24,10,1
 1416         addi    10,10,32
 1417         stvx    25,11,1
 1418         addi    11,11,32
 1419         stvx    26,10,1
 1420         addi    10,10,32
 1421         stvx    27,11,1
 1422         addi    11,11,32
 1423         stvx    28,10,1
 1424         addi    10,10,32
 1425         stvx    29,11,1
 1426         addi    11,11,32
 1427         stvx    30,10,1
 1428         stvx    31,11,1
 1429         stw     6,252(1)
 1430         li      7, -1
 1431         std     0, 272(1)
 1432         or      7,7,7
 1433 
 1434         srwi    9, 4, 5
 1435         addi    9, 9, 6
 1436         stw     9, 240(5)
 1437 
 1438         slwi    9, 9, 4
 1439         add     5, 5, 9
 1440 
 1441         cmplwi  1, 4, 0
 1442         srwi    8, 4, 1
 1443         andi.   8, 8, 32
 1444         xori    8, 8, 32
 1445         bl      _vpaes_schedule_core
 1446 
 1447         ld      0,  272(1)
 1448         li      10,63
 1449         li      11,79
 1450         or      6,6,6
 1451         mtlr    0
 1452         xor     3, 3, 3
 1453         lvx     20,10,1
 1454         addi    10,10,32
 1455         lvx     21,11,1
 1456         addi    11,11,32
 1457         lvx     22,10,1
 1458         addi    10,10,32
 1459         lvx     23,11,1
 1460         addi    11,11,32
 1461         lvx     24,10,1
 1462         addi    10,10,32
 1463         lvx     25,11,1
 1464         addi    11,11,32
 1465         lvx     26,10,1
 1466         addi    10,10,32
 1467         lvx     27,11,1
 1468         addi    11,11,32
 1469         lvx     28,10,1
 1470         addi    10,10,32
 1471         lvx     29,11,1
 1472         addi    11,11,32
 1473         lvx     30,10,1
 1474         lvx     31,11,1
 1475         addi    1,1,256
 1476         blr     
 1477 .long   0
 1478 .byte   0,12,0x04,1,0x80,0,3,0
 1479 .long   0
 1480 .size   vpaes_set_decrypt_key,.-vpaes_set_decrypt_key

Cache object: 0d616e3f40c7b014ec40a12fee795ff3


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