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