Summary:
1. 34ab13b7d8
needs to be merged for ELFv2 support on big-endian.
2. crypto/openssl/crypto/ppccap.c needs to be patched.
Same reason as in https://github.com/openssl/openssl/pull/17082.
Approved by: jkim, jhibbits
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D33076
1494 lines
21 KiB
ArmAsm
1494 lines
21 KiB
ArmAsm
/* $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
|