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