Changeset View
Changeset View
Standalone View
Standalone View
sys/crypto/openssl/powerpc/chacha-ppc.S
- This file was added.
/* $FreeBSD$ */ | |||||
/* Do not modify. This file is auto-generated from chacha-ppc.pl. */ | |||||
.machine "any" | |||||
.text | |||||
.globl ChaCha20_ctr32_int | |||||
.type ChaCha20_ctr32_int,@function | |||||
.align 5 | |||||
ChaCha20_ctr32_int: | |||||
__ChaCha20_ctr32_int: | |||||
cmplwi 5,0 | |||||
.long 0x4DC20020 | |||||
stwu 1,-160(1) | |||||
mflr 0 | |||||
stw 14,88(1) | |||||
stw 15,92(1) | |||||
stw 16,96(1) | |||||
stw 17,100(1) | |||||
stw 18,104(1) | |||||
stw 19,108(1) | |||||
stw 20,112(1) | |||||
stw 21,116(1) | |||||
stw 22,120(1) | |||||
stw 23,124(1) | |||||
stw 24,128(1) | |||||
stw 25,132(1) | |||||
stw 26,136(1) | |||||
stw 27,140(1) | |||||
stw 28,144(1) | |||||
stw 29,148(1) | |||||
stw 30,152(1) | |||||
stw 31,156(1) | |||||
stw 0,164(1) | |||||
lwz 11,0(7) | |||||
lwz 12,4(7) | |||||
lwz 14,8(7) | |||||
lwz 15,12(7) | |||||
bl __ChaCha20_1x | |||||
lwz 0,164(1) | |||||
lwz 14,88(1) | |||||
lwz 15,92(1) | |||||
lwz 16,96(1) | |||||
lwz 17,100(1) | |||||
lwz 18,104(1) | |||||
lwz 19,108(1) | |||||
lwz 20,112(1) | |||||
lwz 21,116(1) | |||||
lwz 22,120(1) | |||||
lwz 23,124(1) | |||||
lwz 24,128(1) | |||||
lwz 25,132(1) | |||||
lwz 26,136(1) | |||||
lwz 27,140(1) | |||||
lwz 28,144(1) | |||||
lwz 29,148(1) | |||||
lwz 30,152(1) | |||||
lwz 31,156(1) | |||||
mtlr 0 | |||||
addi 1,1,160 | |||||
blr | |||||
.long 0 | |||||
.byte 0,12,4,1,0x80,18,5,0 | |||||
.long 0 | |||||
.size ChaCha20_ctr32_int,.-ChaCha20_ctr32_int | |||||
.align 5 | |||||
__ChaCha20_1x: | |||||
.Loop_outer: | |||||
lis 16,0x6170 | |||||
lis 17,0x3320 | |||||
lis 18,0x7962 | |||||
lis 19,0x6b20 | |||||
ori 16,16,0x7865 | |||||
ori 17,17,0x646e | |||||
ori 18,18,0x2d32 | |||||
ori 19,19,0x6574 | |||||
li 0,10 | |||||
lwz 20,0(6) | |||||
lwz 21,4(6) | |||||
lwz 22,8(6) | |||||
lwz 23,12(6) | |||||
lwz 24,16(6) | |||||
mr 28,11 | |||||
lwz 25,20(6) | |||||
mr 29,12 | |||||
lwz 26,24(6) | |||||
mr 30,14 | |||||
lwz 27,28(6) | |||||
mr 31,15 | |||||
mr 7,20 | |||||
mr 8,21 | |||||
mr 9,22 | |||||
mr 10,23 | |||||
mtctr 0 | |||||
.Loop: | |||||
add 16,16,20 | |||||
add 17,17,21 | |||||
add 18,18,22 | |||||
add 19,19,23 | |||||
xor 28,28,16 | |||||
xor 29,29,17 | |||||
xor 30,30,18 | |||||
xor 31,31,19 | |||||
rotlwi 28,28,16 | |||||
rotlwi 29,29,16 | |||||
rotlwi 30,30,16 | |||||
rotlwi 31,31,16 | |||||
add 24,24,28 | |||||
add 25,25,29 | |||||
add 26,26,30 | |||||
add 27,27,31 | |||||
xor 20,20,24 | |||||
xor 21,21,25 | |||||
xor 22,22,26 | |||||
xor 23,23,27 | |||||
rotlwi 20,20,12 | |||||
rotlwi 21,21,12 | |||||
rotlwi 22,22,12 | |||||
rotlwi 23,23,12 | |||||
add 16,16,20 | |||||
add 17,17,21 | |||||
add 18,18,22 | |||||
add 19,19,23 | |||||
xor 28,28,16 | |||||
xor 29,29,17 | |||||
xor 30,30,18 | |||||
xor 31,31,19 | |||||
rotlwi 28,28,8 | |||||
rotlwi 29,29,8 | |||||
rotlwi 30,30,8 | |||||
rotlwi 31,31,8 | |||||
add 24,24,28 | |||||
add 25,25,29 | |||||
add 26,26,30 | |||||
add 27,27,31 | |||||
xor 20,20,24 | |||||
xor 21,21,25 | |||||
xor 22,22,26 | |||||
xor 23,23,27 | |||||
rotlwi 20,20,7 | |||||
rotlwi 21,21,7 | |||||
rotlwi 22,22,7 | |||||
rotlwi 23,23,7 | |||||
add 16,16,21 | |||||
add 17,17,22 | |||||
add 18,18,23 | |||||
add 19,19,20 | |||||
xor 31,31,16 | |||||
xor 28,28,17 | |||||
xor 29,29,18 | |||||
xor 30,30,19 | |||||
rotlwi 31,31,16 | |||||
rotlwi 28,28,16 | |||||
rotlwi 29,29,16 | |||||
rotlwi 30,30,16 | |||||
add 26,26,31 | |||||
add 27,27,28 | |||||
add 24,24,29 | |||||
add 25,25,30 | |||||
xor 21,21,26 | |||||
xor 22,22,27 | |||||
xor 23,23,24 | |||||
xor 20,20,25 | |||||
rotlwi 21,21,12 | |||||
rotlwi 22,22,12 | |||||
rotlwi 23,23,12 | |||||
rotlwi 20,20,12 | |||||
add 16,16,21 | |||||
add 17,17,22 | |||||
add 18,18,23 | |||||
add 19,19,20 | |||||
xor 31,31,16 | |||||
xor 28,28,17 | |||||
xor 29,29,18 | |||||
xor 30,30,19 | |||||
rotlwi 31,31,8 | |||||
rotlwi 28,28,8 | |||||
rotlwi 29,29,8 | |||||
rotlwi 30,30,8 | |||||
add 26,26,31 | |||||
add 27,27,28 | |||||
add 24,24,29 | |||||
add 25,25,30 | |||||
xor 21,21,26 | |||||
xor 22,22,27 | |||||
xor 23,23,24 | |||||
xor 20,20,25 | |||||
rotlwi 21,21,7 | |||||
rotlwi 22,22,7 | |||||
rotlwi 23,23,7 | |||||
rotlwi 20,20,7 | |||||
bdnz .Loop | |||||
subic 5,5,64 | |||||
addi 16,16,0x7865 | |||||
addi 17,17,0x646e | |||||
addi 18,18,0x2d32 | |||||
addi 19,19,0x6574 | |||||
addis 16,16,0x6170 | |||||
addis 17,17,0x3320 | |||||
addis 18,18,0x7962 | |||||
addis 19,19,0x6b20 | |||||
subfe. 0,0,0 | |||||
add 20,20,7 | |||||
lwz 7,16(6) | |||||
add 21,21,8 | |||||
lwz 8,20(6) | |||||
add 22,22,9 | |||||
lwz 9,24(6) | |||||
add 23,23,10 | |||||
lwz 10,28(6) | |||||
add 24,24,7 | |||||
add 25,25,8 | |||||
add 26,26,9 | |||||
add 27,27,10 | |||||
add 28,28,11 | |||||
add 29,29,12 | |||||
add 30,30,14 | |||||
add 31,31,15 | |||||
addi 11,11,1 | |||||
mr 7,16 | |||||
rotlwi 16,16,8 | |||||
rlwimi 16,7,24,0,7 | |||||
rlwimi 16,7,24,16,23 | |||||
mr 8,17 | |||||
rotlwi 17,17,8 | |||||
rlwimi 17,8,24,0,7 | |||||
rlwimi 17,8,24,16,23 | |||||
mr 9,18 | |||||
rotlwi 18,18,8 | |||||
rlwimi 18,9,24,0,7 | |||||
rlwimi 18,9,24,16,23 | |||||
mr 10,19 | |||||
rotlwi 19,19,8 | |||||
rlwimi 19,10,24,0,7 | |||||
rlwimi 19,10,24,16,23 | |||||
mr 7,20 | |||||
rotlwi 20,20,8 | |||||
rlwimi 20,7,24,0,7 | |||||
rlwimi 20,7,24,16,23 | |||||
mr 8,21 | |||||
rotlwi 21,21,8 | |||||
rlwimi 21,8,24,0,7 | |||||
rlwimi 21,8,24,16,23 | |||||
mr 9,22 | |||||
rotlwi 22,22,8 | |||||
rlwimi 22,9,24,0,7 | |||||
rlwimi 22,9,24,16,23 | |||||
mr 10,23 | |||||
rotlwi 23,23,8 | |||||
rlwimi 23,10,24,0,7 | |||||
rlwimi 23,10,24,16,23 | |||||
mr 7,24 | |||||
rotlwi 24,24,8 | |||||
rlwimi 24,7,24,0,7 | |||||
rlwimi 24,7,24,16,23 | |||||
mr 8,25 | |||||
rotlwi 25,25,8 | |||||
rlwimi 25,8,24,0,7 | |||||
rlwimi 25,8,24,16,23 | |||||
mr 9,26 | |||||
rotlwi 26,26,8 | |||||
rlwimi 26,9,24,0,7 | |||||
rlwimi 26,9,24,16,23 | |||||
mr 10,27 | |||||
rotlwi 27,27,8 | |||||
rlwimi 27,10,24,0,7 | |||||
rlwimi 27,10,24,16,23 | |||||
mr 7,28 | |||||
rotlwi 28,28,8 | |||||
rlwimi 28,7,24,0,7 | |||||
rlwimi 28,7,24,16,23 | |||||
mr 8,29 | |||||
rotlwi 29,29,8 | |||||
rlwimi 29,8,24,0,7 | |||||
rlwimi 29,8,24,16,23 | |||||
mr 9,30 | |||||
rotlwi 30,30,8 | |||||
rlwimi 30,9,24,0,7 | |||||
rlwimi 30,9,24,16,23 | |||||
mr 10,31 | |||||
rotlwi 31,31,8 | |||||
rlwimi 31,10,24,0,7 | |||||
rlwimi 31,10,24,16,23 | |||||
bne .Ltail | |||||
lwz 7,0(4) | |||||
lwz 8,4(4) | |||||
cmplwi 5,0 | |||||
lwz 9,8(4) | |||||
lwz 10,12(4) | |||||
xor 16,16,7 | |||||
lwz 7,16(4) | |||||
xor 17,17,8 | |||||
lwz 8,20(4) | |||||
xor 18,18,9 | |||||
lwz 9,24(4) | |||||
xor 19,19,10 | |||||
lwz 10,28(4) | |||||
xor 20,20,7 | |||||
lwz 7,32(4) | |||||
xor 21,21,8 | |||||
lwz 8,36(4) | |||||
xor 22,22,9 | |||||
lwz 9,40(4) | |||||
xor 23,23,10 | |||||
lwz 10,44(4) | |||||
xor 24,24,7 | |||||
lwz 7,48(4) | |||||
xor 25,25,8 | |||||
lwz 8,52(4) | |||||
xor 26,26,9 | |||||
lwz 9,56(4) | |||||
xor 27,27,10 | |||||
lwz 10,60(4) | |||||
xor 28,28,7 | |||||
stw 16,0(3) | |||||
xor 29,29,8 | |||||
stw 17,4(3) | |||||
xor 30,30,9 | |||||
stw 18,8(3) | |||||
xor 31,31,10 | |||||
stw 19,12(3) | |||||
stw 20,16(3) | |||||
stw 21,20(3) | |||||
stw 22,24(3) | |||||
stw 23,28(3) | |||||
stw 24,32(3) | |||||
stw 25,36(3) | |||||
stw 26,40(3) | |||||
stw 27,44(3) | |||||
stw 28,48(3) | |||||
stw 29,52(3) | |||||
stw 30,56(3) | |||||
addi 4,4,64 | |||||
stw 31,60(3) | |||||
addi 3,3,64 | |||||
bne .Loop_outer | |||||
blr | |||||
.align 4 | |||||
.Ltail: | |||||
addi 5,5,64 | |||||
subi 4,4,1 | |||||
subi 3,3,1 | |||||
addi 7,1,24-1 | |||||
mtctr 5 | |||||
stw 16,24(1) | |||||
stw 17,28(1) | |||||
stw 18,32(1) | |||||
stw 19,36(1) | |||||
stw 20,40(1) | |||||
stw 21,44(1) | |||||
stw 22,48(1) | |||||
stw 23,52(1) | |||||
stw 24,56(1) | |||||
stw 25,60(1) | |||||
stw 26,64(1) | |||||
stw 27,68(1) | |||||
stw 28,72(1) | |||||
stw 29,76(1) | |||||
stw 30,80(1) | |||||
stw 31,84(1) | |||||
.Loop_tail: | |||||
lbzu 11,1(4) | |||||
lbzu 16,1(7) | |||||
xor 12,11,16 | |||||
stbu 12,1(3) | |||||
bdnz .Loop_tail | |||||
stw 1,24(1) | |||||
stw 1,28(1) | |||||
stw 1,32(1) | |||||
stw 1,36(1) | |||||
stw 1,40(1) | |||||
stw 1,44(1) | |||||
stw 1,48(1) | |||||
stw 1,52(1) | |||||
stw 1,56(1) | |||||
stw 1,60(1) | |||||
stw 1,64(1) | |||||
stw 1,68(1) | |||||
stw 1,72(1) | |||||
stw 1,76(1) | |||||
stw 1,80(1) | |||||
stw 1,84(1) | |||||
blr | |||||
.long 0 | |||||
.byte 0,12,0x14,0,0,0,0,0 | |||||
.globl ChaCha20_ctr32_vmx | |||||
.type ChaCha20_ctr32_vmx,@function | |||||
.align 5 | |||||
ChaCha20_ctr32_vmx: | |||||
cmplwi 5,256 | |||||
blt __ChaCha20_ctr32_int | |||||
stwu 1,-320(1) | |||||
mflr 0 | |||||
li 10,103 | |||||
li 11,119 | |||||
mfspr 12,256 | |||||
stvx 23,10,1 | |||||
addi 10,10,32 | |||||
stvx 24,11,1 | |||||
addi 11,11,32 | |||||
stvx 25,10,1 | |||||
addi 10,10,32 | |||||
stvx 26,11,1 | |||||
addi 11,11,32 | |||||
stvx 27,10,1 | |||||
addi 10,10,32 | |||||
stvx 28,11,1 | |||||
addi 11,11,32 | |||||
stvx 29,10,1 | |||||
addi 10,10,32 | |||||
stvx 30,11,1 | |||||
stvx 31,10,1 | |||||
stw 12,244(1) | |||||
stw 14,248(1) | |||||
stw 15,252(1) | |||||
stw 16,256(1) | |||||
stw 17,260(1) | |||||
stw 18,264(1) | |||||
stw 19,268(1) | |||||
stw 20,272(1) | |||||
stw 21,276(1) | |||||
stw 22,280(1) | |||||
stw 23,284(1) | |||||
stw 24,288(1) | |||||
stw 25,292(1) | |||||
stw 26,296(1) | |||||
stw 27,300(1) | |||||
stw 28,304(1) | |||||
stw 29,308(1) | |||||
stw 30,312(1) | |||||
stw 31,316(1) | |||||
li 12,-4096+511 | |||||
stw 0, 324(1) | |||||
mtspr 256,12 | |||||
bl .Lconsts | |||||
li 16,16 | |||||
li 17,32 | |||||
li 18,48 | |||||
li 19,64 | |||||
li 20,31 | |||||
li 21,15 | |||||
lvx 13,0,6 | |||||
lvsl 29,0,6 | |||||
lvx 14,16,6 | |||||
lvx 27,20,6 | |||||
lvx 15,0,7 | |||||
lvsl 30,0,7 | |||||
lvx 28,21,7 | |||||
lvx 12,0,12 | |||||
lvx 17,16,12 | |||||
lvx 18,17,12 | |||||
lvx 19,18,12 | |||||
lvx 23,19,12 | |||||
vperm 13,13,14,29 | |||||
vperm 14,14,27,29 | |||||
vperm 15,15,28,30 | |||||
lwz 11,0(7) | |||||
lwz 12,4(7) | |||||
vadduwm 15,15,17 | |||||
lwz 14,8(7) | |||||
vadduwm 16,15,17 | |||||
lwz 15,12(7) | |||||
vadduwm 17,16,17 | |||||
vxor 29,29,29 | |||||
vspltisw 26,-1 | |||||
lvsl 24,0,4 | |||||
lvsr 25,0,3 | |||||
vperm 26,29,26,25 | |||||
lvsl 29,0,16 | |||||
vspltisb 30,3 | |||||
vxor 29,29,30 | |||||
vxor 25,25,30 | |||||
vperm 24,24,24,29 | |||||
li 0,10 | |||||
b .Loop_outer_vmx | |||||
.align 4 | |||||
.Loop_outer_vmx: | |||||
lis 16,0x6170 | |||||
lis 17,0x3320 | |||||
vor 0,12,12 | |||||
lis 18,0x7962 | |||||
lis 19,0x6b20 | |||||
vor 4,12,12 | |||||
ori 16,16,0x7865 | |||||
ori 17,17,0x646e | |||||
vor 8,12,12 | |||||
ori 18,18,0x2d32 | |||||
ori 19,19,0x6574 | |||||
vor 1,13,13 | |||||
lwz 20,0(6) | |||||
vor 5,13,13 | |||||
lwz 21,4(6) | |||||
vor 9,13,13 | |||||
lwz 22,8(6) | |||||
vor 2,14,14 | |||||
lwz 23,12(6) | |||||
vor 6,14,14 | |||||
lwz 24,16(6) | |||||
vor 10,14,14 | |||||
mr 28,11 | |||||
lwz 25,20(6) | |||||
vor 3,15,15 | |||||
mr 29,12 | |||||
lwz 26,24(6) | |||||
vor 7,16,16 | |||||
mr 30,14 | |||||
lwz 27,28(6) | |||||
vor 11,17,17 | |||||
mr 31,15 | |||||
mr 7,20 | |||||
mr 8,21 | |||||
mr 9,22 | |||||
mr 10,23 | |||||
vspltisw 27,12 | |||||
vspltisw 28,7 | |||||
mtctr 0 | |||||
nop | |||||
.Loop_vmx: | |||||
vadduwm 0,0,1 | |||||
vadduwm 4,4,5 | |||||
vadduwm 8,8,9 | |||||
add 16,16,20 | |||||
add 17,17,21 | |||||
add 18,18,22 | |||||
vxor 3,3,0 | |||||
vxor 7,7,4 | |||||
vxor 11,11,8 | |||||
add 19,19,23 | |||||
xor 28,28,16 | |||||
xor 29,29,17 | |||||
vperm 3,3,3,19 | |||||
vperm 7,7,7,19 | |||||
vperm 11,11,11,19 | |||||
xor 30,30,18 | |||||
xor 31,31,19 | |||||
rotlwi 28,28,16 | |||||
vadduwm 2,2,3 | |||||
vadduwm 6,6,7 | |||||
vadduwm 10,10,11 | |||||
rotlwi 29,29,16 | |||||
rotlwi 30,30,16 | |||||
rotlwi 31,31,16 | |||||
vxor 1,1,2 | |||||
vxor 5,5,6 | |||||
vxor 9,9,10 | |||||
add 24,24,28 | |||||
add 25,25,29 | |||||
add 26,26,30 | |||||
vrlw 1,1,27 | |||||
vrlw 5,5,27 | |||||
vrlw 9,9,27 | |||||
add 27,27,31 | |||||
xor 20,20,24 | |||||
xor 21,21,25 | |||||
vadduwm 0,0,1 | |||||
vadduwm 4,4,5 | |||||
vadduwm 8,8,9 | |||||
xor 22,22,26 | |||||
xor 23,23,27 | |||||
rotlwi 20,20,12 | |||||
vxor 3,3,0 | |||||
vxor 7,7,4 | |||||
vxor 11,11,8 | |||||
rotlwi 21,21,12 | |||||
rotlwi 22,22,12 | |||||
rotlwi 23,23,12 | |||||
vperm 3,3,3,23 | |||||
vperm 7,7,7,23 | |||||
vperm 11,11,11,23 | |||||
add 16,16,20 | |||||
add 17,17,21 | |||||
add 18,18,22 | |||||
vadduwm 2,2,3 | |||||
vadduwm 6,6,7 | |||||
vadduwm 10,10,11 | |||||
add 19,19,23 | |||||
xor 28,28,16 | |||||
xor 29,29,17 | |||||
vxor 1,1,2 | |||||
vxor 5,5,6 | |||||
vxor 9,9,10 | |||||
xor 30,30,18 | |||||
xor 31,31,19 | |||||
rotlwi 28,28,8 | |||||
vrlw 1,1,28 | |||||
vrlw 5,5,28 | |||||
vrlw 9,9,28 | |||||
rotlwi 29,29,8 | |||||
rotlwi 30,30,8 | |||||
rotlwi 31,31,8 | |||||
vsldoi 2,2,2, 16-8 | |||||
vsldoi 6,6,6, 16-8 | |||||
vsldoi 10,10,10, 16-8 | |||||
add 24,24,28 | |||||
add 25,25,29 | |||||
add 26,26,30 | |||||
vsldoi 1,1,1, 16-12 | |||||
vsldoi 5,5,5, 16-12 | |||||
vsldoi 9,9,9, 16-12 | |||||
add 27,27,31 | |||||
xor 20,20,24 | |||||
xor 21,21,25 | |||||
vsldoi 3,3,3, 16-4 | |||||
vsldoi 7,7,7, 16-4 | |||||
vsldoi 11,11,11, 16-4 | |||||
xor 22,22,26 | |||||
xor 23,23,27 | |||||
rotlwi 20,20,7 | |||||
rotlwi 21,21,7 | |||||
rotlwi 22,22,7 | |||||
rotlwi 23,23,7 | |||||
vadduwm 0,0,1 | |||||
vadduwm 4,4,5 | |||||
vadduwm 8,8,9 | |||||
add 16,16,21 | |||||
add 17,17,22 | |||||
add 18,18,23 | |||||
vxor 3,3,0 | |||||
vxor 7,7,4 | |||||
vxor 11,11,8 | |||||
add 19,19,20 | |||||
xor 31,31,16 | |||||
xor 28,28,17 | |||||
vperm 3,3,3,19 | |||||
vperm 7,7,7,19 | |||||
vperm 11,11,11,19 | |||||
xor 29,29,18 | |||||
xor 30,30,19 | |||||
rotlwi 31,31,16 | |||||
vadduwm 2,2,3 | |||||
vadduwm 6,6,7 | |||||
vadduwm 10,10,11 | |||||
rotlwi 28,28,16 | |||||
rotlwi 29,29,16 | |||||
rotlwi 30,30,16 | |||||
vxor 1,1,2 | |||||
vxor 5,5,6 | |||||
vxor 9,9,10 | |||||
add 26,26,31 | |||||
add 27,27,28 | |||||
add 24,24,29 | |||||
vrlw 1,1,27 | |||||
vrlw 5,5,27 | |||||
vrlw 9,9,27 | |||||
add 25,25,30 | |||||
xor 21,21,26 | |||||
xor 22,22,27 | |||||
vadduwm 0,0,1 | |||||
vadduwm 4,4,5 | |||||
vadduwm 8,8,9 | |||||
xor 23,23,24 | |||||
xor 20,20,25 | |||||
rotlwi 21,21,12 | |||||
vxor 3,3,0 | |||||
vxor 7,7,4 | |||||
vxor 11,11,8 | |||||
rotlwi 22,22,12 | |||||
rotlwi 23,23,12 | |||||
rotlwi 20,20,12 | |||||
vperm 3,3,3,23 | |||||
vperm 7,7,7,23 | |||||
vperm 11,11,11,23 | |||||
add 16,16,21 | |||||
add 17,17,22 | |||||
add 18,18,23 | |||||
vadduwm 2,2,3 | |||||
vadduwm 6,6,7 | |||||
vadduwm 10,10,11 | |||||
add 19,19,20 | |||||
xor 31,31,16 | |||||
xor 28,28,17 | |||||
vxor 1,1,2 | |||||
vxor 5,5,6 | |||||
vxor 9,9,10 | |||||
xor 29,29,18 | |||||
xor 30,30,19 | |||||
rotlwi 31,31,8 | |||||
vrlw 1,1,28 | |||||
vrlw 5,5,28 | |||||
vrlw 9,9,28 | |||||
rotlwi 28,28,8 | |||||
rotlwi 29,29,8 | |||||
rotlwi 30,30,8 | |||||
vsldoi 2,2,2, 16-8 | |||||
vsldoi 6,6,6, 16-8 | |||||
vsldoi 10,10,10, 16-8 | |||||
add 26,26,31 | |||||
add 27,27,28 | |||||
add 24,24,29 | |||||
vsldoi 1,1,1, 16-4 | |||||
vsldoi 5,5,5, 16-4 | |||||
vsldoi 9,9,9, 16-4 | |||||
add 25,25,30 | |||||
xor 21,21,26 | |||||
xor 22,22,27 | |||||
vsldoi 3,3,3, 16-12 | |||||
vsldoi 7,7,7, 16-12 | |||||
vsldoi 11,11,11, 16-12 | |||||
xor 23,23,24 | |||||
xor 20,20,25 | |||||
rotlwi 21,21,7 | |||||
rotlwi 22,22,7 | |||||
rotlwi 23,23,7 | |||||
rotlwi 20,20,7 | |||||
bdnz .Loop_vmx | |||||
subi 5,5,256 | |||||
addi 16,16,0x7865 | |||||
addi 17,17,0x646e | |||||
addi 18,18,0x2d32 | |||||
addi 19,19,0x6574 | |||||
addis 16,16,0x6170 | |||||
addis 17,17,0x3320 | |||||
addis 18,18,0x7962 | |||||
addis 19,19,0x6b20 | |||||
add 20,20,7 | |||||
lwz 7,16(6) | |||||
add 21,21,8 | |||||
lwz 8,20(6) | |||||
add 22,22,9 | |||||
lwz 9,24(6) | |||||
add 23,23,10 | |||||
lwz 10,28(6) | |||||
add 24,24,7 | |||||
add 25,25,8 | |||||
add 26,26,9 | |||||
add 27,27,10 | |||||
add 28,28,11 | |||||
add 29,29,12 | |||||
add 30,30,14 | |||||
add 31,31,15 | |||||
vadduwm 0,0,12 | |||||
vadduwm 4,4,12 | |||||
vadduwm 8,8,12 | |||||
vadduwm 1,1,13 | |||||
vadduwm 5,5,13 | |||||
vadduwm 9,9,13 | |||||
vadduwm 2,2,14 | |||||
vadduwm 6,6,14 | |||||
vadduwm 10,10,14 | |||||
vadduwm 3,3,15 | |||||
vadduwm 7,7,16 | |||||
vadduwm 11,11,17 | |||||
addi 11,11,4 | |||||
vadduwm 15,15,18 | |||||
vadduwm 16,16,18 | |||||
vadduwm 17,17,18 | |||||
mr 7,16 | |||||
rotlwi 16,16,8 | |||||
rlwimi 16,7,24,0,7 | |||||
rlwimi 16,7,24,16,23 | |||||
mr 8,17 | |||||
rotlwi 17,17,8 | |||||
rlwimi 17,8,24,0,7 | |||||
rlwimi 17,8,24,16,23 | |||||
mr 9,18 | |||||
rotlwi 18,18,8 | |||||
rlwimi 18,9,24,0,7 | |||||
rlwimi 18,9,24,16,23 | |||||
mr 10,19 | |||||
rotlwi 19,19,8 | |||||
rlwimi 19,10,24,0,7 | |||||
rlwimi 19,10,24,16,23 | |||||
mr 7,20 | |||||
rotlwi 20,20,8 | |||||
rlwimi 20,7,24,0,7 | |||||
rlwimi 20,7,24,16,23 | |||||
mr 8,21 | |||||
rotlwi 21,21,8 | |||||
rlwimi 21,8,24,0,7 | |||||
rlwimi 21,8,24,16,23 | |||||
mr 9,22 | |||||
rotlwi 22,22,8 | |||||
rlwimi 22,9,24,0,7 | |||||
rlwimi 22,9,24,16,23 | |||||
mr 10,23 | |||||
rotlwi 23,23,8 | |||||
rlwimi 23,10,24,0,7 | |||||
rlwimi 23,10,24,16,23 | |||||
mr 7,24 | |||||
rotlwi 24,24,8 | |||||
rlwimi 24,7,24,0,7 | |||||
rlwimi 24,7,24,16,23 | |||||
mr 8,25 | |||||
rotlwi 25,25,8 | |||||
rlwimi 25,8,24,0,7 | |||||
rlwimi 25,8,24,16,23 | |||||
mr 9,26 | |||||
rotlwi 26,26,8 | |||||
rlwimi 26,9,24,0,7 | |||||
rlwimi 26,9,24,16,23 | |||||
mr 10,27 | |||||
rotlwi 27,27,8 | |||||
rlwimi 27,10,24,0,7 | |||||
rlwimi 27,10,24,16,23 | |||||
mr 7,28 | |||||
rotlwi 28,28,8 | |||||
rlwimi 28,7,24,0,7 | |||||
rlwimi 28,7,24,16,23 | |||||
mr 8,29 | |||||
rotlwi 29,29,8 | |||||
rlwimi 29,8,24,0,7 | |||||
rlwimi 29,8,24,16,23 | |||||
mr 9,30 | |||||
rotlwi 30,30,8 | |||||
rlwimi 30,9,24,0,7 | |||||
rlwimi 30,9,24,16,23 | |||||
mr 10,31 | |||||
rotlwi 31,31,8 | |||||
rlwimi 31,10,24,0,7 | |||||
rlwimi 31,10,24,16,23 | |||||
lwz 7,0(4) | |||||
lwz 8,4(4) | |||||
lwz 9,8(4) | |||||
lwz 10,12(4) | |||||
xor 16,16,7 | |||||
lwz 7,16(4) | |||||
xor 17,17,8 | |||||
lwz 8,20(4) | |||||
xor 18,18,9 | |||||
lwz 9,24(4) | |||||
xor 19,19,10 | |||||
lwz 10,28(4) | |||||
xor 20,20,7 | |||||
lwz 7,32(4) | |||||
xor 21,21,8 | |||||
lwz 8,36(4) | |||||
xor 22,22,9 | |||||
lwz 9,40(4) | |||||
xor 23,23,10 | |||||
lwz 10,44(4) | |||||
xor 24,24,7 | |||||
lwz 7,48(4) | |||||
xor 25,25,8 | |||||
lwz 8,52(4) | |||||
xor 26,26,9 | |||||
lwz 9,56(4) | |||||
xor 27,27,10 | |||||
lwz 10,60(4) | |||||
xor 28,28,7 | |||||
stw 16,0(3) | |||||
xor 29,29,8 | |||||
stw 17,4(3) | |||||
xor 30,30,9 | |||||
stw 18,8(3) | |||||
xor 31,31,10 | |||||
stw 19,12(3) | |||||
addi 4,4,64 | |||||
stw 20,16(3) | |||||
li 7,16 | |||||
stw 21,20(3) | |||||
li 8,32 | |||||
stw 22,24(3) | |||||
li 9,48 | |||||
stw 23,28(3) | |||||
li 10,64 | |||||
stw 24,32(3) | |||||
stw 25,36(3) | |||||
stw 26,40(3) | |||||
stw 27,44(3) | |||||
stw 28,48(3) | |||||
stw 29,52(3) | |||||
stw 30,56(3) | |||||
stw 31,60(3) | |||||
addi 3,3,64 | |||||
lvx 27,0,4 | |||||
lvx 28,7,4 | |||||
lvx 29,8,4 | |||||
lvx 30,9,4 | |||||
lvx 31,10,4 | |||||
addi 4,4,64 | |||||
vperm 27,27,28,24 | |||||
vperm 28,28,29,24 | |||||
vperm 29,29,30,24 | |||||
vperm 30,30,31,24 | |||||
vxor 0,0,27 | |||||
vxor 1,1,28 | |||||
lvx 28,7,4 | |||||
vxor 2,2,29 | |||||
lvx 29,8,4 | |||||
vxor 3,3,30 | |||||
lvx 30,9,4 | |||||
lvx 27,10,4 | |||||
addi 4,4,64 | |||||
li 10,63 | |||||
vperm 0,0,0,25 | |||||
vperm 1,1,1,25 | |||||
vperm 2,2,2,25 | |||||
vperm 3,3,3,25 | |||||
vperm 31,31,28,24 | |||||
vperm 28,28,29,24 | |||||
vperm 29,29,30,24 | |||||
vperm 30,30,27,24 | |||||
vxor 4,4,31 | |||||
vxor 5,5,28 | |||||
lvx 28,7,4 | |||||
vxor 6,6,29 | |||||
lvx 29,8,4 | |||||
vxor 7,7,30 | |||||
lvx 30,9,4 | |||||
lvx 31,10,4 | |||||
addi 4,4,64 | |||||
vperm 4,4,4,25 | |||||
vperm 5,5,5,25 | |||||
vperm 6,6,6,25 | |||||
vperm 7,7,7,25 | |||||
vperm 27,27,28,24 | |||||
vperm 28,28,29,24 | |||||
vperm 29,29,30,24 | |||||
vperm 30,30,31,24 | |||||
vxor 8,8,27 | |||||
vxor 9,9,28 | |||||
vxor 10,10,29 | |||||
vxor 11,11,30 | |||||
vperm 8,8,8,25 | |||||
vperm 9,9,9,25 | |||||
vperm 10,10,10,25 | |||||
vperm 11,11,11,25 | |||||
andi. 17,3,15 | |||||
mr 16,3 | |||||
vsel 27,0,1,26 | |||||
vsel 28,1,2,26 | |||||
vsel 29,2,3,26 | |||||
vsel 30,3,4,26 | |||||
vsel 1,4,5,26 | |||||
vsel 2,5,6,26 | |||||
vsel 3,6,7,26 | |||||
vsel 4,7,8,26 | |||||
vsel 5,8,9,26 | |||||
vsel 6,9,10,26 | |||||
vsel 7,10,11,26 | |||||
stvx 27,7,3 | |||||
stvx 28,8,3 | |||||
stvx 29,9,3 | |||||
addi 3,3,64 | |||||
stvx 30,0,3 | |||||
stvx 1,7,3 | |||||
stvx 2,8,3 | |||||
stvx 3,9,3 | |||||
addi 3,3,64 | |||||
stvx 4,0,3 | |||||
stvx 5,7,3 | |||||
stvx 6,8,3 | |||||
stvx 7,9,3 | |||||
addi 3,3,64 | |||||
beq .Laligned_vmx | |||||
sub 18,3,17 | |||||
li 19,0 | |||||
.Lunaligned_tail_vmx: | |||||
stvebx 11,19,18 | |||||
addi 19,19,1 | |||||
cmpw 19,17 | |||||
bne .Lunaligned_tail_vmx | |||||
sub 18,16,17 | |||||
.Lunaligned_head_vmx: | |||||
stvebx 0,17,18 | |||||
cmpwi 17,15 | |||||
addi 17,17,1 | |||||
bne .Lunaligned_head_vmx | |||||
cmplwi 5,255 | |||||
bgt .Loop_outer_vmx | |||||
b .Ldone_vmx | |||||
.align 4 | |||||
.Laligned_vmx: | |||||
stvx 0,0,16 | |||||
cmplwi 5,255 | |||||
bgt .Loop_outer_vmx | |||||
nop | |||||
.Ldone_vmx: | |||||
cmplwi 5,0 | |||||
bnel __ChaCha20_1x | |||||
lwz 12,244(1) | |||||
li 10,103 | |||||
li 11,119 | |||||
mtspr 256,12 | |||||
lvx 23,10,1 | |||||
addi 10,10,32 | |||||
lvx 24,11,1 | |||||
addi 11,11,32 | |||||
lvx 25,10,1 | |||||
addi 10,10,32 | |||||
lvx 26,11,1 | |||||
addi 11,11,32 | |||||
lvx 27,10,1 | |||||
addi 10,10,32 | |||||
lvx 28,11,1 | |||||
addi 11,11,32 | |||||
lvx 29,10,1 | |||||
addi 10,10,32 | |||||
lvx 30,11,1 | |||||
lvx 31,10,1 | |||||
lwz 0, 324(1) | |||||
lwz 14,248(1) | |||||
lwz 15,252(1) | |||||
lwz 16,256(1) | |||||
lwz 17,260(1) | |||||
lwz 18,264(1) | |||||
lwz 19,268(1) | |||||
lwz 20,272(1) | |||||
lwz 21,276(1) | |||||
lwz 22,280(1) | |||||
lwz 23,284(1) | |||||
lwz 24,288(1) | |||||
lwz 25,292(1) | |||||
lwz 26,296(1) | |||||
lwz 27,300(1) | |||||
lwz 28,304(1) | |||||
lwz 29,308(1) | |||||
lwz 30,312(1) | |||||
lwz 31,316(1) | |||||
mtlr 0 | |||||
addi 1,1,320 | |||||
blr | |||||
.long 0 | |||||
.byte 0,12,0x04,1,0x80,18,5,0 | |||||
.long 0 | |||||
.size ChaCha20_ctr32_vmx,.-ChaCha20_ctr32_vmx | |||||
.globl ChaCha20_ctr32_vsx | |||||
.type ChaCha20_ctr32_vsx,@function | |||||
.align 5 | |||||
ChaCha20_ctr32_vsx: | |||||
stwu 1,-200(1) | |||||
mflr 0 | |||||
li 10,103 | |||||
li 11,119 | |||||
mfspr 12,256 | |||||
stvx 26,10,1 | |||||
addi 10,10,32 | |||||
stvx 27,11,1 | |||||
addi 11,11,32 | |||||
stvx 28,10,1 | |||||
addi 10,10,32 | |||||
stvx 29,11,1 | |||||
addi 11,11,32 | |||||
stvx 30,10,1 | |||||
stvx 31,11,1 | |||||
stw 12,196(1) | |||||
li 12,-4096+63 | |||||
stw 0, 204(1) | |||||
mtspr 256,12 | |||||
bl .Lconsts | |||||
.long 0x7E006619 | |||||
addi 12,12,0x50 | |||||
li 8,16 | |||||
li 9,32 | |||||
li 10,48 | |||||
li 11,64 | |||||
.long 0x7E203619 | |||||
.long 0x7E483619 | |||||
.long 0x7E603E19 | |||||
vxor 27,27,27 | |||||
.long 0x7F8B6619 | |||||
vspltw 26,19,0 | |||||
vsldoi 19,19,27,4 | |||||
vsldoi 19,27,19,12 | |||||
vadduwm 26,26,28 | |||||
lvsl 31,0,8 | |||||
vspltisb 27,3 | |||||
vxor 31,31,27 | |||||
li 0,10 | |||||
mtctr 0 | |||||
b .Loop_outer_vsx | |||||
.align 5 | |||||
.Loop_outer_vsx: | |||||
lvx 0,0,12 | |||||
lvx 1,8,12 | |||||
lvx 2,9,12 | |||||
lvx 3,10,12 | |||||
vspltw 4,17,0 | |||||
vspltw 5,17,1 | |||||
vspltw 6,17,2 | |||||
vspltw 7,17,3 | |||||
vspltw 8,18,0 | |||||
vspltw 9,18,1 | |||||
vspltw 10,18,2 | |||||
vspltw 11,18,3 | |||||
vor 12,26,26 | |||||
vspltw 13,19,1 | |||||
vspltw 14,19,2 | |||||
vspltw 15,19,3 | |||||
vspltisw 27,-16 | |||||
vspltisw 28,12 | |||||
vspltisw 29,8 | |||||
vspltisw 30,7 | |||||
.Loop_vsx: | |||||
vadduwm 0,0,4 | |||||
vadduwm 1,1,5 | |||||
vadduwm 2,2,6 | |||||
vadduwm 3,3,7 | |||||
vxor 12,12,0 | |||||
vxor 13,13,1 | |||||
vxor 14,14,2 | |||||
vxor 15,15,3 | |||||
vrlw 12,12,27 | |||||
vrlw 13,13,27 | |||||
vrlw 14,14,27 | |||||
vrlw 15,15,27 | |||||
vadduwm 8,8,12 | |||||
vadduwm 9,9,13 | |||||
vadduwm 10,10,14 | |||||
vadduwm 11,11,15 | |||||
vxor 4,4,8 | |||||
vxor 5,5,9 | |||||
vxor 6,6,10 | |||||
vxor 7,7,11 | |||||
vrlw 4,4,28 | |||||
vrlw 5,5,28 | |||||
vrlw 6,6,28 | |||||
vrlw 7,7,28 | |||||
vadduwm 0,0,4 | |||||
vadduwm 1,1,5 | |||||
vadduwm 2,2,6 | |||||
vadduwm 3,3,7 | |||||
vxor 12,12,0 | |||||
vxor 13,13,1 | |||||
vxor 14,14,2 | |||||
vxor 15,15,3 | |||||
vrlw 12,12,29 | |||||
vrlw 13,13,29 | |||||
vrlw 14,14,29 | |||||
vrlw 15,15,29 | |||||
vadduwm 8,8,12 | |||||
vadduwm 9,9,13 | |||||
vadduwm 10,10,14 | |||||
vadduwm 11,11,15 | |||||
vxor 4,4,8 | |||||
vxor 5,5,9 | |||||
vxor 6,6,10 | |||||
vxor 7,7,11 | |||||
vrlw 4,4,30 | |||||
vrlw 5,5,30 | |||||
vrlw 6,6,30 | |||||
vrlw 7,7,30 | |||||
vadduwm 0,0,5 | |||||
vadduwm 1,1,6 | |||||
vadduwm 2,2,7 | |||||
vadduwm 3,3,4 | |||||
vxor 15,15,0 | |||||
vxor 12,12,1 | |||||
vxor 13,13,2 | |||||
vxor 14,14,3 | |||||
vrlw 15,15,27 | |||||
vrlw 12,12,27 | |||||
vrlw 13,13,27 | |||||
vrlw 14,14,27 | |||||
vadduwm 10,10,15 | |||||
vadduwm 11,11,12 | |||||
vadduwm 8,8,13 | |||||
vadduwm 9,9,14 | |||||
vxor 5,5,10 | |||||
vxor 6,6,11 | |||||
vxor 7,7,8 | |||||
vxor 4,4,9 | |||||
vrlw 5,5,28 | |||||
vrlw 6,6,28 | |||||
vrlw 7,7,28 | |||||
vrlw 4,4,28 | |||||
vadduwm 0,0,5 | |||||
vadduwm 1,1,6 | |||||
vadduwm 2,2,7 | |||||
vadduwm 3,3,4 | |||||
vxor 15,15,0 | |||||
vxor 12,12,1 | |||||
vxor 13,13,2 | |||||
vxor 14,14,3 | |||||
vrlw 15,15,29 | |||||
vrlw 12,12,29 | |||||
vrlw 13,13,29 | |||||
vrlw 14,14,29 | |||||
vadduwm 10,10,15 | |||||
vadduwm 11,11,12 | |||||
vadduwm 8,8,13 | |||||
vadduwm 9,9,14 | |||||
vxor 5,5,10 | |||||
vxor 6,6,11 | |||||
vxor 7,7,8 | |||||
vxor 4,4,9 | |||||
vrlw 5,5,30 | |||||
vrlw 6,6,30 | |||||
vrlw 7,7,30 | |||||
vrlw 4,4,30 | |||||
bdnz .Loop_vsx | |||||
vadduwm 12,12,26 | |||||
.long 0x13600F8C | |||||
.long 0x13821F8C | |||||
.long 0x10000E8C | |||||
.long 0x10421E8C | |||||
.long 0x13A42F8C | |||||
.long 0x13C63F8C | |||||
.long 0xF0201057 | |||||
.long 0xF0601357 | |||||
.long 0xF01BE057 | |||||
.long 0xF05BE357 | |||||
.long 0x10842E8C | |||||
.long 0x10C63E8C | |||||
.long 0x13684F8C | |||||
.long 0x138A5F8C | |||||
.long 0xF0A43057 | |||||
.long 0xF0E43357 | |||||
.long 0xF09DF057 | |||||
.long 0xF0DDF357 | |||||
.long 0x11084E8C | |||||
.long 0x114A5E8C | |||||
.long 0x13AC6F8C | |||||
.long 0x13CE7F8C | |||||
.long 0xF1285057 | |||||
.long 0xF1685357 | |||||
.long 0xF11BE057 | |||||
.long 0xF15BE357 | |||||
.long 0x118C6E8C | |||||
.long 0x11CE7E8C | |||||
vspltisw 27,4 | |||||
vadduwm 26,26,27 | |||||
.long 0xF1AC7057 | |||||
.long 0xF1EC7357 | |||||
.long 0xF19DF057 | |||||
.long 0xF1DDF357 | |||||
vadduwm 0,0,16 | |||||
vadduwm 4,4,17 | |||||
vadduwm 8,8,18 | |||||
vadduwm 12,12,19 | |||||
vperm 0,0,0,31 | |||||
vperm 4,4,4,31 | |||||
vperm 8,8,8,31 | |||||
vperm 12,12,12,31 | |||||
cmplwi 5,0x40 | |||||
blt .Ltail_vsx | |||||
.long 0x7F602619 | |||||
.long 0x7F882619 | |||||
.long 0x7FA92619 | |||||
.long 0x7FCA2619 | |||||
vxor 27,27,0 | |||||
vxor 28,28,4 | |||||
vxor 29,29,8 | |||||
vxor 30,30,12 | |||||
.long 0x7F601F19 | |||||
.long 0x7F881F19 | |||||
addi 4,4,0x40 | |||||
.long 0x7FA91F19 | |||||
subi 5,5,0x40 | |||||
.long 0x7FCA1F19 | |||||
addi 3,3,0x40 | |||||
beq .Ldone_vsx | |||||
vadduwm 0,1,16 | |||||
vadduwm 4,5,17 | |||||
vadduwm 8,9,18 | |||||
vadduwm 12,13,19 | |||||
vperm 0,0,0,31 | |||||
vperm 4,4,4,31 | |||||
vperm 8,8,8,31 | |||||
vperm 12,12,12,31 | |||||
cmplwi 5,0x40 | |||||
blt .Ltail_vsx | |||||
.long 0x7F602619 | |||||
.long 0x7F882619 | |||||
.long 0x7FA92619 | |||||
.long 0x7FCA2619 | |||||
vxor 27,27,0 | |||||
vxor 28,28,4 | |||||
vxor 29,29,8 | |||||
vxor 30,30,12 | |||||
.long 0x7F601F19 | |||||
.long 0x7F881F19 | |||||
addi 4,4,0x40 | |||||
.long 0x7FA91F19 | |||||
subi 5,5,0x40 | |||||
.long 0x7FCA1F19 | |||||
addi 3,3,0x40 | |||||
beq .Ldone_vsx | |||||
vadduwm 0,2,16 | |||||
vadduwm 4,6,17 | |||||
vadduwm 8,10,18 | |||||
vadduwm 12,14,19 | |||||
vperm 0,0,0,31 | |||||
vperm 4,4,4,31 | |||||
vperm 8,8,8,31 | |||||
vperm 12,12,12,31 | |||||
cmplwi 5,0x40 | |||||
blt .Ltail_vsx | |||||
.long 0x7F602619 | |||||
.long 0x7F882619 | |||||
.long 0x7FA92619 | |||||
.long 0x7FCA2619 | |||||
vxor 27,27,0 | |||||
vxor 28,28,4 | |||||
vxor 29,29,8 | |||||
vxor 30,30,12 | |||||
.long 0x7F601F19 | |||||
.long 0x7F881F19 | |||||
addi 4,4,0x40 | |||||
.long 0x7FA91F19 | |||||
subi 5,5,0x40 | |||||
.long 0x7FCA1F19 | |||||
addi 3,3,0x40 | |||||
beq .Ldone_vsx | |||||
vadduwm 0,3,16 | |||||
vadduwm 4,7,17 | |||||
vadduwm 8,11,18 | |||||
vadduwm 12,15,19 | |||||
vperm 0,0,0,31 | |||||
vperm 4,4,4,31 | |||||
vperm 8,8,8,31 | |||||
vperm 12,12,12,31 | |||||
cmplwi 5,0x40 | |||||
blt .Ltail_vsx | |||||
.long 0x7F602619 | |||||
.long 0x7F882619 | |||||
.long 0x7FA92619 | |||||
.long 0x7FCA2619 | |||||
vxor 27,27,0 | |||||
vxor 28,28,4 | |||||
vxor 29,29,8 | |||||
vxor 30,30,12 | |||||
.long 0x7F601F19 | |||||
.long 0x7F881F19 | |||||
addi 4,4,0x40 | |||||
.long 0x7FA91F19 | |||||
subi 5,5,0x40 | |||||
.long 0x7FCA1F19 | |||||
addi 3,3,0x40 | |||||
mtctr 0 | |||||
bne .Loop_outer_vsx | |||||
.Ldone_vsx: | |||||
lwz 12,196(1) | |||||
li 10,103 | |||||
li 11,119 | |||||
lwz 0, 204(1) | |||||
mtspr 256,12 | |||||
lvx 26,10,1 | |||||
addi 10,10,32 | |||||
lvx 27,11,1 | |||||
addi 11,11,32 | |||||
lvx 28,10,1 | |||||
addi 10,10,32 | |||||
lvx 29,11,1 | |||||
addi 11,11,32 | |||||
lvx 30,10,1 | |||||
lvx 31,11,1 | |||||
mtlr 0 | |||||
addi 1,1,200 | |||||
blr | |||||
.align 4 | |||||
.Ltail_vsx: | |||||
addi 11,1,24 | |||||
mtctr 5 | |||||
.long 0x7C005F19 | |||||
.long 0x7C885F19 | |||||
.long 0x7D095F19 | |||||
.long 0x7D8A5F19 | |||||
subi 12,11,1 | |||||
subi 4,4,1 | |||||
subi 3,3,1 | |||||
.Loop_tail_vsx: | |||||
lbzu 6,1(12) | |||||
lbzu 7,1(4) | |||||
xor 6,6,7 | |||||
stbu 6,1(3) | |||||
bdnz .Loop_tail_vsx | |||||
.long 0x7E005F19 | |||||
.long 0x7E085F19 | |||||
.long 0x7E095F19 | |||||
.long 0x7E0A5F19 | |||||
b .Ldone_vsx | |||||
.long 0 | |||||
.byte 0,12,0x04,1,0x80,0,5,0 | |||||
.long 0 | |||||
.size ChaCha20_ctr32_vsx,.-ChaCha20_ctr32_vsx | |||||
.align 5 | |||||
.Lconsts: | |||||
mflr 0 | |||||
bcl 20,31,$+4 | |||||
mflr 12 | |||||
addi 12,12,56 | |||||
mtlr 0 | |||||
blr | |||||
.long 0 | |||||
.byte 0,12,0x14,0,0,0,0,0 | |||||
.space 28 | |||||
.Lsigma: | |||||
.long 0x61707865,0x3320646e,0x79622d32,0x6b206574 | |||||
.long 1,0,0,0 | |||||
.long 4,0,0,0 | |||||
.long 0x02030001,0x06070405,0x0a0b0809,0x0e0f0c0d | |||||
.long 0x01020300,0x05060704,0x090a0b08,0x0d0e0f0c | |||||
.long 0x61707865,0x61707865,0x61707865,0x61707865 | |||||
.long 0x3320646e,0x3320646e,0x3320646e,0x3320646e | |||||
.long 0x79622d32,0x79622d32,0x79622d32,0x79622d32 | |||||
.long 0x6b206574,0x6b206574,0x6b206574,0x6b206574 | |||||
.long 0,1,2,3 | |||||
.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 | |||||
.align 2 | |||||
.align 2 |