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