
- crypto/external/bsd/heimdal - crypto/external/bsd/libsaslc - crypto/external/bsd/netpgp - crypto/external/bsd/openssl Change-Id: I91dbf05f33e637edf5b9bb408d5baddd7ba8cf75
1844 lines
18 KiB
ArmAsm
1844 lines
18 KiB
ArmAsm
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.globl bn_sqr_comba4
|
|
.type bn_sqr_comba4,@function
|
|
.globl bn_sqr_comba8
|
|
.type bn_sqr_comba8,@function
|
|
.globl bn_mul_comba4
|
|
.type bn_mul_comba4,@function
|
|
.globl bn_mul_comba8
|
|
.type bn_mul_comba8,@function
|
|
.globl bn_sub_words
|
|
.type bn_sub_words,@function
|
|
.globl bn_add_words
|
|
.type bn_add_words,@function
|
|
.globl bn_div_words
|
|
.type bn_div_words,@function
|
|
.globl bn_sqr_words
|
|
.type bn_sqr_words,@function
|
|
.globl bn_mul_words
|
|
.type bn_mul_words,@function
|
|
.globl bn_mul_add_words
|
|
.type bn_mul_add_words,@function
|
|
|
|
|
|
|
|
.machine "any"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_sqr_comba4:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xor 0,0,0
|
|
|
|
|
|
|
|
lwz 5,0(4)
|
|
mullw 9,5,5
|
|
mulhwu 10,5,5
|
|
|
|
|
|
|
|
|
|
stw 9,0(3)
|
|
|
|
lwz 6,4(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 7,7,7
|
|
adde 8,8,8
|
|
addze 9,0
|
|
|
|
|
|
addc 10,7,10
|
|
addze 11,8
|
|
addze 9,9
|
|
|
|
stw 10,4(3)
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,0
|
|
|
|
lwz 6,8(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 7,7,7
|
|
adde 8,8,8
|
|
addze 10,10
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
stw 11,8(3)
|
|
|
|
lwz 6,12(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 7,7,7
|
|
adde 8,8,8
|
|
addze 11,0
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
lwz 5,4(4)
|
|
lwz 6,8(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 7,7,7
|
|
adde 8,8,8
|
|
addze 11,11
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
stw 9,12(3)
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,0
|
|
|
|
lwz 6,12(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 7,7,7
|
|
adde 8,8,8
|
|
addze 9,9
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
stw 10,16(3)
|
|
|
|
lwz 5,8(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 7,7,7
|
|
adde 8,8,8
|
|
addze 10,0
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
stw 11,20(3)
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
|
|
stw 9,24(3)
|
|
stw 10,28(3)
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,2,0
|
|
.long 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_sqr_comba8:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xor 0,0,0
|
|
|
|
|
|
|
|
lwz 5,0(4)
|
|
mullw 9,5,5
|
|
mulhwu 10,5,5
|
|
stw 9,0(3)
|
|
|
|
lwz 6,4(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 10,7,10
|
|
adde 11,8,0
|
|
addze 9,0
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
|
|
stw 10,4(3)
|
|
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,0
|
|
|
|
lwz 6,8(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
stw 11,8(3)
|
|
|
|
lwz 6,12(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,0
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
lwz 5,4(4)
|
|
lwz 6,8(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
stw 9,12(3)
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,0
|
|
|
|
lwz 6,12(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
|
|
lwz 5,0(4)
|
|
lwz 6,16(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
stw 10,16(3)
|
|
|
|
lwz 6,20(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,0
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
lwz 5,4(4)
|
|
lwz 6,16(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
lwz 5,8(4)
|
|
lwz 6,12(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
stw 11,20(3)
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,0
|
|
|
|
lwz 6,16(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
lwz 5,4(4)
|
|
lwz 6,20(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
lwz 5,0(4)
|
|
lwz 6,24(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
stw 9,24(3)
|
|
|
|
lwz 6,28(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,0
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
|
|
lwz 5,4(4)
|
|
lwz 6,24(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
|
|
lwz 5,8(4)
|
|
lwz 6,20(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
|
|
lwz 5,12(4)
|
|
lwz 6,16(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
stw 10,28(3)
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,0
|
|
|
|
lwz 6,20(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
lwz 5,8(4)
|
|
lwz 6,24(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
lwz 5,4(4)
|
|
lwz 6,28(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
stw 11,32(3)
|
|
|
|
lwz 5,8(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,0
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
lwz 5,12(4)
|
|
lwz 6,24(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
|
|
lwz 5,16(4)
|
|
lwz 6,20(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
stw 9,36(3)
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,0
|
|
|
|
lwz 6,24(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
|
|
lwz 5,12(4)
|
|
lwz 6,28(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
stw 10,40(3)
|
|
|
|
lwz 5,16(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,0
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
|
|
lwz 5,20(4)
|
|
lwz 6,24(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
addze 10,10
|
|
stw 11,44(3)
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,0
|
|
|
|
lwz 6,28(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
addc 9,7,9
|
|
adde 10,8,10
|
|
addze 11,11
|
|
stw 9,48(3)
|
|
|
|
|
|
lwz 5,24(4)
|
|
mullw 7,5,6
|
|
mulhwu 8,5,6
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,0
|
|
addc 10,7,10
|
|
adde 11,8,11
|
|
addze 9,9
|
|
stw 10,52(3)
|
|
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
addc 11,7,11
|
|
adde 9,8,9
|
|
stw 11,56(3)
|
|
stw 9, 60(3)
|
|
|
|
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,2,0
|
|
.long 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_mul_comba4:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xor 0,0,0
|
|
|
|
lwz 6,0(4)
|
|
lwz 7,0(5)
|
|
mullw 10,6,7
|
|
mulhwu 11,6,7
|
|
stw 10,0(3)
|
|
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,8,11
|
|
adde 12,9,0
|
|
addze 10,0
|
|
|
|
lwz 6, 4(4)
|
|
lwz 7, 0(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,8,11
|
|
adde 12,9,12
|
|
addze 10,10
|
|
stw 11,4(3)
|
|
|
|
lwz 6,8(4)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,8,12
|
|
adde 10,9,10
|
|
addze 11,0
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,8,12
|
|
adde 10,9,10
|
|
addze 11,11
|
|
|
|
lwz 6,0(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,8,12
|
|
adde 10,9,10
|
|
addze 11,11
|
|
stw 12,8(3)
|
|
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,8,10
|
|
adde 11,9,11
|
|
addze 12,0
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,8,10
|
|
adde 11,9,11
|
|
addze 12,12
|
|
|
|
lwz 6,8(4)
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,8,10
|
|
adde 11,9,11
|
|
addze 12,12
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,0(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,8,10
|
|
adde 11,9,11
|
|
addze 12,12
|
|
stw 10,12(3)
|
|
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,8,11
|
|
adde 12,9,12
|
|
addze 10,0
|
|
|
|
lwz 6,8(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,8,11
|
|
adde 12,9,12
|
|
addze 10,10
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,8,11
|
|
adde 12,9,12
|
|
addze 10,10
|
|
stw 11,16(3)
|
|
|
|
lwz 6,8(4)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,8,12
|
|
adde 10,9,10
|
|
addze 11,0
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,8,12
|
|
adde 10,9,10
|
|
addze 11,11
|
|
stw 12,20(3)
|
|
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,8,10
|
|
adde 11,9,11
|
|
|
|
stw 10,24(3)
|
|
stw 11,28(3)
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,3,0
|
|
.long 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_mul_comba8:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xor 0,0,0
|
|
|
|
|
|
lwz 6,0(4)
|
|
lwz 7,0(5)
|
|
mullw 10,6,7
|
|
mulhwu 11,6,7
|
|
stw 10,0(3)
|
|
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
addze 12,9
|
|
addze 10,0
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,0(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
stw 11,4(3)
|
|
|
|
lwz 6,8(4)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,0
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,0(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
stw 12,8(3)
|
|
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,0
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
|
|
lwz 6,8(4)
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,0(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
stw 10,12(3)
|
|
|
|
lwz 6,16(4)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,0
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,8(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,0(4)
|
|
lwz 7,16(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
stw 11,16(3)
|
|
|
|
lwz 7,20(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,0
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,16(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,8(4)
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,16(4)
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,20(4)
|
|
lwz 7,0(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
stw 12,20(3)
|
|
|
|
lwz 6,24(4)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,0
|
|
|
|
lwz 6,20(4)
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,16(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,8(4)
|
|
lwz 7,16(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,20(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,0(4)
|
|
lwz 7,24(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
stw 10,24(3)
|
|
|
|
lwz 7,28(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,0
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,24(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,8(4)
|
|
lwz 7,20(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,16(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,16(4)
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,20(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,24(4)
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,28(4)
|
|
lwz 7,0(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
stw 11,28(3)
|
|
|
|
lwz 7,4(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,0
|
|
|
|
lwz 6,24(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,20(4)
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,16(4)
|
|
lwz 7,16(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,20(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,8(4)
|
|
lwz 7,24(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,4(4)
|
|
lwz 7,28(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
stw 12,32(3)
|
|
|
|
lwz 6,8(4)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,0
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,24(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,16(4)
|
|
lwz 7,20(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,20(4)
|
|
lwz 7,16(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,24(4)
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,28(4)
|
|
lwz 7,8(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
stw 10,36(3)
|
|
|
|
lwz 7,12(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,0
|
|
|
|
lwz 6,24(4)
|
|
lwz 7,16(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,20(4)
|
|
lwz 7,20(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,16(4)
|
|
lwz 7,24(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
|
|
lwz 6,12(4)
|
|
lwz 7,28(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
stw 11,40(3)
|
|
|
|
lwz 6,16(4)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,0
|
|
|
|
lwz 6,20(4)
|
|
lwz 7,24(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,24(4)
|
|
lwz 7,20(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
|
|
lwz 6,28(4)
|
|
lwz 7,16(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
addze 11,11
|
|
stw 12,44(3)
|
|
|
|
lwz 7,20(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,0
|
|
|
|
lwz 6,24(4)
|
|
lwz 7,24(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
|
|
lwz 6,20(4)
|
|
lwz 7,28(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 10,10,8
|
|
adde 11,11,9
|
|
addze 12,12
|
|
stw 10,48(3)
|
|
|
|
lwz 6,24(4)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,0
|
|
|
|
lwz 6,28(4)
|
|
lwz 7,24(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 11,11,8
|
|
adde 12,12,9
|
|
addze 10,10
|
|
stw 11,52(3)
|
|
|
|
lwz 7,28(5)
|
|
mullw 8,6,7
|
|
mulhwu 9,6,7
|
|
addc 12,12,8
|
|
adde 10,10,9
|
|
stw 12,56(3)
|
|
stw 10,60(3)
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,3,0
|
|
.long 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_sub_words:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xor 0,0,0
|
|
|
|
|
|
|
|
subfc. 7,0,6
|
|
|
|
|
|
beq .Lppcasm_sub_adios
|
|
addi 4,4,-4
|
|
addi 3,3,-4
|
|
addi 5,5,-4
|
|
mtctr 6
|
|
.Lppcasm_sub_mainloop:
|
|
lwzu 7,4(4)
|
|
lwzu 8,4(5)
|
|
subfe 6,8,7
|
|
|
|
|
|
stwu 6,4(3)
|
|
bdnz+ .Lppcasm_sub_mainloop
|
|
.Lppcasm_sub_adios:
|
|
subfze 3,0
|
|
andi. 3,3,1
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,4,0
|
|
.long 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_add_words:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xor 0,0,0
|
|
|
|
|
|
|
|
addic. 6,6,0
|
|
beq .Lppcasm_add_adios
|
|
addi 4,4,-4
|
|
addi 3,3,-4
|
|
addi 5,5,-4
|
|
mtctr 6
|
|
.Lppcasm_add_mainloop:
|
|
lwzu 7,4(4)
|
|
lwzu 8,4(5)
|
|
adde 8,7,8
|
|
stwu 8,4(3)
|
|
bdnz+ .Lppcasm_add_mainloop
|
|
.Lppcasm_add_adios:
|
|
addze 3,0
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,4,0
|
|
.long 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_div_words:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cmplwi 0,5,0
|
|
bne .Lppcasm_div1
|
|
li 3,-1
|
|
blr
|
|
.Lppcasm_div1:
|
|
xor 0,0,0
|
|
li 8,32
|
|
cntlzw. 7,5
|
|
beq .Lppcasm_div2
|
|
subf 8,7,8
|
|
srw. 9,3,8
|
|
tw 16,9,0
|
|
.Lppcasm_div2:
|
|
.long 0x7c032840
|
|
blt .Lppcasm_div3
|
|
subf 3,5,3
|
|
.Lppcasm_div3:
|
|
cmpi 0,0,7,0
|
|
beq .Lppcasm_div4
|
|
slw 3,3,7
|
|
srw 8,4,8
|
|
slw 5,5,7
|
|
or 3,3,8
|
|
slw 4,4,7
|
|
.Lppcasm_div4:
|
|
srwi 9,5,16
|
|
|
|
|
|
li 6,2
|
|
mtctr 6
|
|
.Lppcasm_divouterloop:
|
|
srwi 8,3,16
|
|
srwi 11,4,16
|
|
|
|
.long 0x7c084840
|
|
bne .Lppcasm_div5
|
|
|
|
li 8,-1
|
|
clrlwi 8,8,16
|
|
b .Lppcasm_div6
|
|
.Lppcasm_div5:
|
|
divwu 8,3,9
|
|
.Lppcasm_div6:
|
|
mullw 12,9,8
|
|
clrlwi 10,5,16
|
|
mullw 6,8,10
|
|
|
|
.Lppcasm_divinnerloop:
|
|
subf 10,12,3
|
|
srwi 7,10,16
|
|
addic. 7,7,0
|
|
|
|
|
|
|
|
slwi 7,10,16
|
|
or 7,7,11
|
|
.long 0x7c863840
|
|
bne .Lppcasm_divinnerexit
|
|
ble 1,.Lppcasm_divinnerexit
|
|
addi 8,8,-1
|
|
subf 12,9,12
|
|
clrlwi 10,5,16
|
|
subf 6,10,6
|
|
b .Lppcasm_divinnerloop
|
|
.Lppcasm_divinnerexit:
|
|
srwi 10,6,16
|
|
slwi 11,6,16
|
|
.long 0x7c845840
|
|
add 12,12,10
|
|
bge 1,.Lppcasm_div7
|
|
addi 12,12,1
|
|
.Lppcasm_div7:
|
|
subf 11,11,4
|
|
.long 0x7c836040
|
|
bge 1,.Lppcasm_div8
|
|
addi 8,8,-1
|
|
add 3,5,3
|
|
.Lppcasm_div8:
|
|
subf 12,12,3
|
|
slwi 4,11,16
|
|
|
|
|
|
|
|
insrwi 11,12,16,16
|
|
rotlwi 3,11,16
|
|
bdz .Lppcasm_div9
|
|
slwi 0,8,16
|
|
b .Lppcasm_divouterloop
|
|
.Lppcasm_div9:
|
|
or 3,8,0
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,3,0
|
|
.long 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_sqr_words:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addic. 5,5,0
|
|
beq .Lppcasm_sqr_adios
|
|
addi 4,4,-4
|
|
addi 3,3,-4
|
|
mtctr 5
|
|
.Lppcasm_sqr_mainloop:
|
|
|
|
lwzu 6,4(4)
|
|
mullw 7,6,6
|
|
mulhwu 8,6,6
|
|
stwu 7,4(3)
|
|
stwu 8,4(3)
|
|
bdnz+ .Lppcasm_sqr_mainloop
|
|
.Lppcasm_sqr_adios:
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,3,0
|
|
.long 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_mul_words:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xor 0,0,0
|
|
xor 12,12,12
|
|
rlwinm. 7,5,30,2,31
|
|
beq .Lppcasm_mw_REM
|
|
mtctr 7
|
|
.Lppcasm_mw_LOOP:
|
|
|
|
lwz 8,0(4)
|
|
mullw 9,6,8
|
|
mulhwu 10,6,8
|
|
addc 9,9,12
|
|
|
|
|
|
|
|
|
|
stw 9,0(3)
|
|
|
|
lwz 8,4(4)
|
|
mullw 11,6,8
|
|
mulhwu 12,6,8
|
|
adde 11,11,10
|
|
|
|
stw 11,4(3)
|
|
|
|
lwz 8,8(4)
|
|
mullw 9,6,8
|
|
mulhwu 10,6,8
|
|
adde 9,9,12
|
|
|
|
stw 9,8(3)
|
|
|
|
lwz 8,12(4)
|
|
mullw 11,6,8
|
|
mulhwu 12,6,8
|
|
adde 11,11,10
|
|
addze 12,12
|
|
|
|
stw 11,12(3)
|
|
|
|
addi 3,3,16
|
|
addi 4,4,16
|
|
bdnz+ .Lppcasm_mw_LOOP
|
|
|
|
.Lppcasm_mw_REM:
|
|
andi. 5,5,0x3
|
|
beq .Lppcasm_mw_OVER
|
|
|
|
lwz 8,0(4)
|
|
mullw 9,6,8
|
|
mulhwu 10,6,8
|
|
addc 9,9,12
|
|
addze 10,10
|
|
stw 9,0(3)
|
|
addi 12,10,0
|
|
|
|
addi 5,5,-1
|
|
cmpli 0,0,5,0
|
|
beq .Lppcasm_mw_OVER
|
|
|
|
|
|
|
|
lwz 8,4(4)
|
|
mullw 9,6,8
|
|
mulhwu 10,6,8
|
|
addc 9,9,12
|
|
addze 10,10
|
|
stw 9,4(3)
|
|
addi 12,10,0
|
|
|
|
addi 5,5,-1
|
|
cmpli 0,0,5,0
|
|
beq .Lppcasm_mw_OVER
|
|
|
|
|
|
lwz 8,8(4)
|
|
mullw 9,6,8
|
|
mulhwu 10,6,8
|
|
addc 9,9,12
|
|
addze 10,10
|
|
stw 9,8(3)
|
|
addi 12,10,0
|
|
|
|
.Lppcasm_mw_OVER:
|
|
addi 3,12,0
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,4,0
|
|
.long 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.align 4
|
|
bn_mul_add_words:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xor 0,0,0
|
|
xor 12,12,12
|
|
rlwinm. 7,5,30,2,31
|
|
beq .Lppcasm_maw_leftover
|
|
mtctr 7
|
|
.Lppcasm_maw_mainloop:
|
|
|
|
lwz 8,0(4)
|
|
lwz 11,0(3)
|
|
mullw 9,6,8
|
|
mulhwu 10,6,8
|
|
addc 9,9,12
|
|
addze 10,10
|
|
addc 9,9,11
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stw 9,0(3)
|
|
|
|
|
|
lwz 8,4(4)
|
|
lwz 9,4(3)
|
|
mullw 11,6,8
|
|
mulhwu 12,6,8
|
|
adde 11,11,10
|
|
addze 12,12
|
|
addc 11,11,9
|
|
|
|
stw 11,4(3)
|
|
|
|
|
|
lwz 8,8(4)
|
|
mullw 9,6,8
|
|
lwz 11,8(3)
|
|
mulhwu 10,6,8
|
|
adde 9,9,12
|
|
addze 10,10
|
|
addc 9,9,11
|
|
|
|
stw 9,8(3)
|
|
|
|
|
|
lwz 8,12(4)
|
|
mullw 11,6,8
|
|
lwz 9,12(3)
|
|
mulhwu 12,6,8
|
|
adde 11,11,10
|
|
addze 12,12
|
|
addc 11,11,9
|
|
addze 12,12
|
|
stw 11,12(3)
|
|
addi 3,3,16
|
|
addi 4,4,16
|
|
bdnz+ .Lppcasm_maw_mainloop
|
|
|
|
.Lppcasm_maw_leftover:
|
|
andi. 5,5,0x3
|
|
beq .Lppcasm_maw_adios
|
|
addi 3,3,-4
|
|
addi 4,4,-4
|
|
|
|
mtctr 5
|
|
lwzu 8,4(4)
|
|
mullw 9,6,8
|
|
mulhwu 10,6,8
|
|
lwzu 11,4(3)
|
|
addc 9,9,11
|
|
addze 10,10
|
|
addc 9,9,12
|
|
addze 12,10
|
|
stw 9,0(3)
|
|
|
|
bdz .Lppcasm_maw_adios
|
|
|
|
lwzu 8,4(4)
|
|
mullw 9,6,8
|
|
mulhwu 10,6,8
|
|
lwzu 11,4(3)
|
|
addc 9,9,11
|
|
addze 10,10
|
|
addc 9,9,12
|
|
addze 12,10
|
|
stw 9,0(3)
|
|
|
|
bdz .Lppcasm_maw_adios
|
|
|
|
lwzu 8,4(4)
|
|
mullw 9,6,8
|
|
mulhwu 10,6,8
|
|
lwzu 11,4(3)
|
|
addc 9,9,11
|
|
addze 10,10
|
|
addc 9,9,12
|
|
addze 12,10
|
|
stw 9,0(3)
|
|
|
|
.Lppcasm_maw_adios:
|
|
addi 3,12,0
|
|
blr
|
|
.long 0
|
|
.byte 0,12,0x14,0,0,0,4,0
|
|
.long 0
|
|
.align 4
|