Home | History | Annotate | Line # | Download | only in powerpc64
      1 .machine	"any"
      2 
      3 .text
      4 
      5 .align	7
      6 rcon:
      7 .byte	0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00
      8 .byte	0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00
      9 .byte	0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c
     10 .byte	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
     11 .long	0x0f102132, 0x43546576, 0x8798a9ba, 0xcbdcedfe
     12 .Lconsts:
     13 	mflr	0
     14 	bcl	20,31,$+4
     15 	mflr	6
     16 	addi	6,6,-0x58
     17 	mtlr	0
     18 	blr
     19 .long	0
     20 .byte	0,12,0x14,0,0,0,0,0
     21 .byte	65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,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
     22 .align	2
     23 
     24 .globl	aes_p8_set_encrypt_key
     25 .type	aes_p8_set_encrypt_key,@function
     26 .section	".opd","aw"
     27 .align	3
     28 aes_p8_set_encrypt_key:
     29 .quad	.aes_p8_set_encrypt_key,.TOC.@tocbase,0
     30 .previous
     31 .align	5
     32 .aes_p8_set_encrypt_key:
     33 .Lset_encrypt_key:
     34 	mflr	11
     35 	std	11,16(1)
     36 
     37 	li	6,-1
     38 	cmpldi	3,0
     39 	beq-	.Lenc_key_abort
     40 	cmpldi	5,0
     41 	beq-	.Lenc_key_abort
     42 	li	6,-2
     43 	cmpwi	4,128
     44 	blt-	.Lenc_key_abort
     45 	cmpwi	4,256
     46 	bgt-	.Lenc_key_abort
     47 	andi.	0,4,0x3f
     48 	bne-	.Lenc_key_abort
     49 
     50 	lis	0,0xfff0
     51 	mfspr	12,256
     52 	mtspr	256,0
     53 
     54 	bl	.Lconsts
     55 	mtlr	11
     56 
     57 	neg	9,3
     58 	lvx	1,0,3
     59 	addi	3,3,15
     60 	lvsr	3,0,9
     61 	li	8,0x20
     62 	cmpwi	4,192
     63 	lvx	2,0,3
     64 
     65 	lvx	4,0,6
     66 
     67 	lvx	5,8,6
     68 	addi	6,6,0x10
     69 	vperm	1,1,2,3
     70 	li	7,8
     71 	vxor	0,0,0
     72 	mtctr	7
     73 
     74 	lvsr	8,0,5
     75 	vspltisb	9,-1
     76 	lvx	10,0,5
     77 	vperm	9,0,9,8
     78 
     79 	blt	.Loop128
     80 	addi	3,3,8
     81 	beq	.L192
     82 	addi	3,3,8
     83 	b	.L256
     84 
     85 .align	4
     86 .Loop128:
     87 	vperm	3,1,1,5
     88 	vsldoi	6,0,1,12
     89 	vperm	11,1,1,8
     90 	vsel	7,10,11,9
     91 	vor	10,11,11
     92 .long	0x10632509
     93 	stvx	7,0,5
     94 	addi	5,5,16
     95 
     96 	vxor	1,1,6
     97 	vsldoi	6,0,6,12
     98 	vxor	1,1,6
     99 	vsldoi	6,0,6,12
    100 	vxor	1,1,6
    101 	vadduwm	4,4,4
    102 	vxor	1,1,3
    103 	bc	16,0,.Loop128
    104 
    105 	lvx	4,0,6
    106 
    107 	vperm	3,1,1,5
    108 	vsldoi	6,0,1,12
    109 	vperm	11,1,1,8
    110 	vsel	7,10,11,9
    111 	vor	10,11,11
    112 .long	0x10632509
    113 	stvx	7,0,5
    114 	addi	5,5,16
    115 
    116 	vxor	1,1,6
    117 	vsldoi	6,0,6,12
    118 	vxor	1,1,6
    119 	vsldoi	6,0,6,12
    120 	vxor	1,1,6
    121 	vadduwm	4,4,4
    122 	vxor	1,1,3
    123 
    124 	vperm	3,1,1,5
    125 	vsldoi	6,0,1,12
    126 	vperm	11,1,1,8
    127 	vsel	7,10,11,9
    128 	vor	10,11,11
    129 .long	0x10632509
    130 	stvx	7,0,5
    131 	addi	5,5,16
    132 
    133 	vxor	1,1,6
    134 	vsldoi	6,0,6,12
    135 	vxor	1,1,6
    136 	vsldoi	6,0,6,12
    137 	vxor	1,1,6
    138 	vxor	1,1,3
    139 	vperm	11,1,1,8
    140 	vsel	7,10,11,9
    141 	vor	10,11,11
    142 	stvx	7,0,5
    143 
    144 	addi	3,5,15
    145 	addi	5,5,0x50
    146 
    147 	li	8,10
    148 	b	.Ldone
    149 
    150 .align	4
    151 .L192:
    152 	lvx	6,0,3
    153 	li	7,4
    154 	vperm	11,1,1,8
    155 	vsel	7,10,11,9
    156 	vor	10,11,11
    157 	stvx	7,0,5
    158 	addi	5,5,16
    159 	vperm	2,2,6,3
    160 	vspltisb	3,8
    161 	mtctr	7
    162 	vsububm	5,5,3
    163 
    164 .Loop192:
    165 	vperm	3,2,2,5
    166 	vsldoi	6,0,1,12
    167 .long	0x10632509
    168 
    169 	vxor	1,1,6
    170 	vsldoi	6,0,6,12
    171 	vxor	1,1,6
    172 	vsldoi	6,0,6,12
    173 	vxor	1,1,6
    174 
    175 	vsldoi	7,0,2,8
    176 	vspltw	6,1,3
    177 	vxor	6,6,2
    178 	vsldoi	2,0,2,12
    179 	vadduwm	4,4,4
    180 	vxor	2,2,6
    181 	vxor	1,1,3
    182 	vxor	2,2,3
    183 	vsldoi	7,7,1,8
    184 
    185 	vperm	3,2,2,5
    186 	vsldoi	6,0,1,12
    187 	vperm	11,7,7,8
    188 	vsel	7,10,11,9
    189 	vor	10,11,11
    190 .long	0x10632509
    191 	stvx	7,0,5
    192 	addi	5,5,16
    193 
    194 	vsldoi	7,1,2,8
    195 	vxor	1,1,6
    196 	vsldoi	6,0,6,12
    197 	vperm	11,7,7,8
    198 	vsel	7,10,11,9
    199 	vor	10,11,11
    200 	vxor	1,1,6
    201 	vsldoi	6,0,6,12
    202 	vxor	1,1,6
    203 	stvx	7,0,5
    204 	addi	5,5,16
    205 
    206 	vspltw	6,1,3
    207 	vxor	6,6,2
    208 	vsldoi	2,0,2,12
    209 	vadduwm	4,4,4
    210 	vxor	2,2,6
    211 	vxor	1,1,3
    212 	vxor	2,2,3
    213 	vperm	11,1,1,8
    214 	vsel	7,10,11,9
    215 	vor	10,11,11
    216 	stvx	7,0,5
    217 	addi	3,5,15
    218 	addi	5,5,16
    219 	bc	16,0,.Loop192
    220 
    221 	li	8,12
    222 	addi	5,5,0x20
    223 	b	.Ldone
    224 
    225 .align	4
    226 .L256:
    227 	lvx	6,0,3
    228 	li	7,7
    229 	li	8,14
    230 	vperm	11,1,1,8
    231 	vsel	7,10,11,9
    232 	vor	10,11,11
    233 	stvx	7,0,5
    234 	addi	5,5,16
    235 	vperm	2,2,6,3
    236 	mtctr	7
    237 
    238 .Loop256:
    239 	vperm	3,2,2,5
    240 	vsldoi	6,0,1,12
    241 	vperm	11,2,2,8
    242 	vsel	7,10,11,9
    243 	vor	10,11,11
    244 .long	0x10632509
    245 	stvx	7,0,5
    246 	addi	5,5,16
    247 
    248 	vxor	1,1,6
    249 	vsldoi	6,0,6,12
    250 	vxor	1,1,6
    251 	vsldoi	6,0,6,12
    252 	vxor	1,1,6
    253 	vadduwm	4,4,4
    254 	vxor	1,1,3
    255 	vperm	11,1,1,8
    256 	vsel	7,10,11,9
    257 	vor	10,11,11
    258 	stvx	7,0,5
    259 	addi	3,5,15
    260 	addi	5,5,16
    261 	bdz	.Ldone
    262 
    263 	vspltw	3,1,3
    264 	vsldoi	6,0,2,12
    265 .long	0x106305C8
    266 
    267 	vxor	2,2,6
    268 	vsldoi	6,0,6,12
    269 	vxor	2,2,6
    270 	vsldoi	6,0,6,12
    271 	vxor	2,2,6
    272 
    273 	vxor	2,2,3
    274 	b	.Loop256
    275 
    276 .align	4
    277 .Ldone:
    278 	lvx	2,0,3
    279 	vsel	2,10,2,9
    280 	stvx	2,0,3
    281 	li	6,0
    282 	mtspr	256,12
    283 	stw	8,0(5)
    284 
    285 .Lenc_key_abort:
    286 	mr	3,6
    287 	blr
    288 .long	0
    289 .byte	0,12,0x14,1,0,0,3,0
    290 .long	0
    291 
    292 
    293 .globl	aes_p8_set_decrypt_key
    294 .type	aes_p8_set_decrypt_key,@function
    295 .section	".opd","aw"
    296 .align	3
    297 aes_p8_set_decrypt_key:
    298 .quad	.aes_p8_set_decrypt_key,.TOC.@tocbase,0
    299 .previous
    300 .align	5
    301 .aes_p8_set_decrypt_key:
    302 	stdu	1,-64(1)
    303 	mflr	10
    304 	std	10,64+16(1)
    305 	bl	.Lset_encrypt_key
    306 	mtlr	10
    307 
    308 	cmpwi	3,0
    309 	bne-	.Ldec_key_abort
    310 
    311 	slwi	7,8,4
    312 	subi	3,5,240
    313 	srwi	8,8,1
    314 	add	5,3,7
    315 	mtctr	8
    316 
    317 .Ldeckey:
    318 	lwz	0, 0(3)
    319 	lwz	6, 4(3)
    320 	lwz	7, 8(3)
    321 	lwz	8, 12(3)
    322 	addi	3,3,16
    323 	lwz	9, 0(5)
    324 	lwz	10,4(5)
    325 	lwz	11,8(5)
    326 	lwz	12,12(5)
    327 	stw	0, 0(5)
    328 	stw	6, 4(5)
    329 	stw	7, 8(5)
    330 	stw	8, 12(5)
    331 	subi	5,5,16
    332 	stw	9, -16(3)
    333 	stw	10,-12(3)
    334 	stw	11,-8(3)
    335 	stw	12,-4(3)
    336 	bc	16,0,.Ldeckey
    337 
    338 	xor	3,3,3
    339 .Ldec_key_abort:
    340 	addi	1,1,64
    341 	blr
    342 .long	0
    343 .byte	0,12,4,1,0x80,0,3,0
    344 .long	0
    345 
    346 .globl	aes_p8_encrypt
    347 .type	aes_p8_encrypt,@function
    348 .section	".opd","aw"
    349 .align	3
    350 aes_p8_encrypt:
    351 .quad	.aes_p8_encrypt,.TOC.@tocbase,0
    352 .previous
    353 .align	5
    354 .aes_p8_encrypt:
    355 	lwz	6,240(5)
    356 	lis	0,0xfc00
    357 	mfspr	12,256
    358 	li	7,15
    359 	mtspr	256,0
    360 
    361 	lvx	0,0,3
    362 	neg	11,4
    363 	lvx	1,7,3
    364 	lvsl	2,0,3
    365 
    366 	lvsl	3,0,11
    367 
    368 	li	7,16
    369 	vperm	0,0,1,2
    370 	lvx	1,0,5
    371 	lvsl	5,0,5
    372 	srwi	6,6,1
    373 	lvx	2,7,5
    374 	addi	7,7,16
    375 	subi	6,6,1
    376 	vperm	1,1,2,5
    377 
    378 	vxor	0,0,1
    379 	lvx	1,7,5
    380 	addi	7,7,16
    381 	mtctr	6
    382 
    383 .Loop_enc:
    384 	vperm	2,2,1,5
    385 .long	0x10001508
    386 	lvx	2,7,5
    387 	addi	7,7,16
    388 	vperm	1,1,2,5
    389 .long	0x10000D08
    390 	lvx	1,7,5
    391 	addi	7,7,16
    392 	bc	16,0,.Loop_enc
    393 
    394 	vperm	2,2,1,5
    395 .long	0x10001508
    396 	lvx	2,7,5
    397 	vperm	1,1,2,5
    398 .long	0x10000D09
    399 
    400 	vspltisb	2,-1
    401 	vxor	1,1,1
    402 	li	7,15
    403 	vperm	2,1,2,3
    404 
    405 	lvx	1,0,4
    406 	vperm	0,0,0,3
    407 	vsel	1,1,0,2
    408 	lvx	4,7,4
    409 	stvx	1,0,4
    410 	vsel	0,0,4,2
    411 	stvx	0,7,4
    412 
    413 	mtspr	256,12
    414 	blr
    415 .long	0
    416 .byte	0,12,0x14,0,0,0,3,0
    417 .long	0
    418 
    419 .globl	aes_p8_decrypt
    420 .type	aes_p8_decrypt,@function
    421 .section	".opd","aw"
    422 .align	3
    423 aes_p8_decrypt:
    424 .quad	.aes_p8_decrypt,.TOC.@tocbase,0
    425 .previous
    426 .align	5
    427 .aes_p8_decrypt:
    428 	lwz	6,240(5)
    429 	lis	0,0xfc00
    430 	mfspr	12,256
    431 	li	7,15
    432 	mtspr	256,0
    433 
    434 	lvx	0,0,3
    435 	neg	11,4
    436 	lvx	1,7,3
    437 	lvsl	2,0,3
    438 
    439 	lvsl	3,0,11
    440 
    441 	li	7,16
    442 	vperm	0,0,1,2
    443 	lvx	1,0,5
    444 	lvsl	5,0,5
    445 	srwi	6,6,1
    446 	lvx	2,7,5
    447 	addi	7,7,16
    448 	subi	6,6,1
    449 	vperm	1,1,2,5
    450 
    451 	vxor	0,0,1
    452 	lvx	1,7,5
    453 	addi	7,7,16
    454 	mtctr	6
    455 
    456 .Loop_dec:
    457 	vperm	2,2,1,5
    458 .long	0x10001548
    459 	lvx	2,7,5
    460 	addi	7,7,16
    461 	vperm	1,1,2,5
    462 .long	0x10000D48
    463 	lvx	1,7,5
    464 	addi	7,7,16
    465 	bc	16,0,.Loop_dec
    466 
    467 	vperm	2,2,1,5
    468 .long	0x10001548
    469 	lvx	2,7,5
    470 	vperm	1,1,2,5
    471 .long	0x10000D49
    472 
    473 	vspltisb	2,-1
    474 	vxor	1,1,1
    475 	li	7,15
    476 	vperm	2,1,2,3
    477 
    478 	lvx	1,0,4
    479 	vperm	0,0,0,3
    480 	vsel	1,1,0,2
    481 	lvx	4,7,4
    482 	stvx	1,0,4
    483 	vsel	0,0,4,2
    484 	stvx	0,7,4
    485 
    486 	mtspr	256,12
    487 	blr
    488 .long	0
    489 .byte	0,12,0x14,0,0,0,3,0
    490 .long	0
    491 
    492 .globl	aes_p8_cbc_encrypt
    493 .type	aes_p8_cbc_encrypt,@function
    494 .section	".opd","aw"
    495 .align	3
    496 aes_p8_cbc_encrypt:
    497 .quad	.aes_p8_cbc_encrypt,.TOC.@tocbase,0
    498 .previous
    499 .align	5
    500 .aes_p8_cbc_encrypt:
    501 	cmpldi	5,16
    502 	bltlr
    503 
    504 	cmpwi	8,0
    505 	lis	0,0xffe0
    506 	mfspr	12,256
    507 	mtspr	256,0
    508 
    509 	li	10,15
    510 	vxor	0,0,0
    511 
    512 
    513 	lvx	4,0,7
    514 	lvsl	6,0,7
    515 	lvx	5,10,7
    516 
    517 	vperm	4,4,5,6
    518 
    519 	neg	11,3
    520 	lvsl	10,0,6
    521 	lwz	9,240(6)
    522 
    523 	lvsr	6,0,11
    524 	lvx	5,0,3
    525 	addi	3,3,15
    526 
    527 
    528 	lvsr	8,0,4
    529 	vspltisb	9,-1
    530 	lvx	7,0,4
    531 	vperm	9,0,9,8
    532 
    533 
    534 	srwi	9,9,1
    535 	li	10,16
    536 	subi	9,9,1
    537 	beq	.Lcbc_dec
    538 
    539 .Lcbc_enc:
    540 	vor	2,5,5
    541 	lvx	5,0,3
    542 	addi	3,3,16
    543 	mtctr	9
    544 	subi	5,5,16
    545 
    546 	lvx	0,0,6
    547 	vperm	2,2,5,6
    548 	lvx	1,10,6
    549 	addi	10,10,16
    550 	vperm	0,0,1,10
    551 	vxor	2,2,0
    552 	lvx	0,10,6
    553 	addi	10,10,16
    554 	vxor	2,2,4
    555 
    556 .Loop_cbc_enc:
    557 	vperm	1,1,0,10
    558 .long	0x10420D08
    559 	lvx	1,10,6
    560 	addi	10,10,16
    561 	vperm	0,0,1,10
    562 .long	0x10420508
    563 	lvx	0,10,6
    564 	addi	10,10,16
    565 	bc	16,0,.Loop_cbc_enc
    566 
    567 	vperm	1,1,0,10
    568 .long	0x10420D08
    569 	lvx	1,10,6
    570 	li	10,16
    571 	vperm	0,0,1,10
    572 .long	0x10820509
    573 	cmpldi	5,16
    574 
    575 	vperm	3,4,4,8
    576 	vsel	2,7,3,9
    577 	vor	7,3,3
    578 	stvx	2,0,4
    579 	addi	4,4,16
    580 	bge	.Lcbc_enc
    581 
    582 	b	.Lcbc_done
    583 
    584 .align	4
    585 .Lcbc_dec:
    586 	cmpldi	5,128
    587 	bge	_aesp8_cbc_decrypt8x
    588 	vor	3,5,5
    589 	lvx	5,0,3
    590 	addi	3,3,16
    591 	mtctr	9
    592 	subi	5,5,16
    593 
    594 	lvx	0,0,6
    595 	vperm	3,3,5,6
    596 	lvx	1,10,6
    597 	addi	10,10,16
    598 	vperm	0,0,1,10
    599 	vxor	2,3,0
    600 	lvx	0,10,6
    601 	addi	10,10,16
    602 
    603 .Loop_cbc_dec:
    604 	vperm	1,1,0,10
    605 .long	0x10420D48
    606 	lvx	1,10,6
    607 	addi	10,10,16
    608 	vperm	0,0,1,10
    609 .long	0x10420548
    610 	lvx	0,10,6
    611 	addi	10,10,16
    612 	bc	16,0,.Loop_cbc_dec
    613 
    614 	vperm	1,1,0,10
    615 .long	0x10420D48
    616 	lvx	1,10,6
    617 	li	10,16
    618 	vperm	0,0,1,10
    619 .long	0x10420549
    620 	cmpldi	5,16
    621 
    622 	vxor	2,2,4
    623 	vor	4,3,3
    624 	vperm	3,2,2,8
    625 	vsel	2,7,3,9
    626 	vor	7,3,3
    627 	stvx	2,0,4
    628 	addi	4,4,16
    629 	bge	.Lcbc_dec
    630 
    631 .Lcbc_done:
    632 	addi	4,4,-1
    633 	lvx	2,0,4
    634 	vsel	2,7,2,9
    635 	stvx	2,0,4
    636 
    637 	neg	8,7
    638 	li	10,15
    639 	vxor	0,0,0
    640 	vspltisb	9,-1
    641 
    642 	lvsl	8,0,8
    643 	vperm	9,0,9,8
    644 
    645 	lvx	7,0,7
    646 	vperm	4,4,4,8
    647 	vsel	2,7,4,9
    648 	lvx	5,10,7
    649 	stvx	2,0,7
    650 	vsel	2,4,5,9
    651 	stvx	2,10,7
    652 
    653 	mtspr	256,12
    654 	blr
    655 .long	0
    656 .byte	0,12,0x14,0,0,0,6,0
    657 .long	0
    658 .align	5
    659 _aesp8_cbc_decrypt8x:
    660 	stdu	1,-448(1)
    661 	li	10,207
    662 	li	11,223
    663 	stvx	20,10,1
    664 	addi	10,10,32
    665 	stvx	21,11,1
    666 	addi	11,11,32
    667 	stvx	22,10,1
    668 	addi	10,10,32
    669 	stvx	23,11,1
    670 	addi	11,11,32
    671 	stvx	24,10,1
    672 	addi	10,10,32
    673 	stvx	25,11,1
    674 	addi	11,11,32
    675 	stvx	26,10,1
    676 	addi	10,10,32
    677 	stvx	27,11,1
    678 	addi	11,11,32
    679 	stvx	28,10,1
    680 	addi	10,10,32
    681 	stvx	29,11,1
    682 	addi	11,11,32
    683 	stvx	30,10,1
    684 	stvx	31,11,1
    685 	li	0,-1
    686 	stw	12,396(1)
    687 	li	8,0x10
    688 	std	26,400(1)
    689 	li	26,0x20
    690 	std	27,408(1)
    691 	li	27,0x30
    692 	std	28,416(1)
    693 	li	28,0x40
    694 	std	29,424(1)
    695 	li	29,0x50
    696 	std	30,432(1)
    697 	li	30,0x60
    698 	std	31,440(1)
    699 	li	31,0x70
    700 	mtspr	256,0
    701 
    702 	subi	9,9,3
    703 	subi	5,5,128
    704 
    705 	lvx	23,0,6
    706 	lvx	30,8,6
    707 	addi	6,6,0x20
    708 	lvx	31,0,6
    709 	vperm	23,23,30,10
    710 	addi	11,1,64+15
    711 	mtctr	9
    712 
    713 .Load_cbc_dec_key:
    714 	vperm	24,30,31,10
    715 	lvx	30,8,6
    716 	addi	6,6,0x20
    717 	stvx	24,0,11
    718 	vperm	25,31,30,10
    719 	lvx	31,0,6
    720 	stvx	25,8,11
    721 	addi	11,11,0x20
    722 	bc	16,0,.Load_cbc_dec_key
    723 
    724 	lvx	26,8,6
    725 	vperm	24,30,31,10
    726 	lvx	27,26,6
    727 	stvx	24,0,11
    728 	vperm	25,31,26,10
    729 	lvx	28,27,6
    730 	stvx	25,8,11
    731 	addi	11,1,64+15
    732 	vperm	26,26,27,10
    733 	lvx	29,28,6
    734 	vperm	27,27,28,10
    735 	lvx	30,29,6
    736 	vperm	28,28,29,10
    737 	lvx	31,30,6
    738 	vperm	29,29,30,10
    739 	lvx	14,31,6
    740 	vperm	30,30,31,10
    741 	lvx	24,0,11
    742 	vperm	31,31,14,10
    743 	lvx	25,8,11
    744 
    745 
    746 
    747 	subi	3,3,15
    748 
    749 
    750 .long	0x7C001E99
    751 
    752 
    753 .long	0x7C281E99
    754 
    755 .long	0x7C5A1E99
    756 
    757 .long	0x7C7B1E99
    758 
    759 .long	0x7D5C1E99
    760 
    761 	vxor	14,0,23
    762 .long	0x7D7D1E99
    763 
    764 	vxor	15,1,23
    765 .long	0x7D9E1E99
    766 
    767 	vxor	16,2,23
    768 .long	0x7DBF1E99
    769 	addi	3,3,0x80
    770 
    771 	vxor	17,3,23
    772 
    773 	vxor	18,10,23
    774 
    775 	vxor	19,11,23
    776 	vxor	20,12,23
    777 	vxor	21,13,23
    778 
    779 	mtctr	9
    780 	b	.Loop_cbc_dec8x
    781 .align	5
    782 .Loop_cbc_dec8x:
    783 .long	0x11CEC548
    784 .long	0x11EFC548
    785 .long	0x1210C548
    786 .long	0x1231C548
    787 .long	0x1252C548
    788 .long	0x1273C548
    789 .long	0x1294C548
    790 .long	0x12B5C548
    791 	lvx	24,26,11
    792 	addi	11,11,0x20
    793 
    794 .long	0x11CECD48
    795 .long	0x11EFCD48
    796 .long	0x1210CD48
    797 .long	0x1231CD48
    798 .long	0x1252CD48
    799 .long	0x1273CD48
    800 .long	0x1294CD48
    801 .long	0x12B5CD48
    802 	lvx	25,8,11
    803 	bc	16,0,.Loop_cbc_dec8x
    804 
    805 	subic	5,5,128
    806 .long	0x11CEC548
    807 .long	0x11EFC548
    808 .long	0x1210C548
    809 .long	0x1231C548
    810 .long	0x1252C548
    811 .long	0x1273C548
    812 .long	0x1294C548
    813 .long	0x12B5C548
    814 
    815 	subfe.	0,0,0
    816 .long	0x11CECD48
    817 .long	0x11EFCD48
    818 .long	0x1210CD48
    819 .long	0x1231CD48
    820 .long	0x1252CD48
    821 .long	0x1273CD48
    822 .long	0x1294CD48
    823 .long	0x12B5CD48
    824 
    825 	and	0,0,5
    826 .long	0x11CED548
    827 .long	0x11EFD548
    828 .long	0x1210D548
    829 .long	0x1231D548
    830 .long	0x1252D548
    831 .long	0x1273D548
    832 .long	0x1294D548
    833 .long	0x12B5D548
    834 
    835 	add	3,3,0
    836 
    837 
    838 
    839 .long	0x11CEDD48
    840 .long	0x11EFDD48
    841 .long	0x1210DD48
    842 .long	0x1231DD48
    843 .long	0x1252DD48
    844 .long	0x1273DD48
    845 .long	0x1294DD48
    846 .long	0x12B5DD48
    847 
    848 	addi	11,1,64+15
    849 .long	0x11CEE548
    850 .long	0x11EFE548
    851 .long	0x1210E548
    852 .long	0x1231E548
    853 .long	0x1252E548
    854 .long	0x1273E548
    855 .long	0x1294E548
    856 .long	0x12B5E548
    857 	lvx	24,0,11
    858 
    859 .long	0x11CEED48
    860 .long	0x11EFED48
    861 .long	0x1210ED48
    862 .long	0x1231ED48
    863 .long	0x1252ED48
    864 .long	0x1273ED48
    865 .long	0x1294ED48
    866 .long	0x12B5ED48
    867 	lvx	25,8,11
    868 
    869 .long	0x11CEF548
    870 	vxor	4,4,31
    871 .long	0x11EFF548
    872 	vxor	0,0,31
    873 .long	0x1210F548
    874 	vxor	1,1,31
    875 .long	0x1231F548
    876 	vxor	2,2,31
    877 .long	0x1252F548
    878 	vxor	3,3,31
    879 .long	0x1273F548
    880 	vxor	10,10,31
    881 .long	0x1294F548
    882 	vxor	11,11,31
    883 .long	0x12B5F548
    884 	vxor	12,12,31
    885 
    886 .long	0x11CE2549
    887 .long	0x11EF0549
    888 .long	0x7C001E99
    889 .long	0x12100D49
    890 .long	0x7C281E99
    891 .long	0x12311549
    892 
    893 .long	0x7C5A1E99
    894 .long	0x12521D49
    895 
    896 .long	0x7C7B1E99
    897 .long	0x12735549
    898 
    899 .long	0x7D5C1E99
    900 .long	0x12945D49
    901 
    902 .long	0x7D7D1E99
    903 .long	0x12B56549
    904 
    905 .long	0x7D9E1E99
    906 	vor	4,13,13
    907 
    908 .long	0x7DBF1E99
    909 	addi	3,3,0x80
    910 
    911 
    912 
    913 .long	0x7DC02799
    914 
    915 	vxor	14,0,23
    916 
    917 .long	0x7DE82799
    918 
    919 	vxor	15,1,23
    920 
    921 .long	0x7E1A2799
    922 	vxor	16,2,23
    923 
    924 .long	0x7E3B2799
    925 	vxor	17,3,23
    926 
    927 .long	0x7E5C2799
    928 	vxor	18,10,23
    929 
    930 .long	0x7E7D2799
    931 	vxor	19,11,23
    932 
    933 .long	0x7E9E2799
    934 	vxor	20,12,23
    935 .long	0x7EBF2799
    936 	addi	4,4,0x80
    937 	vxor	21,13,23
    938 
    939 	mtctr	9
    940 	beq	.Loop_cbc_dec8x
    941 
    942 	addic.	5,5,128
    943 	beq	.Lcbc_dec8x_done
    944 	nop
    945 	nop
    946 
    947 .Loop_cbc_dec8x_tail:
    948 .long	0x11EFC548
    949 .long	0x1210C548
    950 .long	0x1231C548
    951 .long	0x1252C548
    952 .long	0x1273C548
    953 .long	0x1294C548
    954 .long	0x12B5C548
    955 	lvx	24,26,11
    956 	addi	11,11,0x20
    957 
    958 .long	0x11EFCD48
    959 .long	0x1210CD48
    960 .long	0x1231CD48
    961 .long	0x1252CD48
    962 .long	0x1273CD48
    963 .long	0x1294CD48
    964 .long	0x12B5CD48
    965 	lvx	25,8,11
    966 	bc	16,0,.Loop_cbc_dec8x_tail
    967 
    968 .long	0x11EFC548
    969 .long	0x1210C548
    970 .long	0x1231C548
    971 .long	0x1252C548
    972 .long	0x1273C548
    973 .long	0x1294C548
    974 .long	0x12B5C548
    975 
    976 .long	0x11EFCD48
    977 .long	0x1210CD48
    978 .long	0x1231CD48
    979 .long	0x1252CD48
    980 .long	0x1273CD48
    981 .long	0x1294CD48
    982 .long	0x12B5CD48
    983 
    984 .long	0x11EFD548
    985 .long	0x1210D548
    986 .long	0x1231D548
    987 .long	0x1252D548
    988 .long	0x1273D548
    989 .long	0x1294D548
    990 .long	0x12B5D548
    991 
    992 .long	0x11EFDD48
    993 .long	0x1210DD48
    994 .long	0x1231DD48
    995 .long	0x1252DD48
    996 .long	0x1273DD48
    997 .long	0x1294DD48
    998 .long	0x12B5DD48
    999 
   1000 .long	0x11EFE548
   1001 .long	0x1210E548
   1002 .long	0x1231E548
   1003 .long	0x1252E548
   1004 .long	0x1273E548
   1005 .long	0x1294E548
   1006 .long	0x12B5E548
   1007 
   1008 .long	0x11EFED48
   1009 .long	0x1210ED48
   1010 .long	0x1231ED48
   1011 .long	0x1252ED48
   1012 .long	0x1273ED48
   1013 .long	0x1294ED48
   1014 .long	0x12B5ED48
   1015 
   1016 .long	0x11EFF548
   1017 	vxor	4,4,31
   1018 .long	0x1210F548
   1019 	vxor	1,1,31
   1020 .long	0x1231F548
   1021 	vxor	2,2,31
   1022 .long	0x1252F548
   1023 	vxor	3,3,31
   1024 .long	0x1273F548
   1025 	vxor	10,10,31
   1026 .long	0x1294F548
   1027 	vxor	11,11,31
   1028 .long	0x12B5F548
   1029 	vxor	12,12,31
   1030 
   1031 	cmplwi	5,32
   1032 	blt	.Lcbc_dec8x_one
   1033 	nop
   1034 	beq	.Lcbc_dec8x_two
   1035 	cmplwi	5,64
   1036 	blt	.Lcbc_dec8x_three
   1037 	nop
   1038 	beq	.Lcbc_dec8x_four
   1039 	cmplwi	5,96
   1040 	blt	.Lcbc_dec8x_five
   1041 	nop
   1042 	beq	.Lcbc_dec8x_six
   1043 
   1044 .Lcbc_dec8x_seven:
   1045 .long	0x11EF2549
   1046 .long	0x12100D49
   1047 .long	0x12311549
   1048 .long	0x12521D49
   1049 .long	0x12735549
   1050 .long	0x12945D49
   1051 .long	0x12B56549
   1052 	vor	4,13,13
   1053 
   1054 
   1055 
   1056 .long	0x7DE02799
   1057 
   1058 .long	0x7E082799
   1059 
   1060 .long	0x7E3A2799
   1061 
   1062 .long	0x7E5B2799
   1063 
   1064 .long	0x7E7C2799
   1065 
   1066 .long	0x7E9D2799
   1067 .long	0x7EBE2799
   1068 	addi	4,4,0x70
   1069 	b	.Lcbc_dec8x_done
   1070 
   1071 .align	5
   1072 .Lcbc_dec8x_six:
   1073 .long	0x12102549
   1074 .long	0x12311549
   1075 .long	0x12521D49
   1076 .long	0x12735549
   1077 .long	0x12945D49
   1078 .long	0x12B56549
   1079 	vor	4,13,13
   1080 
   1081 
   1082 
   1083 .long	0x7E002799
   1084 
   1085 .long	0x7E282799
   1086 
   1087 .long	0x7E5A2799
   1088 
   1089 .long	0x7E7B2799
   1090 
   1091 .long	0x7E9C2799
   1092 .long	0x7EBD2799
   1093 	addi	4,4,0x60
   1094 	b	.Lcbc_dec8x_done
   1095 
   1096 .align	5
   1097 .Lcbc_dec8x_five:
   1098 .long	0x12312549
   1099 .long	0x12521D49
   1100 .long	0x12735549
   1101 .long	0x12945D49
   1102 .long	0x12B56549
   1103 	vor	4,13,13
   1104 
   1105 
   1106 
   1107 .long	0x7E202799
   1108 
   1109 .long	0x7E482799
   1110 
   1111 .long	0x7E7A2799
   1112 
   1113 .long	0x7E9B2799
   1114 .long	0x7EBC2799
   1115 	addi	4,4,0x50
   1116 	b	.Lcbc_dec8x_done
   1117 
   1118 .align	5
   1119 .Lcbc_dec8x_four:
   1120 .long	0x12522549
   1121 .long	0x12735549
   1122 .long	0x12945D49
   1123 .long	0x12B56549
   1124 	vor	4,13,13
   1125 
   1126 
   1127 
   1128 .long	0x7E402799
   1129 
   1130 .long	0x7E682799
   1131 
   1132 .long	0x7E9A2799
   1133 .long	0x7EBB2799
   1134 	addi	4,4,0x40
   1135 	b	.Lcbc_dec8x_done
   1136 
   1137 .align	5
   1138 .Lcbc_dec8x_three:
   1139 .long	0x12732549
   1140 .long	0x12945D49
   1141 .long	0x12B56549
   1142 	vor	4,13,13
   1143 
   1144 
   1145 
   1146 .long	0x7E602799
   1147 
   1148 .long	0x7E882799
   1149 .long	0x7EBA2799
   1150 	addi	4,4,0x30
   1151 	b	.Lcbc_dec8x_done
   1152 
   1153 .align	5
   1154 .Lcbc_dec8x_two:
   1155 .long	0x12942549
   1156 .long	0x12B56549
   1157 	vor	4,13,13
   1158 
   1159 
   1160 
   1161 .long	0x7E802799
   1162 .long	0x7EA82799
   1163 	addi	4,4,0x20
   1164 	b	.Lcbc_dec8x_done
   1165 
   1166 .align	5
   1167 .Lcbc_dec8x_one:
   1168 .long	0x12B52549
   1169 	vor	4,13,13
   1170 
   1171 
   1172 .long	0x7EA02799
   1173 	addi	4,4,0x10
   1174 
   1175 .Lcbc_dec8x_done:
   1176 
   1177 .long	0x7C803F99
   1178 
   1179 	li	10,79
   1180 	li	11,95
   1181 	stvx	6,10,1
   1182 	addi	10,10,32
   1183 	stvx	6,11,1
   1184 	addi	11,11,32
   1185 	stvx	6,10,1
   1186 	addi	10,10,32
   1187 	stvx	6,11,1
   1188 	addi	11,11,32
   1189 	stvx	6,10,1
   1190 	addi	10,10,32
   1191 	stvx	6,11,1
   1192 	addi	11,11,32
   1193 	stvx	6,10,1
   1194 	addi	10,10,32
   1195 	stvx	6,11,1
   1196 	addi	11,11,32
   1197 
   1198 	mtspr	256,12
   1199 	lvx	20,10,1
   1200 	addi	10,10,32
   1201 	lvx	21,11,1
   1202 	addi	11,11,32
   1203 	lvx	22,10,1
   1204 	addi	10,10,32
   1205 	lvx	23,11,1
   1206 	addi	11,11,32
   1207 	lvx	24,10,1
   1208 	addi	10,10,32
   1209 	lvx	25,11,1
   1210 	addi	11,11,32
   1211 	lvx	26,10,1
   1212 	addi	10,10,32
   1213 	lvx	27,11,1
   1214 	addi	11,11,32
   1215 	lvx	28,10,1
   1216 	addi	10,10,32
   1217 	lvx	29,11,1
   1218 	addi	11,11,32
   1219 	lvx	30,10,1
   1220 	lvx	31,11,1
   1221 	ld	26,400(1)
   1222 	ld	27,408(1)
   1223 	ld	28,416(1)
   1224 	ld	29,424(1)
   1225 	ld	30,432(1)
   1226 	ld	31,440(1)
   1227 	addi	1,1,448
   1228 	blr
   1229 .long	0
   1230 .byte	0,12,0x04,0,0x80,6,6,0
   1231 .long	0
   1232 
   1233 .globl	aes_p8_ctr32_encrypt_blocks
   1234 .type	aes_p8_ctr32_encrypt_blocks,@function
   1235 .section	".opd","aw"
   1236 .align	3
   1237 aes_p8_ctr32_encrypt_blocks:
   1238 .quad	.aes_p8_ctr32_encrypt_blocks,.TOC.@tocbase,0
   1239 .previous
   1240 .align	5
   1241 .aes_p8_ctr32_encrypt_blocks:
   1242 	cmpldi	5,1
   1243 	bltlr
   1244 
   1245 	lis	0,0xfff0
   1246 	mfspr	12,256
   1247 	mtspr	256,0
   1248 
   1249 	li	10,15
   1250 	vxor	0,0,0
   1251 
   1252 
   1253 	lvx	4,0,7
   1254 	lvsl	6,0,7
   1255 	lvx	5,10,7
   1256 	vspltisb	11,1
   1257 
   1258 	vperm	4,4,5,6
   1259 	vsldoi	11,0,11,1
   1260 
   1261 	neg	11,3
   1262 	lvsl	10,0,6
   1263 	lwz	9,240(6)
   1264 
   1265 	lvsr	6,0,11
   1266 	lvx	5,0,3
   1267 	addi	3,3,15
   1268 
   1269 
   1270 	srwi	9,9,1
   1271 	li	10,16
   1272 	subi	9,9,1
   1273 
   1274 	cmpldi	5,8
   1275 	bge	_aesp8_ctr32_encrypt8x
   1276 
   1277 	lvsr	8,0,4
   1278 	vspltisb	9,-1
   1279 	lvx	7,0,4
   1280 	vperm	9,0,9,8
   1281 
   1282 
   1283 	lvx	0,0,6
   1284 	mtctr	9
   1285 	lvx	1,10,6
   1286 	addi	10,10,16
   1287 	vperm	0,0,1,10
   1288 	vxor	2,4,0
   1289 	lvx	0,10,6
   1290 	addi	10,10,16
   1291 	b	.Loop_ctr32_enc
   1292 
   1293 .align	5
   1294 .Loop_ctr32_enc:
   1295 	vperm	1,1,0,10
   1296 .long	0x10420D08
   1297 	lvx	1,10,6
   1298 	addi	10,10,16
   1299 	vperm	0,0,1,10
   1300 .long	0x10420508
   1301 	lvx	0,10,6
   1302 	addi	10,10,16
   1303 	bc	16,0,.Loop_ctr32_enc
   1304 
   1305 	vadduwm	4,4,11
   1306 	vor	3,5,5
   1307 	lvx	5,0,3
   1308 	addi	3,3,16
   1309 	subic.	5,5,1
   1310 
   1311 	vperm	1,1,0,10
   1312 .long	0x10420D08
   1313 	lvx	1,10,6
   1314 	vperm	3,3,5,6
   1315 	li	10,16
   1316 	vperm	1,0,1,10
   1317 	lvx	0,0,6
   1318 	vxor	3,3,1
   1319 .long	0x10421D09
   1320 
   1321 	lvx	1,10,6
   1322 	addi	10,10,16
   1323 	vperm	2,2,2,8
   1324 	vsel	3,7,2,9
   1325 	mtctr	9
   1326 	vperm	0,0,1,10
   1327 	vor	7,2,2
   1328 	vxor	2,4,0
   1329 	lvx	0,10,6
   1330 	addi	10,10,16
   1331 	stvx	3,0,4
   1332 	addi	4,4,16
   1333 	bne	.Loop_ctr32_enc
   1334 
   1335 	addi	4,4,-1
   1336 	lvx	2,0,4
   1337 	vsel	2,7,2,9
   1338 	stvx	2,0,4
   1339 
   1340 	mtspr	256,12
   1341 	blr
   1342 .long	0
   1343 .byte	0,12,0x14,0,0,0,6,0
   1344 .long	0
   1345 .align	5
   1346 _aesp8_ctr32_encrypt8x:
   1347 	stdu	1,-448(1)
   1348 	li	10,207
   1349 	li	11,223
   1350 	stvx	20,10,1
   1351 	addi	10,10,32
   1352 	stvx	21,11,1
   1353 	addi	11,11,32
   1354 	stvx	22,10,1
   1355 	addi	10,10,32
   1356 	stvx	23,11,1
   1357 	addi	11,11,32
   1358 	stvx	24,10,1
   1359 	addi	10,10,32
   1360 	stvx	25,11,1
   1361 	addi	11,11,32
   1362 	stvx	26,10,1
   1363 	addi	10,10,32
   1364 	stvx	27,11,1
   1365 	addi	11,11,32
   1366 	stvx	28,10,1
   1367 	addi	10,10,32
   1368 	stvx	29,11,1
   1369 	addi	11,11,32
   1370 	stvx	30,10,1
   1371 	stvx	31,11,1
   1372 	li	0,-1
   1373 	stw	12,396(1)
   1374 	li	8,0x10
   1375 	std	26,400(1)
   1376 	li	26,0x20
   1377 	std	27,408(1)
   1378 	li	27,0x30
   1379 	std	28,416(1)
   1380 	li	28,0x40
   1381 	std	29,424(1)
   1382 	li	29,0x50
   1383 	std	30,432(1)
   1384 	li	30,0x60
   1385 	std	31,440(1)
   1386 	li	31,0x70
   1387 	mtspr	256,0
   1388 
   1389 	subi	9,9,3
   1390 
   1391 	lvx	23,0,6
   1392 	lvx	30,8,6
   1393 	addi	6,6,0x20
   1394 	lvx	31,0,6
   1395 	vperm	23,23,30,10
   1396 	addi	11,1,64+15
   1397 	mtctr	9
   1398 
   1399 .Load_ctr32_enc_key:
   1400 	vperm	24,30,31,10
   1401 	lvx	30,8,6
   1402 	addi	6,6,0x20
   1403 	stvx	24,0,11
   1404 	vperm	25,31,30,10
   1405 	lvx	31,0,6
   1406 	stvx	25,8,11
   1407 	addi	11,11,0x20
   1408 	bc	16,0,.Load_ctr32_enc_key
   1409 
   1410 	lvx	26,8,6
   1411 	vperm	24,30,31,10
   1412 	lvx	27,26,6
   1413 	stvx	24,0,11
   1414 	vperm	25,31,26,10
   1415 	lvx	28,27,6
   1416 	stvx	25,8,11
   1417 	addi	11,1,64+15
   1418 	vperm	26,26,27,10
   1419 	lvx	29,28,6
   1420 	vperm	27,27,28,10
   1421 	lvx	30,29,6
   1422 	vperm	28,28,29,10
   1423 	lvx	31,30,6
   1424 	vperm	29,29,30,10
   1425 	lvx	15,31,6
   1426 	vperm	30,30,31,10
   1427 	lvx	24,0,11
   1428 	vperm	31,31,15,10
   1429 	lvx	25,8,11
   1430 
   1431 	vadduwm	7,11,11
   1432 	subi	3,3,15
   1433 	sldi	5,5,4
   1434 
   1435 	vadduwm	16,4,11
   1436 	vadduwm	17,4,7
   1437 	vxor	15,4,23
   1438 
   1439 	vadduwm	18,16,7
   1440 	vxor	16,16,23
   1441 
   1442 	vadduwm	19,17,7
   1443 	vxor	17,17,23
   1444 
   1445 	vadduwm	20,18,7
   1446 	vxor	18,18,23
   1447 
   1448 	vadduwm	21,19,7
   1449 	vxor	19,19,23
   1450 	vadduwm	22,20,7
   1451 	vxor	20,20,23
   1452 	vadduwm	4,21,7
   1453 	vxor	21,21,23
   1454 	vxor	22,22,23
   1455 
   1456 	mtctr	9
   1457 	b	.Loop_ctr32_enc8x
   1458 .align	5
   1459 .Loop_ctr32_enc8x:
   1460 .long	0x11EFC508
   1461 .long	0x1210C508
   1462 .long	0x1231C508
   1463 .long	0x1252C508
   1464 .long	0x1273C508
   1465 .long	0x1294C508
   1466 .long	0x12B5C508
   1467 .long	0x12D6C508
   1468 .Loop_ctr32_enc8x_middle:
   1469 	lvx	24,26,11
   1470 	addi	11,11,0x20
   1471 
   1472 .long	0x11EFCD08
   1473 .long	0x1210CD08
   1474 .long	0x1231CD08
   1475 .long	0x1252CD08
   1476 .long	0x1273CD08
   1477 .long	0x1294CD08
   1478 .long	0x12B5CD08
   1479 .long	0x12D6CD08
   1480 	lvx	25,8,11
   1481 	bc	16,0,.Loop_ctr32_enc8x
   1482 
   1483 	subic	11,5,256
   1484 .long	0x11EFC508
   1485 .long	0x1210C508
   1486 .long	0x1231C508
   1487 .long	0x1252C508
   1488 .long	0x1273C508
   1489 .long	0x1294C508
   1490 .long	0x12B5C508
   1491 .long	0x12D6C508
   1492 
   1493 	subfe	0,0,0
   1494 .long	0x11EFCD08
   1495 .long	0x1210CD08
   1496 .long	0x1231CD08
   1497 .long	0x1252CD08
   1498 .long	0x1273CD08
   1499 .long	0x1294CD08
   1500 .long	0x12B5CD08
   1501 .long	0x12D6CD08
   1502 
   1503 	and	0,0,11
   1504 	addi	11,1,64+15
   1505 .long	0x11EFD508
   1506 .long	0x1210D508
   1507 .long	0x1231D508
   1508 .long	0x1252D508
   1509 .long	0x1273D508
   1510 .long	0x1294D508
   1511 .long	0x12B5D508
   1512 .long	0x12D6D508
   1513 	lvx	24,0,11
   1514 
   1515 	subic	5,5,129
   1516 .long	0x11EFDD08
   1517 	addi	5,5,1
   1518 .long	0x1210DD08
   1519 .long	0x1231DD08
   1520 .long	0x1252DD08
   1521 .long	0x1273DD08
   1522 .long	0x1294DD08
   1523 .long	0x12B5DD08
   1524 .long	0x12D6DD08
   1525 	lvx	25,8,11
   1526 
   1527 .long	0x11EFE508
   1528 .long	0x7C001E99
   1529 .long	0x1210E508
   1530 .long	0x7C281E99
   1531 .long	0x1231E508
   1532 .long	0x7C5A1E99
   1533 .long	0x1252E508
   1534 .long	0x7C7B1E99
   1535 .long	0x1273E508
   1536 .long	0x7D5C1E99
   1537 .long	0x1294E508
   1538 .long	0x7D9D1E99
   1539 .long	0x12B5E508
   1540 .long	0x7DBE1E99
   1541 .long	0x12D6E508
   1542 .long	0x7DDF1E99
   1543 	addi	3,3,0x80
   1544 
   1545 .long	0x11EFED08
   1546 
   1547 .long	0x1210ED08
   1548 
   1549 .long	0x1231ED08
   1550 
   1551 .long	0x1252ED08
   1552 
   1553 .long	0x1273ED08
   1554 
   1555 .long	0x1294ED08
   1556 
   1557 .long	0x12B5ED08
   1558 
   1559 .long	0x12D6ED08
   1560 
   1561 
   1562 	add	3,3,0
   1563 
   1564 
   1565 
   1566 	subfe.	0,0,0
   1567 .long	0x11EFF508
   1568 	vxor	0,0,31
   1569 .long	0x1210F508
   1570 	vxor	1,1,31
   1571 .long	0x1231F508
   1572 	vxor	2,2,31
   1573 .long	0x1252F508
   1574 	vxor	3,3,31
   1575 .long	0x1273F508
   1576 	vxor	10,10,31
   1577 .long	0x1294F508
   1578 	vxor	12,12,31
   1579 .long	0x12B5F508
   1580 	vxor	13,13,31
   1581 .long	0x12D6F508
   1582 	vxor	14,14,31
   1583 
   1584 	bne	.Lctr32_enc8x_break
   1585 
   1586 .long	0x100F0509
   1587 .long	0x10300D09
   1588 	vadduwm	16,4,11
   1589 .long	0x10511509
   1590 	vadduwm	17,4,7
   1591 	vxor	15,4,23
   1592 .long	0x10721D09
   1593 	vadduwm	18,16,7
   1594 	vxor	16,16,23
   1595 .long	0x11535509
   1596 	vadduwm	19,17,7
   1597 	vxor	17,17,23
   1598 .long	0x11946509
   1599 	vadduwm	20,18,7
   1600 	vxor	18,18,23
   1601 .long	0x11B56D09
   1602 	vadduwm	21,19,7
   1603 	vxor	19,19,23
   1604 .long	0x11D67509
   1605 	vadduwm	22,20,7
   1606 	vxor	20,20,23
   1607 
   1608 	vadduwm	4,21,7
   1609 	vxor	21,21,23
   1610 
   1611 	vxor	22,22,23
   1612 	mtctr	9
   1613 
   1614 .long	0x11EFC508
   1615 .long	0x7C002799
   1616 
   1617 .long	0x1210C508
   1618 .long	0x7C282799
   1619 
   1620 .long	0x1231C508
   1621 .long	0x7C5A2799
   1622 
   1623 .long	0x1252C508
   1624 .long	0x7C7B2799
   1625 
   1626 .long	0x1273C508
   1627 .long	0x7D5C2799
   1628 
   1629 .long	0x1294C508
   1630 .long	0x7D9D2799
   1631 
   1632 .long	0x12B5C508
   1633 .long	0x7DBE2799
   1634 .long	0x12D6C508
   1635 .long	0x7DDF2799
   1636 	addi	4,4,0x80
   1637 
   1638 	b	.Loop_ctr32_enc8x_middle
   1639 
   1640 .align	5
   1641 .Lctr32_enc8x_break:
   1642 	cmpwi	5,-0x60
   1643 	blt	.Lctr32_enc8x_one
   1644 	nop
   1645 	beq	.Lctr32_enc8x_two
   1646 	cmpwi	5,-0x40
   1647 	blt	.Lctr32_enc8x_three
   1648 	nop
   1649 	beq	.Lctr32_enc8x_four
   1650 	cmpwi	5,-0x20
   1651 	blt	.Lctr32_enc8x_five
   1652 	nop
   1653 	beq	.Lctr32_enc8x_six
   1654 	cmpwi	5,0x00
   1655 	blt	.Lctr32_enc8x_seven
   1656 
   1657 .Lctr32_enc8x_eight:
   1658 .long	0x11EF0509
   1659 .long	0x12100D09
   1660 .long	0x12311509
   1661 .long	0x12521D09
   1662 .long	0x12735509
   1663 .long	0x12946509
   1664 .long	0x12B56D09
   1665 .long	0x12D67509
   1666 
   1667 
   1668 
   1669 .long	0x7DE02799
   1670 
   1671 .long	0x7E082799
   1672 
   1673 .long	0x7E3A2799
   1674 
   1675 .long	0x7E5B2799
   1676 
   1677 .long	0x7E7C2799
   1678 
   1679 .long	0x7E9D2799
   1680 
   1681 .long	0x7EBE2799
   1682 .long	0x7EDF2799
   1683 	addi	4,4,0x80
   1684 	b	.Lctr32_enc8x_done
   1685 
   1686 .align	5
   1687 .Lctr32_enc8x_seven:
   1688 .long	0x11EF0D09
   1689 .long	0x12101509
   1690 .long	0x12311D09
   1691 .long	0x12525509
   1692 .long	0x12736509
   1693 .long	0x12946D09
   1694 .long	0x12B57509
   1695 
   1696 
   1697 
   1698 .long	0x7DE02799
   1699 
   1700 .long	0x7E082799
   1701 
   1702 .long	0x7E3A2799
   1703 
   1704 .long	0x7E5B2799
   1705 
   1706 .long	0x7E7C2799
   1707 
   1708 .long	0x7E9D2799
   1709 .long	0x7EBE2799
   1710 	addi	4,4,0x70
   1711 	b	.Lctr32_enc8x_done
   1712 
   1713 .align	5
   1714 .Lctr32_enc8x_six:
   1715 .long	0x11EF1509
   1716 .long	0x12101D09
   1717 .long	0x12315509
   1718 .long	0x12526509
   1719 .long	0x12736D09
   1720 .long	0x12947509
   1721 
   1722 
   1723 
   1724 .long	0x7DE02799
   1725 
   1726 .long	0x7E082799
   1727 
   1728 .long	0x7E3A2799
   1729 
   1730 .long	0x7E5B2799
   1731 
   1732 .long	0x7E7C2799
   1733 .long	0x7E9D2799
   1734 	addi	4,4,0x60
   1735 	b	.Lctr32_enc8x_done
   1736 
   1737 .align	5
   1738 .Lctr32_enc8x_five:
   1739 .long	0x11EF1D09
   1740 .long	0x12105509
   1741 .long	0x12316509
   1742 .long	0x12526D09
   1743 .long	0x12737509
   1744 
   1745 
   1746 
   1747 .long	0x7DE02799
   1748 
   1749 .long	0x7E082799
   1750 
   1751 .long	0x7E3A2799
   1752 
   1753 .long	0x7E5B2799
   1754 .long	0x7E7C2799
   1755 	addi	4,4,0x50
   1756 	b	.Lctr32_enc8x_done
   1757 
   1758 .align	5
   1759 .Lctr32_enc8x_four:
   1760 .long	0x11EF5509
   1761 .long	0x12106509
   1762 .long	0x12316D09
   1763 .long	0x12527509
   1764 
   1765 
   1766 
   1767 .long	0x7DE02799
   1768 
   1769 .long	0x7E082799
   1770 
   1771 .long	0x7E3A2799
   1772 .long	0x7E5B2799
   1773 	addi	4,4,0x40
   1774 	b	.Lctr32_enc8x_done
   1775 
   1776 .align	5
   1777 .Lctr32_enc8x_three:
   1778 .long	0x11EF6509
   1779 .long	0x12106D09
   1780 .long	0x12317509
   1781 
   1782 
   1783 
   1784 .long	0x7DE02799
   1785 
   1786 .long	0x7E082799
   1787 .long	0x7E3A2799
   1788 	addi	4,4,0x30
   1789 	b	.Lctr32_enc8x_done
   1790 
   1791 .align	5
   1792 .Lctr32_enc8x_two:
   1793 .long	0x11EF6D09
   1794 .long	0x12107509
   1795 
   1796 
   1797 
   1798 .long	0x7DE02799
   1799 .long	0x7E082799
   1800 	addi	4,4,0x20
   1801 	b	.Lctr32_enc8x_done
   1802 
   1803 .align	5
   1804 .Lctr32_enc8x_one:
   1805 .long	0x11EF7509
   1806 
   1807 
   1808 .long	0x7DE02799
   1809 	addi	4,4,0x10
   1810 
   1811 .Lctr32_enc8x_done:
   1812 	li	10,79
   1813 	li	11,95
   1814 	stvx	6,10,1
   1815 	addi	10,10,32
   1816 	stvx	6,11,1
   1817 	addi	11,11,32
   1818 	stvx	6,10,1
   1819 	addi	10,10,32
   1820 	stvx	6,11,1
   1821 	addi	11,11,32
   1822 	stvx	6,10,1
   1823 	addi	10,10,32
   1824 	stvx	6,11,1
   1825 	addi	11,11,32
   1826 	stvx	6,10,1
   1827 	addi	10,10,32
   1828 	stvx	6,11,1
   1829 	addi	11,11,32
   1830 
   1831 	mtspr	256,12
   1832 	lvx	20,10,1
   1833 	addi	10,10,32
   1834 	lvx	21,11,1
   1835 	addi	11,11,32
   1836 	lvx	22,10,1
   1837 	addi	10,10,32
   1838 	lvx	23,11,1
   1839 	addi	11,11,32
   1840 	lvx	24,10,1
   1841 	addi	10,10,32
   1842 	lvx	25,11,1
   1843 	addi	11,11,32
   1844 	lvx	26,10,1
   1845 	addi	10,10,32
   1846 	lvx	27,11,1
   1847 	addi	11,11,32
   1848 	lvx	28,10,1
   1849 	addi	10,10,32
   1850 	lvx	29,11,1
   1851 	addi	11,11,32
   1852 	lvx	30,10,1
   1853 	lvx	31,11,1
   1854 	ld	26,400(1)
   1855 	ld	27,408(1)
   1856 	ld	28,416(1)
   1857 	ld	29,424(1)
   1858 	ld	30,432(1)
   1859 	ld	31,440(1)
   1860 	addi	1,1,448
   1861 	blr
   1862 .long	0
   1863 .byte	0,12,0x04,0,0x80,6,6,0
   1864 .long	0
   1865 
   1866 .globl	aes_p8_xts_encrypt
   1867 .type	aes_p8_xts_encrypt,@function
   1868 .section	".opd","aw"
   1869 .align	3
   1870 aes_p8_xts_encrypt:
   1871 .quad	.aes_p8_xts_encrypt,.TOC.@tocbase,0
   1872 .previous
   1873 .align	5
   1874 .aes_p8_xts_encrypt:
   1875 	mr	10,3
   1876 	li	3,-1
   1877 	cmpldi	5,16
   1878 	bltlr
   1879 
   1880 	lis	0,0xfff0
   1881 	mfspr	12,256
   1882 	li	11,0
   1883 	mtspr	256,0
   1884 
   1885 	vspltisb	9,0x07
   1886 
   1887 
   1888 
   1889 
   1890 	li	3,15
   1891 	lvx	8,0,8
   1892 	lvsl	5,0,8
   1893 	lvx	4,3,8
   1894 
   1895 	vperm	8,8,4,5
   1896 
   1897 	neg	11,10
   1898 	lvsr	5,0,11
   1899 	lvx	2,0,10
   1900 	addi	10,10,15
   1901 
   1902 
   1903 	cmpldi	7,0
   1904 	beq	.Lxts_enc_no_key2
   1905 
   1906 	lvsl	7,0,7
   1907 	lwz	9,240(7)
   1908 	srwi	9,9,1
   1909 	subi	9,9,1
   1910 	li	3,16
   1911 
   1912 	lvx	0,0,7
   1913 	lvx	1,3,7
   1914 	addi	3,3,16
   1915 	vperm	0,0,1,7
   1916 	vxor	8,8,0
   1917 	lvx	0,3,7
   1918 	addi	3,3,16
   1919 	mtctr	9
   1920 
   1921 .Ltweak_xts_enc:
   1922 	vperm	1,1,0,7
   1923 .long	0x11080D08
   1924 	lvx	1,3,7
   1925 	addi	3,3,16
   1926 	vperm	0,0,1,7
   1927 .long	0x11080508
   1928 	lvx	0,3,7
   1929 	addi	3,3,16
   1930 	bc	16,0,.Ltweak_xts_enc
   1931 
   1932 	vperm	1,1,0,7
   1933 .long	0x11080D08
   1934 	lvx	1,3,7
   1935 	vperm	0,0,1,7
   1936 .long	0x11080509
   1937 
   1938 	li	8,0
   1939 	b	.Lxts_enc
   1940 
   1941 .Lxts_enc_no_key2:
   1942 	li	3,-16
   1943 	and	5,5,3
   1944 
   1945 
   1946 .Lxts_enc:
   1947 	lvx	4,0,10
   1948 	addi	10,10,16
   1949 
   1950 	lvsl	7,0,6
   1951 	lwz	9,240(6)
   1952 	srwi	9,9,1
   1953 	subi	9,9,1
   1954 	li	3,16
   1955 
   1956 	vslb	10,9,9
   1957 	vor	10,10,9
   1958 	vspltisb	11,1
   1959 	vsldoi	10,10,11,15
   1960 
   1961 	cmpldi	5,96
   1962 	bge	_aesp8_xts_encrypt6x
   1963 
   1964 	andi.	7,5,15
   1965 	subic	0,5,32
   1966 	subi	7,7,16
   1967 	subfe	0,0,0
   1968 	and	0,0,7
   1969 	add	10,10,0
   1970 
   1971 	lvx	0,0,6
   1972 	lvx	1,3,6
   1973 	addi	3,3,16
   1974 	vperm	2,2,4,5
   1975 	vperm	0,0,1,7
   1976 	vxor	2,2,8
   1977 	vxor	2,2,0
   1978 	lvx	0,3,6
   1979 	addi	3,3,16
   1980 	mtctr	9
   1981 	b	.Loop_xts_enc
   1982 
   1983 .align	5
   1984 .Loop_xts_enc:
   1985 	vperm	1,1,0,7
   1986 .long	0x10420D08
   1987 	lvx	1,3,6
   1988 	addi	3,3,16
   1989 	vperm	0,0,1,7
   1990 .long	0x10420508
   1991 	lvx	0,3,6
   1992 	addi	3,3,16
   1993 	bc	16,0,.Loop_xts_enc
   1994 
   1995 	vperm	1,1,0,7
   1996 .long	0x10420D08
   1997 	lvx	1,3,6
   1998 	li	3,16
   1999 	vperm	0,0,1,7
   2000 	vxor	0,0,8
   2001 .long	0x10620509
   2002 
   2003 
   2004 	nop
   2005 
   2006 .long	0x7C602799
   2007 	addi	4,4,16
   2008 
   2009 	subic.	5,5,16
   2010 	beq	.Lxts_enc_done
   2011 
   2012 	vor	2,4,4
   2013 	lvx	4,0,10
   2014 	addi	10,10,16
   2015 	lvx	0,0,6
   2016 	lvx	1,3,6
   2017 	addi	3,3,16
   2018 
   2019 	subic	0,5,32
   2020 	subfe	0,0,0
   2021 	and	0,0,7
   2022 	add	10,10,0
   2023 
   2024 	vsrab	11,8,9
   2025 	vaddubm	8,8,8
   2026 	vsldoi	11,11,11,15
   2027 	vand	11,11,10
   2028 	vxor	8,8,11
   2029 
   2030 	vperm	2,2,4,5
   2031 	vperm	0,0,1,7
   2032 	vxor	2,2,8
   2033 	vxor	3,3,0
   2034 	vxor	2,2,0
   2035 	lvx	0,3,6
   2036 	addi	3,3,16
   2037 
   2038 	mtctr	9
   2039 	cmpldi	5,16
   2040 	bge	.Loop_xts_enc
   2041 
   2042 	vxor	3,3,8
   2043 	lvsr	5,0,5
   2044 	vxor	4,4,4
   2045 	vspltisb	11,-1
   2046 	vperm	4,4,11,5
   2047 	vsel	2,2,3,4
   2048 
   2049 	subi	11,4,17
   2050 	subi	4,4,16
   2051 	mtctr	5
   2052 	li	5,16
   2053 .Loop_xts_enc_steal:
   2054 	lbzu	0,1(11)
   2055 	stb	0,16(11)
   2056 	bc	16,0,.Loop_xts_enc_steal
   2057 
   2058 	mtctr	9
   2059 	b	.Loop_xts_enc
   2060 
   2061 .Lxts_enc_done:
   2062 	cmpldi	8,0
   2063 	beq	.Lxts_enc_ret
   2064 
   2065 	vsrab	11,8,9
   2066 	vaddubm	8,8,8
   2067 	vsldoi	11,11,11,15
   2068 	vand	11,11,10
   2069 	vxor	8,8,11
   2070 
   2071 
   2072 .long	0x7D004799
   2073 
   2074 .Lxts_enc_ret:
   2075 	mtspr	256,12
   2076 	li	3,0
   2077 	blr
   2078 .long	0
   2079 .byte	0,12,0x04,0,0x80,6,6,0
   2080 .long	0
   2081 
   2082 
   2083 .globl	aes_p8_xts_decrypt
   2084 .type	aes_p8_xts_decrypt,@function
   2085 .section	".opd","aw"
   2086 .align	3
   2087 aes_p8_xts_decrypt:
   2088 .quad	.aes_p8_xts_decrypt,.TOC.@tocbase,0
   2089 .previous
   2090 .align	5
   2091 .aes_p8_xts_decrypt:
   2092 	mr	10,3
   2093 	li	3,-1
   2094 	cmpldi	5,16
   2095 	bltlr
   2096 
   2097 	lis	0,0xfff8
   2098 	mfspr	12,256
   2099 	li	11,0
   2100 	mtspr	256,0
   2101 
   2102 	andi.	0,5,15
   2103 	neg	0,0
   2104 	andi.	0,0,16
   2105 	sub	5,5,0
   2106 
   2107 	vspltisb	9,0x07
   2108 
   2109 
   2110 
   2111 
   2112 	li	3,15
   2113 	lvx	8,0,8
   2114 	lvsl	5,0,8
   2115 	lvx	4,3,8
   2116 
   2117 	vperm	8,8,4,5
   2118 
   2119 	neg	11,10
   2120 	lvsr	5,0,11
   2121 	lvx	2,0,10
   2122 	addi	10,10,15
   2123 
   2124 
   2125 	cmpldi	7,0
   2126 	beq	.Lxts_dec_no_key2
   2127 
   2128 	lvsl	7,0,7
   2129 	lwz	9,240(7)
   2130 	srwi	9,9,1
   2131 	subi	9,9,1
   2132 	li	3,16
   2133 
   2134 	lvx	0,0,7
   2135 	lvx	1,3,7
   2136 	addi	3,3,16
   2137 	vperm	0,0,1,7
   2138 	vxor	8,8,0
   2139 	lvx	0,3,7
   2140 	addi	3,3,16
   2141 	mtctr	9
   2142 
   2143 .Ltweak_xts_dec:
   2144 	vperm	1,1,0,7
   2145 .long	0x11080D08
   2146 	lvx	1,3,7
   2147 	addi	3,3,16
   2148 	vperm	0,0,1,7
   2149 .long	0x11080508
   2150 	lvx	0,3,7
   2151 	addi	3,3,16
   2152 	bc	16,0,.Ltweak_xts_dec
   2153 
   2154 	vperm	1,1,0,7
   2155 .long	0x11080D08
   2156 	lvx	1,3,7
   2157 	vperm	0,0,1,7
   2158 .long	0x11080509
   2159 
   2160 	li	8,0
   2161 	b	.Lxts_dec
   2162 
   2163 .Lxts_dec_no_key2:
   2164 	neg	3,5
   2165 	andi.	3,3,15
   2166 	add	5,5,3
   2167 
   2168 
   2169 .Lxts_dec:
   2170 	lvx	4,0,10
   2171 	addi	10,10,16
   2172 
   2173 	lvsl	7,0,6
   2174 	lwz	9,240(6)
   2175 	srwi	9,9,1
   2176 	subi	9,9,1
   2177 	li	3,16
   2178 
   2179 	vslb	10,9,9
   2180 	vor	10,10,9
   2181 	vspltisb	11,1
   2182 	vsldoi	10,10,11,15
   2183 
   2184 	cmpldi	5,96
   2185 	bge	_aesp8_xts_decrypt6x
   2186 
   2187 	lvx	0,0,6
   2188 	lvx	1,3,6
   2189 	addi	3,3,16
   2190 	vperm	2,2,4,5
   2191 	vperm	0,0,1,7
   2192 	vxor	2,2,8
   2193 	vxor	2,2,0
   2194 	lvx	0,3,6
   2195 	addi	3,3,16
   2196 	mtctr	9
   2197 
   2198 	cmpldi	5,16
   2199 	blt	.Ltail_xts_dec
   2200 	b	.Loop_xts_dec
   2201 
   2202 .align	5
   2203 .Loop_xts_dec:
   2204 	vperm	1,1,0,7
   2205 .long	0x10420D48
   2206 	lvx	1,3,6
   2207 	addi	3,3,16
   2208 	vperm	0,0,1,7
   2209 .long	0x10420548
   2210 	lvx	0,3,6
   2211 	addi	3,3,16
   2212 	bc	16,0,.Loop_xts_dec
   2213 
   2214 	vperm	1,1,0,7
   2215 .long	0x10420D48
   2216 	lvx	1,3,6
   2217 	li	3,16
   2218 	vperm	0,0,1,7
   2219 	vxor	0,0,8
   2220 .long	0x10620549
   2221 
   2222 
   2223 	nop
   2224 
   2225 .long	0x7C602799
   2226 	addi	4,4,16
   2227 
   2228 	subic.	5,5,16
   2229 	beq	.Lxts_dec_done
   2230 
   2231 	vor	2,4,4
   2232 	lvx	4,0,10
   2233 	addi	10,10,16
   2234 	lvx	0,0,6
   2235 	lvx	1,3,6
   2236 	addi	3,3,16
   2237 
   2238 	vsrab	11,8,9
   2239 	vaddubm	8,8,8
   2240 	vsldoi	11,11,11,15
   2241 	vand	11,11,10
   2242 	vxor	8,8,11
   2243 
   2244 	vperm	2,2,4,5
   2245 	vperm	0,0,1,7
   2246 	vxor	2,2,8
   2247 	vxor	2,2,0
   2248 	lvx	0,3,6
   2249 	addi	3,3,16
   2250 
   2251 	mtctr	9
   2252 	cmpldi	5,16
   2253 	bge	.Loop_xts_dec
   2254 
   2255 .Ltail_xts_dec:
   2256 	vsrab	11,8,9
   2257 	vaddubm	12,8,8
   2258 	vsldoi	11,11,11,15
   2259 	vand	11,11,10
   2260 	vxor	12,12,11
   2261 
   2262 	subi	10,10,16
   2263 	add	10,10,5
   2264 
   2265 	vxor	2,2,8
   2266 	vxor	2,2,12
   2267 
   2268 .Loop_xts_dec_short:
   2269 	vperm	1,1,0,7
   2270 .long	0x10420D48
   2271 	lvx	1,3,6
   2272 	addi	3,3,16
   2273 	vperm	0,0,1,7
   2274 .long	0x10420548
   2275 	lvx	0,3,6
   2276 	addi	3,3,16
   2277 	bc	16,0,.Loop_xts_dec_short
   2278 
   2279 	vperm	1,1,0,7
   2280 .long	0x10420D48
   2281 	lvx	1,3,6
   2282 	li	3,16
   2283 	vperm	0,0,1,7
   2284 	vxor	0,0,12
   2285 .long	0x10620549
   2286 
   2287 
   2288 	nop
   2289 
   2290 .long	0x7C602799
   2291 
   2292 	vor	2,4,4
   2293 	lvx	4,0,10
   2294 
   2295 	lvx	0,0,6
   2296 	lvx	1,3,6
   2297 	addi	3,3,16
   2298 	vperm	2,2,4,5
   2299 	vperm	0,0,1,7
   2300 
   2301 	lvsr	5,0,5
   2302 	vxor	4,4,4
   2303 	vspltisb	11,-1
   2304 	vperm	4,4,11,5
   2305 	vsel	2,2,3,4
   2306 
   2307 	vxor	0,0,8
   2308 	vxor	2,2,0
   2309 	lvx	0,3,6
   2310 	addi	3,3,16
   2311 
   2312 	subi	11,4,1
   2313 	mtctr	5
   2314 	li	5,16
   2315 .Loop_xts_dec_steal:
   2316 	lbzu	0,1(11)
   2317 	stb	0,16(11)
   2318 	bc	16,0,.Loop_xts_dec_steal
   2319 
   2320 	mtctr	9
   2321 	b	.Loop_xts_dec
   2322 
   2323 .Lxts_dec_done:
   2324 	cmpldi	8,0
   2325 	beq	.Lxts_dec_ret
   2326 
   2327 	vsrab	11,8,9
   2328 	vaddubm	8,8,8
   2329 	vsldoi	11,11,11,15
   2330 	vand	11,11,10
   2331 	vxor	8,8,11
   2332 
   2333 
   2334 .long	0x7D004799
   2335 
   2336 .Lxts_dec_ret:
   2337 	mtspr	256,12
   2338 	li	3,0
   2339 	blr
   2340 .long	0
   2341 .byte	0,12,0x04,0,0x80,6,6,0
   2342 .long	0
   2343 
   2344 .align	5
   2345 _aesp8_xts_encrypt6x:
   2346 	stdu	1,-448(1)
   2347 	mflr	11
   2348 	li	7,207
   2349 	li	3,223
   2350 	std	11,464(1)
   2351 	stvx	20,7,1
   2352 	addi	7,7,32
   2353 	stvx	21,3,1
   2354 	addi	3,3,32
   2355 	stvx	22,7,1
   2356 	addi	7,7,32
   2357 	stvx	23,3,1
   2358 	addi	3,3,32
   2359 	stvx	24,7,1
   2360 	addi	7,7,32
   2361 	stvx	25,3,1
   2362 	addi	3,3,32
   2363 	stvx	26,7,1
   2364 	addi	7,7,32
   2365 	stvx	27,3,1
   2366 	addi	3,3,32
   2367 	stvx	28,7,1
   2368 	addi	7,7,32
   2369 	stvx	29,3,1
   2370 	addi	3,3,32
   2371 	stvx	30,7,1
   2372 	stvx	31,3,1
   2373 	li	0,-1
   2374 	stw	12,396(1)
   2375 	li	3,0x10
   2376 	std	26,400(1)
   2377 	li	26,0x20
   2378 	std	27,408(1)
   2379 	li	27,0x30
   2380 	std	28,416(1)
   2381 	li	28,0x40
   2382 	std	29,424(1)
   2383 	li	29,0x50
   2384 	std	30,432(1)
   2385 	li	30,0x60
   2386 	std	31,440(1)
   2387 	li	31,0x70
   2388 	mtspr	256,0
   2389 
   2390 
   2391 	xxlor	2, 32+10, 32+10
   2392 	vsldoi	10,11,10,1
   2393 	xxlor	1, 32+10, 32+10
   2394 
   2395 
   2396 	mr	31, 6
   2397 	bl	.Lconsts
   2398 	lxvw4x	0, 28, 6
   2399 	mr	6, 31
   2400 	li	31,0x70
   2401 
   2402 	subi	9,9,3
   2403 
   2404 	lvx	23,0,6
   2405 	lvx	30,3,6
   2406 	addi	6,6,0x20
   2407 	lvx	31,0,6
   2408 	vperm	23,23,30,7
   2409 	addi	7,1,64+15
   2410 	mtctr	9
   2411 
   2412 .Load_xts_enc_key:
   2413 	vperm	24,30,31,7
   2414 	lvx	30,3,6
   2415 	addi	6,6,0x20
   2416 	stvx	24,0,7
   2417 	vperm	25,31,30,7
   2418 	lvx	31,0,6
   2419 	stvx	25,3,7
   2420 	addi	7,7,0x20
   2421 	bc	16,0,.Load_xts_enc_key
   2422 
   2423 	lvx	26,3,6
   2424 	vperm	24,30,31,7
   2425 	lvx	27,26,6
   2426 	stvx	24,0,7
   2427 	vperm	25,31,26,7
   2428 	lvx	28,27,6
   2429 	stvx	25,3,7
   2430 	addi	7,1,64+15
   2431 	vperm	26,26,27,7
   2432 	lvx	29,28,6
   2433 	vperm	27,27,28,7
   2434 	lvx	30,29,6
   2435 	vperm	28,28,29,7
   2436 	lvx	31,30,6
   2437 	vperm	29,29,30,7
   2438 	lvx	22,31,6
   2439 	vperm	30,30,31,7
   2440 	lvx	24,0,7
   2441 	vperm	31,31,22,7
   2442 	lvx	25,3,7
   2443 
   2444 
   2445 
   2446 
   2447 
   2448 
   2449 
   2450 
   2451 
   2452 	vperm	0,2,4,5
   2453 	subi	10,10,31
   2454 	vxor	17,8,23
   2455 	vsrab	11,8,9
   2456 	vaddubm	8,8,8
   2457 	vand	11,11,10
   2458 	vxor	7,0,17
   2459 	xxlor	32+1, 0, 0
   2460 	vpermxor	8, 8, 11, 1
   2461 
   2462 .long	0x7C235699
   2463 	vxor	18,8,23
   2464 	vsrab	11,8,9
   2465 	vaddubm	8,8,8
   2466 
   2467 	vand	11,11,10
   2468 	vxor	12,1,18
   2469 	xxlor	32+2, 0, 0
   2470 	vpermxor	8, 8, 11, 2
   2471 
   2472 .long	0x7C5A5699
   2473 	andi.	31,5,15
   2474 	vxor	19,8,23
   2475 	vsrab	11,8,9
   2476 	vaddubm	8,8,8
   2477 
   2478 	vand	11,11,10
   2479 	vxor	13,2,19
   2480 	xxlor	32+3, 0, 0
   2481 	vpermxor	8, 8, 11, 3
   2482 
   2483 .long	0x7C7B5699
   2484 	sub	5,5,31
   2485 	vxor	20,8,23
   2486 	vsrab	11,8,9
   2487 	vaddubm	8,8,8
   2488 
   2489 	vand	11,11,10
   2490 	vxor	14,3,20
   2491 	xxlor	32+4, 0, 0
   2492 	vpermxor	8, 8, 11, 4
   2493 
   2494 .long	0x7C9C5699
   2495 	subi	5,5,0x60
   2496 	vxor	21,8,23
   2497 	vsrab	11,8,9
   2498 	vaddubm	8,8,8
   2499 
   2500 	vand	11,11,10
   2501 	vxor	15,4,21
   2502 	xxlor	32+5, 0, 0
   2503 	vpermxor	8, 8, 11, 5
   2504 
   2505 .long	0x7CBD5699
   2506 	addi	10,10,0x60
   2507 	vxor	22,8,23
   2508 	vsrab	11,8,9
   2509 	vaddubm	8,8,8
   2510 
   2511 	vand	11,11,10
   2512 	vxor	16,5,22
   2513 	xxlor	32+0, 0, 0
   2514 	vpermxor	8, 8, 11, 0
   2515 
   2516 	vxor	31,31,23
   2517 	mtctr	9
   2518 	b	.Loop_xts_enc6x
   2519 
   2520 .align	5
   2521 .Loop_xts_enc6x:
   2522 .long	0x10E7C508
   2523 .long	0x118CC508
   2524 .long	0x11ADC508
   2525 .long	0x11CEC508
   2526 .long	0x11EFC508
   2527 .long	0x1210C508
   2528 	lvx	24,26,7
   2529 	addi	7,7,0x20
   2530 
   2531 .long	0x10E7CD08
   2532 .long	0x118CCD08
   2533 .long	0x11ADCD08
   2534 .long	0x11CECD08
   2535 .long	0x11EFCD08
   2536 .long	0x1210CD08
   2537 	lvx	25,3,7
   2538 	bc	16,0,.Loop_xts_enc6x
   2539 
   2540 	xxlor	32+10, 1, 1
   2541 
   2542 	subic	5,5,96
   2543 	vxor	0,17,31
   2544 .long	0x10E7C508
   2545 .long	0x118CC508
   2546 	vsrab	11,8,9
   2547 	vxor	17,8,23
   2548 	vaddubm	8,8,8
   2549 .long	0x11ADC508
   2550 .long	0x11CEC508
   2551 .long	0x11EFC508
   2552 .long	0x1210C508
   2553 
   2554 	subfe.	0,0,0
   2555 	vand	11,11,10
   2556 .long	0x10E7CD08
   2557 .long	0x118CCD08
   2558 	xxlor	32+1, 0, 0
   2559 	vpermxor	8, 8, 11, 1
   2560 .long	0x11ADCD08
   2561 .long	0x11CECD08
   2562 	vxor	1,18,31
   2563 	vsrab	11,8,9
   2564 	vxor	18,8,23
   2565 .long	0x11EFCD08
   2566 .long	0x1210CD08
   2567 
   2568 	and	0,0,5
   2569 	vaddubm	8,8,8
   2570 .long	0x10E7D508
   2571 .long	0x118CD508
   2572 	vand	11,11,10
   2573 .long	0x11ADD508
   2574 .long	0x11CED508
   2575 	xxlor	32+2, 0, 0
   2576 	vpermxor	8, 8, 11, 2
   2577 .long	0x11EFD508
   2578 .long	0x1210D508
   2579 
   2580 	add	10,10,0
   2581 
   2582 
   2583 
   2584 	vxor	2,19,31
   2585 	vsrab	11,8,9
   2586 	vxor	19,8,23
   2587 	vaddubm	8,8,8
   2588 .long	0x10E7DD08
   2589 .long	0x118CDD08
   2590 .long	0x11ADDD08
   2591 .long	0x11CEDD08
   2592 	vand	11,11,10
   2593 .long	0x11EFDD08
   2594 .long	0x1210DD08
   2595 
   2596 	addi	7,1,64+15
   2597 	xxlor	32+3, 0, 0
   2598 	vpermxor	8, 8, 11, 3
   2599 .long	0x10E7E508
   2600 .long	0x118CE508
   2601 	vxor	3,20,31
   2602 	vsrab	11,8,9
   2603 	vxor	20,8,23
   2604 .long	0x11ADE508
   2605 .long	0x11CEE508
   2606 	vaddubm	8,8,8
   2607 .long	0x11EFE508
   2608 .long	0x1210E508
   2609 	lvx	24,0,7
   2610 	vand	11,11,10
   2611 
   2612 .long	0x10E7ED08
   2613 .long	0x118CED08
   2614 	xxlor	32+4, 0, 0
   2615 	vpermxor	8, 8, 11, 4
   2616 .long	0x11ADED08
   2617 .long	0x11CEED08
   2618 	vxor	4,21,31
   2619 	vsrab	11,8,9
   2620 	vxor	21,8,23
   2621 .long	0x11EFED08
   2622 .long	0x1210ED08
   2623 	lvx	25,3,7
   2624 	vaddubm	8,8,8
   2625 
   2626 .long	0x10E7F508
   2627 .long	0x118CF508
   2628 	vand	11,11,10
   2629 .long	0x11ADF508
   2630 .long	0x11CEF508
   2631 	xxlor	32+5, 0, 0
   2632 	vpermxor	8, 8, 11, 5
   2633 .long	0x11EFF508
   2634 .long	0x1210F508
   2635 	vxor	5,22,31
   2636 	vsrab	11,8,9
   2637 	vxor	22,8,23
   2638 
   2639 .long	0x10E70509
   2640 .long	0x7C005699
   2641 	vaddubm	8,8,8
   2642 .long	0x118C0D09
   2643 .long	0x7C235699
   2644 .long	0x11AD1509
   2645 
   2646 .long	0x7C5A5699
   2647 	vand	11,11,10
   2648 .long	0x11CE1D09
   2649 
   2650 .long	0x7C7B5699
   2651 .long	0x11EF2509
   2652 
   2653 .long	0x7C9C5699
   2654 	xxlor	10, 32+0, 32+0
   2655 	xxlor	32+0, 0, 0
   2656 	vpermxor	8, 8, 11, 0
   2657 	xxlor	32+0, 10, 10
   2658 .long	0x11702D09
   2659 
   2660 
   2661 .long	0x7CBD5699
   2662 	addi	10,10,0x60
   2663 
   2664 
   2665 
   2666 
   2667 
   2668 .long	0x7CE02799
   2669 	vxor	7,0,17
   2670 
   2671 .long	0x7D832799
   2672 	vxor	12,1,18
   2673 
   2674 .long	0x7DBA2799
   2675 	vxor	13,2,19
   2676 
   2677 .long	0x7DDB2799
   2678 	vxor	14,3,20
   2679 
   2680 .long	0x7DFC2799
   2681 	vxor	15,4,21
   2682 
   2683 .long	0x7D7D2799
   2684 	vxor	16,5,22
   2685 	addi	4,4,0x60
   2686 
   2687 	mtctr	9
   2688 	beq	.Loop_xts_enc6x
   2689 
   2690 	xxlor	32+10, 2, 2
   2691 
   2692 	addic.	5,5,0x60
   2693 	beq	.Lxts_enc6x_zero
   2694 	cmpwi	5,0x20
   2695 	blt	.Lxts_enc6x_one
   2696 	nop
   2697 	beq	.Lxts_enc6x_two
   2698 	cmpwi	5,0x40
   2699 	blt	.Lxts_enc6x_three
   2700 	nop
   2701 	beq	.Lxts_enc6x_four
   2702 
   2703 .Lxts_enc6x_five:
   2704 	vxor	7,1,17
   2705 	vxor	12,2,18
   2706 	vxor	13,3,19
   2707 	vxor	14,4,20
   2708 	vxor	15,5,21
   2709 
   2710 	bl	_aesp8_xts_enc5x
   2711 
   2712 
   2713 	vor	17,22,22
   2714 
   2715 .long	0x7CE02799
   2716 
   2717 .long	0x7D832799
   2718 
   2719 .long	0x7DBA2799
   2720 	vxor	11,15,22
   2721 
   2722 .long	0x7DDB2799
   2723 .long	0x7DFC2799
   2724 	addi	4,4,0x50
   2725 	bne	.Lxts_enc6x_steal
   2726 	b	.Lxts_enc6x_done
   2727 
   2728 .align	4
   2729 .Lxts_enc6x_four:
   2730 	vxor	7,2,17
   2731 	vxor	12,3,18
   2732 	vxor	13,4,19
   2733 	vxor	14,5,20
   2734 	vxor	15,15,15
   2735 
   2736 	bl	_aesp8_xts_enc5x
   2737 
   2738 
   2739 	vor	17,21,21
   2740 
   2741 .long	0x7CE02799
   2742 
   2743 .long	0x7D832799
   2744 	vxor	11,14,21
   2745 
   2746 .long	0x7DBA2799
   2747 .long	0x7DDB2799
   2748 	addi	4,4,0x40
   2749 	bne	.Lxts_enc6x_steal
   2750 	b	.Lxts_enc6x_done
   2751 
   2752 .align	4
   2753 .Lxts_enc6x_three:
   2754 	vxor	7,3,17
   2755 	vxor	12,4,18
   2756 	vxor	13,5,19
   2757 	vxor	14,14,14
   2758 	vxor	15,15,15
   2759 
   2760 	bl	_aesp8_xts_enc5x
   2761 
   2762 
   2763 	vor	17,20,20
   2764 
   2765 .long	0x7CE02799
   2766 	vxor	11,13,20
   2767 
   2768 .long	0x7D832799
   2769 .long	0x7DBA2799
   2770 	addi	4,4,0x30
   2771 	bne	.Lxts_enc6x_steal
   2772 	b	.Lxts_enc6x_done
   2773 
   2774 .align	4
   2775 .Lxts_enc6x_two:
   2776 	vxor	7,4,17
   2777 	vxor	12,5,18
   2778 	vxor	13,13,13
   2779 	vxor	14,14,14
   2780 	vxor	15,15,15
   2781 
   2782 	bl	_aesp8_xts_enc5x
   2783 
   2784 
   2785 	vor	17,19,19
   2786 	vxor	11,12,19
   2787 
   2788 .long	0x7CE02799
   2789 .long	0x7D832799
   2790 	addi	4,4,0x20
   2791 	bne	.Lxts_enc6x_steal
   2792 	b	.Lxts_enc6x_done
   2793 
   2794 .align	4
   2795 .Lxts_enc6x_one:
   2796 	vxor	7,5,17
   2797 	nop
   2798 .Loop_xts_enc1x:
   2799 .long	0x10E7C508
   2800 	lvx	24,26,7
   2801 	addi	7,7,0x20
   2802 
   2803 .long	0x10E7CD08
   2804 	lvx	25,3,7
   2805 	bc	16,0,.Loop_xts_enc1x
   2806 
   2807 	add	10,10,31
   2808 	cmpwi	31,0
   2809 .long	0x10E7C508
   2810 
   2811 	subi	10,10,16
   2812 .long	0x10E7CD08
   2813 
   2814 	lvsr	5,0,31
   2815 .long	0x10E7D508
   2816 
   2817 .long	0x7C005699
   2818 .long	0x10E7DD08
   2819 
   2820 	addi	7,1,64+15
   2821 .long	0x10E7E508
   2822 	lvx	24,0,7
   2823 
   2824 .long	0x10E7ED08
   2825 	lvx	25,3,7
   2826 	vxor	17,17,31
   2827 
   2828 
   2829 .long	0x10E7F508
   2830 
   2831 	vperm	0,0,0,5
   2832 .long	0x10E78D09
   2833 
   2834 	vor	17,18,18
   2835 	vxor	11,7,18
   2836 
   2837 .long	0x7CE02799
   2838 	addi	4,4,0x10
   2839 	bne	.Lxts_enc6x_steal
   2840 	b	.Lxts_enc6x_done
   2841 
   2842 .align	4
   2843 .Lxts_enc6x_zero:
   2844 	cmpwi	31,0
   2845 	beq	.Lxts_enc6x_done
   2846 
   2847 	add	10,10,31
   2848 	subi	10,10,16
   2849 .long	0x7C005699
   2850 	lvsr	5,0,31
   2851 
   2852 	vperm	0,0,0,5
   2853 	vxor	11,11,17
   2854 .Lxts_enc6x_steal:
   2855 	vxor	0,0,17
   2856 	vxor	7,7,7
   2857 	vspltisb	12,-1
   2858 	vperm	7,7,12,5
   2859 	vsel	7,0,11,7
   2860 
   2861 	subi	30,4,17
   2862 	subi	4,4,16
   2863 	mtctr	31
   2864 .Loop_xts_enc6x_steal:
   2865 	lbzu	0,1(30)
   2866 	stb	0,16(30)
   2867 	bc	16,0,.Loop_xts_enc6x_steal
   2868 
   2869 	li	31,0
   2870 	mtctr	9
   2871 	b	.Loop_xts_enc1x
   2872 
   2873 .align	4
   2874 .Lxts_enc6x_done:
   2875 	cmpldi	8,0
   2876 	beq	.Lxts_enc6x_ret
   2877 
   2878 	vxor	8,17,23
   2879 
   2880 .long	0x7D004799
   2881 
   2882 .Lxts_enc6x_ret:
   2883 	mtlr	11
   2884 	li	10,79
   2885 	li	11,95
   2886 	stvx	9,10,1
   2887 	addi	10,10,32
   2888 	stvx	9,11,1
   2889 	addi	11,11,32
   2890 	stvx	9,10,1
   2891 	addi	10,10,32
   2892 	stvx	9,11,1
   2893 	addi	11,11,32
   2894 	stvx	9,10,1
   2895 	addi	10,10,32
   2896 	stvx	9,11,1
   2897 	addi	11,11,32
   2898 	stvx	9,10,1
   2899 	addi	10,10,32
   2900 	stvx	9,11,1
   2901 	addi	11,11,32
   2902 
   2903 	mtspr	256,12
   2904 	lvx	20,10,1
   2905 	addi	10,10,32
   2906 	lvx	21,11,1
   2907 	addi	11,11,32
   2908 	lvx	22,10,1
   2909 	addi	10,10,32
   2910 	lvx	23,11,1
   2911 	addi	11,11,32
   2912 	lvx	24,10,1
   2913 	addi	10,10,32
   2914 	lvx	25,11,1
   2915 	addi	11,11,32
   2916 	lvx	26,10,1
   2917 	addi	10,10,32
   2918 	lvx	27,11,1
   2919 	addi	11,11,32
   2920 	lvx	28,10,1
   2921 	addi	10,10,32
   2922 	lvx	29,11,1
   2923 	addi	11,11,32
   2924 	lvx	30,10,1
   2925 	lvx	31,11,1
   2926 	ld	26,400(1)
   2927 	ld	27,408(1)
   2928 	ld	28,416(1)
   2929 	ld	29,424(1)
   2930 	ld	30,432(1)
   2931 	ld	31,440(1)
   2932 	addi	1,1,448
   2933 	blr
   2934 .long	0
   2935 .byte	0,12,0x04,1,0x80,6,6,0
   2936 .long	0
   2937 
   2938 .align	5
   2939 _aesp8_xts_enc5x:
   2940 .long	0x10E7C508
   2941 .long	0x118CC508
   2942 .long	0x11ADC508
   2943 .long	0x11CEC508
   2944 .long	0x11EFC508
   2945 	lvx	24,26,7
   2946 	addi	7,7,0x20
   2947 
   2948 .long	0x10E7CD08
   2949 .long	0x118CCD08
   2950 .long	0x11ADCD08
   2951 .long	0x11CECD08
   2952 .long	0x11EFCD08
   2953 	lvx	25,3,7
   2954 	bc	16,0,_aesp8_xts_enc5x
   2955 
   2956 	add	10,10,31
   2957 	cmpwi	31,0
   2958 .long	0x10E7C508
   2959 .long	0x118CC508
   2960 .long	0x11ADC508
   2961 .long	0x11CEC508
   2962 .long	0x11EFC508
   2963 
   2964 	subi	10,10,16
   2965 .long	0x10E7CD08
   2966 .long	0x118CCD08
   2967 .long	0x11ADCD08
   2968 .long	0x11CECD08
   2969 .long	0x11EFCD08
   2970 	vxor	17,17,31
   2971 
   2972 .long	0x10E7D508
   2973 	lvsr	5,0,31
   2974 .long	0x118CD508
   2975 .long	0x11ADD508
   2976 .long	0x11CED508
   2977 .long	0x11EFD508
   2978 	vxor	1,18,31
   2979 
   2980 .long	0x10E7DD08
   2981 .long	0x7C005699
   2982 .long	0x118CDD08
   2983 .long	0x11ADDD08
   2984 .long	0x11CEDD08
   2985 .long	0x11EFDD08
   2986 	vxor	2,19,31
   2987 
   2988 	addi	7,1,64+15
   2989 .long	0x10E7E508
   2990 .long	0x118CE508
   2991 .long	0x11ADE508
   2992 .long	0x11CEE508
   2993 .long	0x11EFE508
   2994 	lvx	24,0,7
   2995 	vxor	3,20,31
   2996 
   2997 .long	0x10E7ED08
   2998 
   2999 .long	0x118CED08
   3000 .long	0x11ADED08
   3001 .long	0x11CEED08
   3002 .long	0x11EFED08
   3003 	lvx	25,3,7
   3004 	vxor	4,21,31
   3005 
   3006 .long	0x10E7F508
   3007 	vperm	0,0,0,5
   3008 .long	0x118CF508
   3009 .long	0x11ADF508
   3010 .long	0x11CEF508
   3011 .long	0x11EFF508
   3012 
   3013 .long	0x10E78D09
   3014 .long	0x118C0D09
   3015 .long	0x11AD1509
   3016 .long	0x11CE1D09
   3017 .long	0x11EF2509
   3018 	blr
   3019 .long	0
   3020 .byte	0,12,0x14,0,0,0,0,0
   3021 
   3022 .align	5
   3023 _aesp8_xts_decrypt6x:
   3024 	stdu	1,-448(1)
   3025 	mflr	11
   3026 	li	7,207
   3027 	li	3,223
   3028 	std	11,464(1)
   3029 	stvx	20,7,1
   3030 	addi	7,7,32
   3031 	stvx	21,3,1
   3032 	addi	3,3,32
   3033 	stvx	22,7,1
   3034 	addi	7,7,32
   3035 	stvx	23,3,1
   3036 	addi	3,3,32
   3037 	stvx	24,7,1
   3038 	addi	7,7,32
   3039 	stvx	25,3,1
   3040 	addi	3,3,32
   3041 	stvx	26,7,1
   3042 	addi	7,7,32
   3043 	stvx	27,3,1
   3044 	addi	3,3,32
   3045 	stvx	28,7,1
   3046 	addi	7,7,32
   3047 	stvx	29,3,1
   3048 	addi	3,3,32
   3049 	stvx	30,7,1
   3050 	stvx	31,3,1
   3051 	li	0,-1
   3052 	stw	12,396(1)
   3053 	li	3,0x10
   3054 	std	26,400(1)
   3055 	li	26,0x20
   3056 	std	27,408(1)
   3057 	li	27,0x30
   3058 	std	28,416(1)
   3059 	li	28,0x40
   3060 	std	29,424(1)
   3061 	li	29,0x50
   3062 	std	30,432(1)
   3063 	li	30,0x60
   3064 	std	31,440(1)
   3065 	li	31,0x70
   3066 	mtspr	256,0
   3067 
   3068 
   3069 	xxlor	2, 32+10, 32+10
   3070 	vsldoi	10,11,10,1
   3071 	xxlor	1, 32+10, 32+10
   3072 
   3073 
   3074 	mr	31, 6
   3075 	bl	.Lconsts
   3076 	lxvw4x	0, 28, 6
   3077 	mr	6, 31
   3078 	li	31,0x70
   3079 
   3080 	subi	9,9,3
   3081 
   3082 	lvx	23,0,6
   3083 	lvx	30,3,6
   3084 	addi	6,6,0x20
   3085 	lvx	31,0,6
   3086 	vperm	23,23,30,7
   3087 	addi	7,1,64+15
   3088 	mtctr	9
   3089 
   3090 .Load_xts_dec_key:
   3091 	vperm	24,30,31,7
   3092 	lvx	30,3,6
   3093 	addi	6,6,0x20
   3094 	stvx	24,0,7
   3095 	vperm	25,31,30,7
   3096 	lvx	31,0,6
   3097 	stvx	25,3,7
   3098 	addi	7,7,0x20
   3099 	bc	16,0,.Load_xts_dec_key
   3100 
   3101 	lvx	26,3,6
   3102 	vperm	24,30,31,7
   3103 	lvx	27,26,6
   3104 	stvx	24,0,7
   3105 	vperm	25,31,26,7
   3106 	lvx	28,27,6
   3107 	stvx	25,3,7
   3108 	addi	7,1,64+15
   3109 	vperm	26,26,27,7
   3110 	lvx	29,28,6
   3111 	vperm	27,27,28,7
   3112 	lvx	30,29,6
   3113 	vperm	28,28,29,7
   3114 	lvx	31,30,6
   3115 	vperm	29,29,30,7
   3116 	lvx	22,31,6
   3117 	vperm	30,30,31,7
   3118 	lvx	24,0,7
   3119 	vperm	31,31,22,7
   3120 	lvx	25,3,7
   3121 
   3122 	vperm	0,2,4,5
   3123 	subi	10,10,31
   3124 	vxor	17,8,23
   3125 	vsrab	11,8,9
   3126 	vaddubm	8,8,8
   3127 	vand	11,11,10
   3128 	vxor	7,0,17
   3129 	xxlor	32+1, 0, 0
   3130 	vpermxor	8, 8, 11, 1
   3131 
   3132 .long	0x7C235699
   3133 	vxor	18,8,23
   3134 	vsrab	11,8,9
   3135 	vaddubm	8,8,8
   3136 
   3137 	vand	11,11,10
   3138 	vxor	12,1,18
   3139 	xxlor	32+2, 0, 0
   3140 	vpermxor	8, 8, 11, 2
   3141 
   3142 .long	0x7C5A5699
   3143 	andi.	31,5,15
   3144 	vxor	19,8,23
   3145 	vsrab	11,8,9
   3146 	vaddubm	8,8,8
   3147 
   3148 	vand	11,11,10
   3149 	vxor	13,2,19
   3150 	xxlor	32+3, 0, 0
   3151 	vpermxor	8, 8, 11, 3
   3152 
   3153 .long	0x7C7B5699
   3154 	sub	5,5,31
   3155 	vxor	20,8,23
   3156 	vsrab	11,8,9
   3157 	vaddubm	8,8,8
   3158 
   3159 	vand	11,11,10
   3160 	vxor	14,3,20
   3161 	xxlor	32+4, 0, 0
   3162 	vpermxor	8, 8, 11, 4
   3163 
   3164 .long	0x7C9C5699
   3165 	subi	5,5,0x60
   3166 	vxor	21,8,23
   3167 	vsrab	11,8,9
   3168 	vaddubm	8,8,8
   3169 
   3170 	vand	11,11,10
   3171 	vxor	15,4,21
   3172 	xxlor	32+5, 0, 0
   3173 	vpermxor	8, 8, 11, 5
   3174 
   3175 .long	0x7CBD5699
   3176 	addi	10,10,0x60
   3177 	vxor	22,8,23
   3178 	vsrab	11,8,9
   3179 	vaddubm	8,8,8
   3180 
   3181 	vand	11,11,10
   3182 	vxor	16,5,22
   3183 	xxlor	32+0, 0, 0
   3184 	vpermxor	8, 8, 11, 0
   3185 
   3186 	vxor	31,31,23
   3187 	mtctr	9
   3188 	b	.Loop_xts_dec6x
   3189 
   3190 .align	5
   3191 .Loop_xts_dec6x:
   3192 .long	0x10E7C548
   3193 .long	0x118CC548
   3194 .long	0x11ADC548
   3195 .long	0x11CEC548
   3196 .long	0x11EFC548
   3197 .long	0x1210C548
   3198 	lvx	24,26,7
   3199 	addi	7,7,0x20
   3200 
   3201 .long	0x10E7CD48
   3202 .long	0x118CCD48
   3203 .long	0x11ADCD48
   3204 .long	0x11CECD48
   3205 .long	0x11EFCD48
   3206 .long	0x1210CD48
   3207 	lvx	25,3,7
   3208 	bc	16,0,.Loop_xts_dec6x
   3209 
   3210 	xxlor	32+10, 1, 1
   3211 
   3212 	subic	5,5,96
   3213 	vxor	0,17,31
   3214 .long	0x10E7C548
   3215 .long	0x118CC548
   3216 	vsrab	11,8,9
   3217 	vxor	17,8,23
   3218 	vaddubm	8,8,8
   3219 .long	0x11ADC548
   3220 .long	0x11CEC548
   3221 .long	0x11EFC548
   3222 .long	0x1210C548
   3223 
   3224 	subfe.	0,0,0
   3225 	vand	11,11,10
   3226 .long	0x10E7CD48
   3227 .long	0x118CCD48
   3228 	xxlor	32+1, 0, 0
   3229 	vpermxor	8, 8, 11, 1
   3230 .long	0x11ADCD48
   3231 .long	0x11CECD48
   3232 	vxor	1,18,31
   3233 	vsrab	11,8,9
   3234 	vxor	18,8,23
   3235 .long	0x11EFCD48
   3236 .long	0x1210CD48
   3237 
   3238 	and	0,0,5
   3239 	vaddubm	8,8,8
   3240 .long	0x10E7D548
   3241 .long	0x118CD548
   3242 	vand	11,11,10
   3243 .long	0x11ADD548
   3244 .long	0x11CED548
   3245 	xxlor	32+2, 0, 0
   3246 	vpermxor	8, 8, 11, 2
   3247 .long	0x11EFD548
   3248 .long	0x1210D548
   3249 
   3250 	add	10,10,0
   3251 
   3252 
   3253 
   3254 	vxor	2,19,31
   3255 	vsrab	11,8,9
   3256 	vxor	19,8,23
   3257 	vaddubm	8,8,8
   3258 .long	0x10E7DD48
   3259 .long	0x118CDD48
   3260 .long	0x11ADDD48
   3261 .long	0x11CEDD48
   3262 	vand	11,11,10
   3263 .long	0x11EFDD48
   3264 .long	0x1210DD48
   3265 
   3266 	addi	7,1,64+15
   3267 	xxlor	32+3, 0, 0
   3268 	vpermxor	8, 8, 11, 3
   3269 .long	0x10E7E548
   3270 .long	0x118CE548
   3271 	vxor	3,20,31
   3272 	vsrab	11,8,9
   3273 	vxor	20,8,23
   3274 .long	0x11ADE548
   3275 .long	0x11CEE548
   3276 	vaddubm	8,8,8
   3277 .long	0x11EFE548
   3278 .long	0x1210E548
   3279 	lvx	24,0,7
   3280 	vand	11,11,10
   3281 
   3282 .long	0x10E7ED48
   3283 .long	0x118CED48
   3284 	xxlor	32+4, 0, 0
   3285 	vpermxor	8, 8, 11, 4
   3286 .long	0x11ADED48
   3287 .long	0x11CEED48
   3288 	vxor	4,21,31
   3289 	vsrab	11,8,9
   3290 	vxor	21,8,23
   3291 .long	0x11EFED48
   3292 .long	0x1210ED48
   3293 	lvx	25,3,7
   3294 	vaddubm	8,8,8
   3295 
   3296 .long	0x10E7F548
   3297 .long	0x118CF548
   3298 	vand	11,11,10
   3299 .long	0x11ADF548
   3300 .long	0x11CEF548
   3301 	xxlor	32+5, 0, 0
   3302 	vpermxor	8, 8, 11, 5
   3303 .long	0x11EFF548
   3304 .long	0x1210F548
   3305 	vxor	5,22,31
   3306 	vsrab	11,8,9
   3307 	vxor	22,8,23
   3308 
   3309 .long	0x10E70549
   3310 .long	0x7C005699
   3311 	vaddubm	8,8,8
   3312 .long	0x118C0D49
   3313 .long	0x7C235699
   3314 .long	0x11AD1549
   3315 
   3316 .long	0x7C5A5699
   3317 	vand	11,11,10
   3318 .long	0x11CE1D49
   3319 
   3320 .long	0x7C7B5699
   3321 .long	0x11EF2549
   3322 
   3323 .long	0x7C9C5699
   3324 	xxlor	10, 32+0, 32+0
   3325 	xxlor	32+0, 0, 0
   3326 	vpermxor	8, 8, 11, 0
   3327 	xxlor	32+0, 10, 10
   3328 .long	0x12102D49
   3329 
   3330 .long	0x7CBD5699
   3331 	addi	10,10,0x60
   3332 
   3333 
   3334 
   3335 
   3336 
   3337 .long	0x7CE02799
   3338 	vxor	7,0,17
   3339 
   3340 .long	0x7D832799
   3341 	vxor	12,1,18
   3342 
   3343 .long	0x7DBA2799
   3344 	vxor	13,2,19
   3345 
   3346 .long	0x7DDB2799
   3347 	vxor	14,3,20
   3348 
   3349 .long	0x7DFC2799
   3350 	vxor	15,4,21
   3351 .long	0x7E1D2799
   3352 	vxor	16,5,22
   3353 	addi	4,4,0x60
   3354 
   3355 	mtctr	9
   3356 	beq	.Loop_xts_dec6x
   3357 
   3358 	xxlor	32+10, 2, 2
   3359 
   3360 	addic.	5,5,0x60
   3361 	beq	.Lxts_dec6x_zero
   3362 	cmpwi	5,0x20
   3363 	blt	.Lxts_dec6x_one
   3364 	nop
   3365 	beq	.Lxts_dec6x_two
   3366 	cmpwi	5,0x40
   3367 	blt	.Lxts_dec6x_three
   3368 	nop
   3369 	beq	.Lxts_dec6x_four
   3370 
   3371 .Lxts_dec6x_five:
   3372 	vxor	7,1,17
   3373 	vxor	12,2,18
   3374 	vxor	13,3,19
   3375 	vxor	14,4,20
   3376 	vxor	15,5,21
   3377 
   3378 	bl	_aesp8_xts_dec5x
   3379 
   3380 
   3381 	vor	17,22,22
   3382 	vxor	18,8,23
   3383 
   3384 .long	0x7CE02799
   3385 	vxor	7,0,18
   3386 
   3387 .long	0x7D832799
   3388 
   3389 .long	0x7DBA2799
   3390 
   3391 .long	0x7DDB2799
   3392 .long	0x7DFC2799
   3393 	addi	4,4,0x50
   3394 	bne	.Lxts_dec6x_steal
   3395 	b	.Lxts_dec6x_done
   3396 
   3397 .align	4
   3398 .Lxts_dec6x_four:
   3399 	vxor	7,2,17
   3400 	vxor	12,3,18
   3401 	vxor	13,4,19
   3402 	vxor	14,5,20
   3403 	vxor	15,15,15
   3404 
   3405 	bl	_aesp8_xts_dec5x
   3406 
   3407 
   3408 	vor	17,21,21
   3409 	vor	18,22,22
   3410 
   3411 .long	0x7CE02799
   3412 	vxor	7,0,22
   3413 
   3414 .long	0x7D832799
   3415 
   3416 .long	0x7DBA2799
   3417 .long	0x7DDB2799
   3418 	addi	4,4,0x40
   3419 	bne	.Lxts_dec6x_steal
   3420 	b	.Lxts_dec6x_done
   3421 
   3422 .align	4
   3423 .Lxts_dec6x_three:
   3424 	vxor	7,3,17
   3425 	vxor	12,4,18
   3426 	vxor	13,5,19
   3427 	vxor	14,14,14
   3428 	vxor	15,15,15
   3429 
   3430 	bl	_aesp8_xts_dec5x
   3431 
   3432 
   3433 	vor	17,20,20
   3434 	vor	18,21,21
   3435 
   3436 .long	0x7CE02799
   3437 	vxor	7,0,21
   3438 
   3439 .long	0x7D832799
   3440 .long	0x7DBA2799
   3441 	addi	4,4,0x30
   3442 	bne	.Lxts_dec6x_steal
   3443 	b	.Lxts_dec6x_done
   3444 
   3445 .align	4
   3446 .Lxts_dec6x_two:
   3447 	vxor	7,4,17
   3448 	vxor	12,5,18
   3449 	vxor	13,13,13
   3450 	vxor	14,14,14
   3451 	vxor	15,15,15
   3452 
   3453 	bl	_aesp8_xts_dec5x
   3454 
   3455 
   3456 	vor	17,19,19
   3457 	vor	18,20,20
   3458 
   3459 .long	0x7CE02799
   3460 	vxor	7,0,20
   3461 .long	0x7D832799
   3462 	addi	4,4,0x20
   3463 	bne	.Lxts_dec6x_steal
   3464 	b	.Lxts_dec6x_done
   3465 
   3466 .align	4
   3467 .Lxts_dec6x_one:
   3468 	vxor	7,5,17
   3469 	nop
   3470 .Loop_xts_dec1x:
   3471 .long	0x10E7C548
   3472 	lvx	24,26,7
   3473 	addi	7,7,0x20
   3474 
   3475 .long	0x10E7CD48
   3476 	lvx	25,3,7
   3477 	bc	16,0,.Loop_xts_dec1x
   3478 
   3479 	subi	0,31,1
   3480 .long	0x10E7C548
   3481 
   3482 	andi.	0,0,16
   3483 	cmpwi	31,0
   3484 .long	0x10E7CD48
   3485 
   3486 	sub	10,10,0
   3487 .long	0x10E7D548
   3488 
   3489 .long	0x7C005699
   3490 .long	0x10E7DD48
   3491 
   3492 	addi	7,1,64+15
   3493 .long	0x10E7E548
   3494 	lvx	24,0,7
   3495 
   3496 .long	0x10E7ED48
   3497 	lvx	25,3,7
   3498 	vxor	17,17,31
   3499 
   3500 
   3501 .long	0x10E7F548
   3502 
   3503 	mtctr	9
   3504 .long	0x10E78D49
   3505 
   3506 	vor	17,18,18
   3507 	vor	18,19,19
   3508 
   3509 .long	0x7CE02799
   3510 	addi	4,4,0x10
   3511 	vxor	7,0,19
   3512 	bne	.Lxts_dec6x_steal
   3513 	b	.Lxts_dec6x_done
   3514 
   3515 .align	4
   3516 .Lxts_dec6x_zero:
   3517 	cmpwi	31,0
   3518 	beq	.Lxts_dec6x_done
   3519 
   3520 .long	0x7C005699
   3521 
   3522 	vxor	7,0,18
   3523 .Lxts_dec6x_steal:
   3524 .long	0x10E7C548
   3525 	lvx	24,26,7
   3526 	addi	7,7,0x20
   3527 
   3528 .long	0x10E7CD48
   3529 	lvx	25,3,7
   3530 	bc	16,0,.Lxts_dec6x_steal
   3531 
   3532 	add	10,10,31
   3533 .long	0x10E7C548
   3534 
   3535 	cmpwi	31,0
   3536 .long	0x10E7CD48
   3537 
   3538 .long	0x7C005699
   3539 .long	0x10E7D548
   3540 
   3541 	lvsr	5,0,31
   3542 .long	0x10E7DD48
   3543 
   3544 	addi	7,1,64+15
   3545 .long	0x10E7E548
   3546 	lvx	24,0,7
   3547 
   3548 .long	0x10E7ED48
   3549 	lvx	25,3,7
   3550 	vxor	18,18,31
   3551 
   3552 
   3553 .long	0x10E7F548
   3554 
   3555 	vperm	0,0,0,5
   3556 .long	0x11679549
   3557 
   3558 
   3559 
   3560 .long	0x7D602799
   3561 
   3562 	vxor	7,7,7
   3563 	vspltisb	12,-1
   3564 	vperm	7,7,12,5
   3565 	vsel	7,0,11,7
   3566 	vxor	7,7,17
   3567 
   3568 	subi	30,4,1
   3569 	mtctr	31
   3570 .Loop_xts_dec6x_steal:
   3571 	lbzu	0,1(30)
   3572 	stb	0,16(30)
   3573 	bc	16,0,.Loop_xts_dec6x_steal
   3574 
   3575 	li	31,0
   3576 	mtctr	9
   3577 	b	.Loop_xts_dec1x
   3578 
   3579 .align	4
   3580 .Lxts_dec6x_done:
   3581 	cmpldi	8,0
   3582 	beq	.Lxts_dec6x_ret
   3583 
   3584 	vxor	8,17,23
   3585 
   3586 .long	0x7D004799
   3587 
   3588 .Lxts_dec6x_ret:
   3589 	mtlr	11
   3590 	li	10,79
   3591 	li	11,95
   3592 	stvx	9,10,1
   3593 	addi	10,10,32
   3594 	stvx	9,11,1
   3595 	addi	11,11,32
   3596 	stvx	9,10,1
   3597 	addi	10,10,32
   3598 	stvx	9,11,1
   3599 	addi	11,11,32
   3600 	stvx	9,10,1
   3601 	addi	10,10,32
   3602 	stvx	9,11,1
   3603 	addi	11,11,32
   3604 	stvx	9,10,1
   3605 	addi	10,10,32
   3606 	stvx	9,11,1
   3607 	addi	11,11,32
   3608 
   3609 	mtspr	256,12
   3610 	lvx	20,10,1
   3611 	addi	10,10,32
   3612 	lvx	21,11,1
   3613 	addi	11,11,32
   3614 	lvx	22,10,1
   3615 	addi	10,10,32
   3616 	lvx	23,11,1
   3617 	addi	11,11,32
   3618 	lvx	24,10,1
   3619 	addi	10,10,32
   3620 	lvx	25,11,1
   3621 	addi	11,11,32
   3622 	lvx	26,10,1
   3623 	addi	10,10,32
   3624 	lvx	27,11,1
   3625 	addi	11,11,32
   3626 	lvx	28,10,1
   3627 	addi	10,10,32
   3628 	lvx	29,11,1
   3629 	addi	11,11,32
   3630 	lvx	30,10,1
   3631 	lvx	31,11,1
   3632 	ld	26,400(1)
   3633 	ld	27,408(1)
   3634 	ld	28,416(1)
   3635 	ld	29,424(1)
   3636 	ld	30,432(1)
   3637 	ld	31,440(1)
   3638 	addi	1,1,448
   3639 	blr
   3640 .long	0
   3641 .byte	0,12,0x04,1,0x80,6,6,0
   3642 .long	0
   3643 
   3644 .align	5
   3645 _aesp8_xts_dec5x:
   3646 .long	0x10E7C548
   3647 .long	0x118CC548
   3648 .long	0x11ADC548
   3649 .long	0x11CEC548
   3650 .long	0x11EFC548
   3651 	lvx	24,26,7
   3652 	addi	7,7,0x20
   3653 
   3654 .long	0x10E7CD48
   3655 .long	0x118CCD48
   3656 .long	0x11ADCD48
   3657 .long	0x11CECD48
   3658 .long	0x11EFCD48
   3659 	lvx	25,3,7
   3660 	bc	16,0,_aesp8_xts_dec5x
   3661 
   3662 	subi	0,31,1
   3663 .long	0x10E7C548
   3664 .long	0x118CC548
   3665 .long	0x11ADC548
   3666 .long	0x11CEC548
   3667 .long	0x11EFC548
   3668 
   3669 	andi.	0,0,16
   3670 	cmpwi	31,0
   3671 .long	0x10E7CD48
   3672 .long	0x118CCD48
   3673 .long	0x11ADCD48
   3674 .long	0x11CECD48
   3675 .long	0x11EFCD48
   3676 	vxor	17,17,31
   3677 
   3678 	sub	10,10,0
   3679 .long	0x10E7D548
   3680 .long	0x118CD548
   3681 .long	0x11ADD548
   3682 .long	0x11CED548
   3683 .long	0x11EFD548
   3684 	vxor	1,18,31
   3685 
   3686 .long	0x10E7DD48
   3687 .long	0x7C005699
   3688 .long	0x118CDD48
   3689 .long	0x11ADDD48
   3690 .long	0x11CEDD48
   3691 .long	0x11EFDD48
   3692 	vxor	2,19,31
   3693 
   3694 	addi	7,1,64+15
   3695 .long	0x10E7E548
   3696 .long	0x118CE548
   3697 .long	0x11ADE548
   3698 .long	0x11CEE548
   3699 .long	0x11EFE548
   3700 	lvx	24,0,7
   3701 	vxor	3,20,31
   3702 
   3703 .long	0x10E7ED48
   3704 
   3705 .long	0x118CED48
   3706 .long	0x11ADED48
   3707 .long	0x11CEED48
   3708 .long	0x11EFED48
   3709 	lvx	25,3,7
   3710 	vxor	4,21,31
   3711 
   3712 .long	0x10E7F548
   3713 .long	0x118CF548
   3714 .long	0x11ADF548
   3715 .long	0x11CEF548
   3716 .long	0x11EFF548
   3717 
   3718 .long	0x10E78D49
   3719 .long	0x118C0D49
   3720 .long	0x11AD1549
   3721 .long	0x11CE1D49
   3722 .long	0x11EF2549
   3723 	mtctr	9
   3724 	blr
   3725 .long	0
   3726 .byte	0,12,0x14,0,0,0,0,0
   3727