1876 lines
18 KiB
ArmAsm
1876 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"
|
||
|
.abiversion 2
|
||
|
.text
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_sqr_comba4:
|
||
|
.localentry bn_sqr_comba4,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
xor 0,0,0
|
||
|
|
||
|
|
||
|
|
||
|
ld 5,0(4)
|
||
|
mulld 9,5,5
|
||
|
mulhdu 10,5,5
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
std 9,0(3)
|
||
|
|
||
|
ld 6,8(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 8,5,6
|
||
|
|
||
|
addc 7,7,7
|
||
|
adde 8,8,8
|
||
|
addze 9,0
|
||
|
|
||
|
|
||
|
addc 10,7,10
|
||
|
addze 11,8
|
||
|
addze 9,9
|
||
|
|
||
|
std 10,8(3)
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
addc 11,7,11
|
||
|
adde 9,8,9
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6,16(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 11,16(3)
|
||
|
|
||
|
ld 6,24(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,8(4)
|
||
|
ld 6,16(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 9,24(3)
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
addc 10,7,10
|
||
|
adde 11,8,11
|
||
|
addze 9,0
|
||
|
|
||
|
ld 6,24(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 10,32(3)
|
||
|
|
||
|
ld 5,16(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 11,40(3)
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
addc 9,7,9
|
||
|
adde 10,8,10
|
||
|
|
||
|
std 9,48(3)
|
||
|
std 10,56(3)
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,2,0
|
||
|
.long 0
|
||
|
.size bn_sqr_comba4,.-bn_sqr_comba4
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_sqr_comba8:
|
||
|
.localentry bn_sqr_comba8,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
xor 0,0,0
|
||
|
|
||
|
|
||
|
|
||
|
ld 5,0(4)
|
||
|
mulld 9,5,5
|
||
|
mulhdu 10,5,5
|
||
|
std 9,0(3)
|
||
|
|
||
|
ld 6,8(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
std 10,8(3)
|
||
|
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
addc 11,7,11
|
||
|
adde 9,8,9
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6,16(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
std 11,16(3)
|
||
|
|
||
|
ld 6,24(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,8(4)
|
||
|
ld 6,16(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
std 9,24(3)
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
|
||
|
addc 10,7,10
|
||
|
adde 11,8,11
|
||
|
addze 9,0
|
||
|
|
||
|
ld 6,24(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,0(4)
|
||
|
ld 6,32(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 10,32(3)
|
||
|
|
||
|
ld 6,40(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,8(4)
|
||
|
ld 6,32(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,16(4)
|
||
|
ld 6,24(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 11,40(3)
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
addc 9,7,9
|
||
|
adde 10,8,10
|
||
|
addze 11,0
|
||
|
|
||
|
ld 6,32(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,8(4)
|
||
|
ld 6,40(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,0(4)
|
||
|
ld 6,48(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 9,48(3)
|
||
|
|
||
|
ld 6,56(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,8(4)
|
||
|
ld 6,48(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,16(4)
|
||
|
ld 6,40(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,24(4)
|
||
|
ld 6,32(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 10,56(3)
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
addc 11,7,11
|
||
|
adde 9,8,9
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6,40(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,16(4)
|
||
|
ld 6,48(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,8(4)
|
||
|
ld 6,56(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 11,64(3)
|
||
|
|
||
|
ld 5,16(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,24(4)
|
||
|
ld 6,48(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,32(4)
|
||
|
ld 6,40(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 9,72(3)
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
addc 10,7,10
|
||
|
adde 11,8,11
|
||
|
addze 9,0
|
||
|
|
||
|
ld 6,48(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,24(4)
|
||
|
ld 6,56(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 10,80(3)
|
||
|
|
||
|
ld 5,32(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
|
||
|
ld 5,40(4)
|
||
|
ld 6,48(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 11,88(3)
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
addc 9,7,9
|
||
|
adde 10,8,10
|
||
|
addze 11,0
|
||
|
|
||
|
ld 6,56(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 9,96(3)
|
||
|
|
||
|
|
||
|
ld 5,48(4)
|
||
|
mulld 7,5,6
|
||
|
mulhdu 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
|
||
|
std 10,104(3)
|
||
|
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
addc 11,7,11
|
||
|
adde 9,8,9
|
||
|
std 11,112(3)
|
||
|
std 9, 120(3)
|
||
|
|
||
|
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,2,0
|
||
|
.long 0
|
||
|
.size bn_sqr_comba8,.-bn_sqr_comba8
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_mul_comba4:
|
||
|
.localentry bn_mul_comba4,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
xor 0,0,0
|
||
|
|
||
|
ld 6,0(4)
|
||
|
ld 7,0(5)
|
||
|
mulld 10,6,7
|
||
|
mulhdu 11,6,7
|
||
|
std 10,0(3)
|
||
|
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,8,11
|
||
|
adde 12,9,0
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6, 8(4)
|
||
|
ld 7, 0(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,8,11
|
||
|
adde 12,9,12
|
||
|
addze 10,10
|
||
|
std 11,8(3)
|
||
|
|
||
|
ld 6,16(4)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,8,12
|
||
|
adde 10,9,10
|
||
|
addze 11,0
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,8,12
|
||
|
adde 10,9,10
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,0(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,8,12
|
||
|
adde 10,9,10
|
||
|
addze 11,11
|
||
|
std 12,16(3)
|
||
|
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,8,10
|
||
|
adde 11,9,11
|
||
|
addze 12,0
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,8,10
|
||
|
adde 11,9,11
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,16(4)
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,8,10
|
||
|
adde 11,9,11
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,0(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,8,10
|
||
|
adde 11,9,11
|
||
|
addze 12,12
|
||
|
std 10,24(3)
|
||
|
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,8,11
|
||
|
adde 12,9,12
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6,16(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,8,11
|
||
|
adde 12,9,12
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,8,11
|
||
|
adde 12,9,12
|
||
|
addze 10,10
|
||
|
std 11,32(3)
|
||
|
|
||
|
ld 6,16(4)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,8,12
|
||
|
adde 10,9,10
|
||
|
addze 11,0
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,8,12
|
||
|
adde 10,9,10
|
||
|
addze 11,11
|
||
|
std 12,40(3)
|
||
|
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,8,10
|
||
|
adde 11,9,11
|
||
|
|
||
|
std 10,48(3)
|
||
|
std 11,56(3)
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,3,0
|
||
|
.long 0
|
||
|
.size bn_mul_comba4,.-bn_mul_comba4
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_mul_comba8:
|
||
|
.localentry bn_mul_comba8,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
xor 0,0,0
|
||
|
|
||
|
|
||
|
ld 6,0(4)
|
||
|
ld 7,0(5)
|
||
|
mulld 10,6,7
|
||
|
mulhdu 11,6,7
|
||
|
std 10,0(3)
|
||
|
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
addze 12,9
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,0(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
std 11,8(3)
|
||
|
|
||
|
ld 6,16(4)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,0
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,0(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
std 12,16(3)
|
||
|
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,0
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
|
||
|
ld 6,16(4)
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,0(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
std 10,24(3)
|
||
|
|
||
|
ld 6,32(4)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,16(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,0(4)
|
||
|
ld 7,32(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
std 11,32(3)
|
||
|
|
||
|
ld 7,40(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,0
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,32(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,16(4)
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,32(4)
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,40(4)
|
||
|
ld 7,0(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
std 12,40(3)
|
||
|
|
||
|
ld 6,48(4)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,0
|
||
|
|
||
|
ld 6,40(4)
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,32(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,16(4)
|
||
|
ld 7,32(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,40(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,0(4)
|
||
|
ld 7,48(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
std 10,48(3)
|
||
|
|
||
|
ld 7,56(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,48(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,16(4)
|
||
|
ld 7,40(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,32(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,32(4)
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,40(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,48(4)
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,56(4)
|
||
|
ld 7,0(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
std 11,56(3)
|
||
|
|
||
|
ld 7,8(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,0
|
||
|
|
||
|
ld 6,48(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,40(4)
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,32(4)
|
||
|
ld 7,32(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,40(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,16(4)
|
||
|
ld 7,48(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,8(4)
|
||
|
ld 7,56(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
std 12,64(3)
|
||
|
|
||
|
ld 6,16(4)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,0
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,48(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,32(4)
|
||
|
ld 7,40(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,40(4)
|
||
|
ld 7,32(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,48(4)
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,56(4)
|
||
|
ld 7,16(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
std 10,72(3)
|
||
|
|
||
|
ld 7,24(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6,48(4)
|
||
|
ld 7,32(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,40(4)
|
||
|
ld 7,40(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,32(4)
|
||
|
ld 7,48(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
|
||
|
ld 6,24(4)
|
||
|
ld 7,56(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
std 11,80(3)
|
||
|
|
||
|
ld 6,32(4)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,0
|
||
|
|
||
|
ld 6,40(4)
|
||
|
ld 7,48(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,48(4)
|
||
|
ld 7,40(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
|
||
|
ld 6,56(4)
|
||
|
ld 7,32(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
addze 11,11
|
||
|
std 12,88(3)
|
||
|
|
||
|
ld 7,40(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,0
|
||
|
|
||
|
ld 6,48(4)
|
||
|
ld 7,48(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
|
||
|
ld 6,40(4)
|
||
|
ld 7,56(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 10,10,8
|
||
|
adde 11,11,9
|
||
|
addze 12,12
|
||
|
std 10,96(3)
|
||
|
|
||
|
ld 6,48(4)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,0
|
||
|
|
||
|
ld 6,56(4)
|
||
|
ld 7,48(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 11,11,8
|
||
|
adde 12,12,9
|
||
|
addze 10,10
|
||
|
std 11,104(3)
|
||
|
|
||
|
ld 7,56(5)
|
||
|
mulld 8,6,7
|
||
|
mulhdu 9,6,7
|
||
|
addc 12,12,8
|
||
|
adde 10,10,9
|
||
|
std 12,112(3)
|
||
|
std 10,120(3)
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,3,0
|
||
|
.long 0
|
||
|
.size bn_mul_comba8,.-bn_mul_comba8
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_sub_words:
|
||
|
.localentry bn_sub_words,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
xor 0,0,0
|
||
|
|
||
|
|
||
|
|
||
|
subfc. 7,0,6
|
||
|
|
||
|
|
||
|
beq .Lppcasm_sub_adios
|
||
|
addi 4,4,-8
|
||
|
addi 3,3,-8
|
||
|
addi 5,5,-8
|
||
|
mtctr 6
|
||
|
.Lppcasm_sub_mainloop:
|
||
|
ldu 7,8(4)
|
||
|
ldu 8,8(5)
|
||
|
subfe 6,8,7
|
||
|
|
||
|
|
||
|
stdu 6,8(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
|
||
|
.size bn_sub_words,.-bn_sub_words
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_add_words:
|
||
|
.localentry bn_add_words,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
xor 0,0,0
|
||
|
|
||
|
|
||
|
|
||
|
addic. 6,6,0
|
||
|
beq .Lppcasm_add_adios
|
||
|
addi 4,4,-8
|
||
|
addi 3,3,-8
|
||
|
addi 5,5,-8
|
||
|
mtctr 6
|
||
|
.Lppcasm_add_mainloop:
|
||
|
ldu 7,8(4)
|
||
|
ldu 8,8(5)
|
||
|
adde 8,7,8
|
||
|
stdu 8,8(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
|
||
|
.size bn_add_words,.-bn_add_words
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_div_words:
|
||
|
.localentry bn_div_words,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
cmpldi 0,5,0
|
||
|
bne .Lppcasm_div1
|
||
|
li 3,-1
|
||
|
blr
|
||
|
.Lppcasm_div1:
|
||
|
xor 0,0,0
|
||
|
li 8,64
|
||
|
cntlzd. 7,5
|
||
|
beq .Lppcasm_div2
|
||
|
subf 8,7,8
|
||
|
srd. 9,3,8
|
||
|
td 16,9,0
|
||
|
.Lppcasm_div2:
|
||
|
cmpld 0,3,5
|
||
|
blt .Lppcasm_div3
|
||
|
subf 3,5,3
|
||
|
.Lppcasm_div3:
|
||
|
cmpi 0,0,7,0
|
||
|
beq .Lppcasm_div4
|
||
|
sld 3,3,7
|
||
|
srd 8,4,8
|
||
|
sld 5,5,7
|
||
|
or 3,3,8
|
||
|
sld 4,4,7
|
||
|
.Lppcasm_div4:
|
||
|
srdi 9,5,32
|
||
|
|
||
|
|
||
|
li 6,2
|
||
|
mtctr 6
|
||
|
.Lppcasm_divouterloop:
|
||
|
srdi 8,3,32
|
||
|
srdi 11,4,32
|
||
|
|
||
|
cmpld 0,8,9
|
||
|
bne .Lppcasm_div5
|
||
|
|
||
|
li 8,-1
|
||
|
clrldi 8,8,32
|
||
|
b .Lppcasm_div6
|
||
|
.Lppcasm_div5:
|
||
|
divdu 8,3,9
|
||
|
.Lppcasm_div6:
|
||
|
mulld 12,9,8
|
||
|
clrldi 10,5,32
|
||
|
mulld 6,8,10
|
||
|
|
||
|
.Lppcasm_divinnerloop:
|
||
|
subf 10,12,3
|
||
|
srdi 7,10,32
|
||
|
addic. 7,7,0
|
||
|
|
||
|
|
||
|
|
||
|
sldi 7,10,32
|
||
|
or 7,7,11
|
||
|
cmpld 1,6,7
|
||
|
bne .Lppcasm_divinnerexit
|
||
|
ble 1,.Lppcasm_divinnerexit
|
||
|
addi 8,8,-1
|
||
|
subf 12,9,12
|
||
|
clrldi 10,5,32
|
||
|
subf 6,10,6
|
||
|
b .Lppcasm_divinnerloop
|
||
|
.Lppcasm_divinnerexit:
|
||
|
srdi 10,6,32
|
||
|
sldi 11,6,32
|
||
|
cmpld 1,4,11
|
||
|
add 12,12,10
|
||
|
bge 1,.Lppcasm_div7
|
||
|
addi 12,12,1
|
||
|
.Lppcasm_div7:
|
||
|
subf 11,11,4
|
||
|
cmpld 1,3,12
|
||
|
bge 1,.Lppcasm_div8
|
||
|
addi 8,8,-1
|
||
|
add 3,5,3
|
||
|
.Lppcasm_div8:
|
||
|
subf 12,12,3
|
||
|
sldi 4,11,32
|
||
|
|
||
|
|
||
|
|
||
|
insrdi 11,12,32,32
|
||
|
rotldi 3,11,32
|
||
|
bdz .Lppcasm_div9
|
||
|
sldi 0,8,32
|
||
|
b .Lppcasm_divouterloop
|
||
|
.Lppcasm_div9:
|
||
|
or 3,8,0
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,3,0
|
||
|
.long 0
|
||
|
.size bn_div_words,.-bn_div_words
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_sqr_words:
|
||
|
.localentry bn_sqr_words,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
addic. 5,5,0
|
||
|
beq .Lppcasm_sqr_adios
|
||
|
addi 4,4,-8
|
||
|
addi 3,3,-8
|
||
|
mtctr 5
|
||
|
.Lppcasm_sqr_mainloop:
|
||
|
|
||
|
ldu 6,8(4)
|
||
|
mulld 7,6,6
|
||
|
mulhdu 8,6,6
|
||
|
stdu 7,8(3)
|
||
|
stdu 8,8(3)
|
||
|
bdnz .Lppcasm_sqr_mainloop
|
||
|
.Lppcasm_sqr_adios:
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,3,0
|
||
|
.long 0
|
||
|
.size bn_sqr_words,.-bn_sqr_words
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_mul_words:
|
||
|
.localentry bn_mul_words,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
xor 0,0,0
|
||
|
xor 12,12,12
|
||
|
rlwinm. 7,5,30,2,31
|
||
|
beq .Lppcasm_mw_REM
|
||
|
mtctr 7
|
||
|
.Lppcasm_mw_LOOP:
|
||
|
|
||
|
ld 8,0(4)
|
||
|
mulld 9,6,8
|
||
|
mulhdu 10,6,8
|
||
|
addc 9,9,12
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
std 9,0(3)
|
||
|
|
||
|
ld 8,8(4)
|
||
|
mulld 11,6,8
|
||
|
mulhdu 12,6,8
|
||
|
adde 11,11,10
|
||
|
|
||
|
std 11,8(3)
|
||
|
|
||
|
ld 8,16(4)
|
||
|
mulld 9,6,8
|
||
|
mulhdu 10,6,8
|
||
|
adde 9,9,12
|
||
|
|
||
|
std 9,16(3)
|
||
|
|
||
|
ld 8,24(4)
|
||
|
mulld 11,6,8
|
||
|
mulhdu 12,6,8
|
||
|
adde 11,11,10
|
||
|
addze 12,12
|
||
|
|
||
|
std 11,24(3)
|
||
|
|
||
|
addi 3,3,32
|
||
|
addi 4,4,32
|
||
|
bdnz .Lppcasm_mw_LOOP
|
||
|
|
||
|
.Lppcasm_mw_REM:
|
||
|
andi. 5,5,0x3
|
||
|
beq .Lppcasm_mw_OVER
|
||
|
|
||
|
ld 8,0(4)
|
||
|
mulld 9,6,8
|
||
|
mulhdu 10,6,8
|
||
|
addc 9,9,12
|
||
|
addze 10,10
|
||
|
std 9,0(3)
|
||
|
addi 12,10,0
|
||
|
|
||
|
addi 5,5,-1
|
||
|
cmpli 0,0,5,0
|
||
|
beq .Lppcasm_mw_OVER
|
||
|
|
||
|
|
||
|
|
||
|
ld 8,8(4)
|
||
|
mulld 9,6,8
|
||
|
mulhdu 10,6,8
|
||
|
addc 9,9,12
|
||
|
addze 10,10
|
||
|
std 9,8(3)
|
||
|
addi 12,10,0
|
||
|
|
||
|
addi 5,5,-1
|
||
|
cmpli 0,0,5,0
|
||
|
beq .Lppcasm_mw_OVER
|
||
|
|
||
|
|
||
|
ld 8,16(4)
|
||
|
mulld 9,6,8
|
||
|
mulhdu 10,6,8
|
||
|
addc 9,9,12
|
||
|
addze 10,10
|
||
|
std 9,16(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
|
||
|
.size bn_mul_words,.-bn_mul_words
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
.align 4
|
||
|
bn_mul_add_words:
|
||
|
.localentry bn_mul_add_words,0
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
xor 0,0,0
|
||
|
xor 12,12,12
|
||
|
rlwinm. 7,5,30,2,31
|
||
|
beq .Lppcasm_maw_leftover
|
||
|
mtctr 7
|
||
|
.Lppcasm_maw_mainloop:
|
||
|
|
||
|
ld 8,0(4)
|
||
|
ld 11,0(3)
|
||
|
mulld 9,6,8
|
||
|
mulhdu 10,6,8
|
||
|
addc 9,9,12
|
||
|
addze 10,10
|
||
|
addc 9,9,11
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
std 9,0(3)
|
||
|
|
||
|
|
||
|
ld 8,8(4)
|
||
|
ld 9,8(3)
|
||
|
mulld 11,6,8
|
||
|
mulhdu 12,6,8
|
||
|
adde 11,11,10
|
||
|
addze 12,12
|
||
|
addc 11,11,9
|
||
|
|
||
|
std 11,8(3)
|
||
|
|
||
|
|
||
|
ld 8,16(4)
|
||
|
mulld 9,6,8
|
||
|
ld 11,16(3)
|
||
|
mulhdu 10,6,8
|
||
|
adde 9,9,12
|
||
|
addze 10,10
|
||
|
addc 9,9,11
|
||
|
|
||
|
std 9,16(3)
|
||
|
|
||
|
|
||
|
ld 8,24(4)
|
||
|
mulld 11,6,8
|
||
|
ld 9,24(3)
|
||
|
mulhdu 12,6,8
|
||
|
adde 11,11,10
|
||
|
addze 12,12
|
||
|
addc 11,11,9
|
||
|
addze 12,12
|
||
|
std 11,24(3)
|
||
|
addi 3,3,32
|
||
|
addi 4,4,32
|
||
|
bdnz .Lppcasm_maw_mainloop
|
||
|
|
||
|
.Lppcasm_maw_leftover:
|
||
|
andi. 5,5,0x3
|
||
|
beq .Lppcasm_maw_adios
|
||
|
addi 3,3,-8
|
||
|
addi 4,4,-8
|
||
|
|
||
|
mtctr 5
|
||
|
ldu 8,8(4)
|
||
|
mulld 9,6,8
|
||
|
mulhdu 10,6,8
|
||
|
ldu 11,8(3)
|
||
|
addc 9,9,11
|
||
|
addze 10,10
|
||
|
addc 9,9,12
|
||
|
addze 12,10
|
||
|
std 9,0(3)
|
||
|
|
||
|
bdz .Lppcasm_maw_adios
|
||
|
|
||
|
ldu 8,8(4)
|
||
|
mulld 9,6,8
|
||
|
mulhdu 10,6,8
|
||
|
ldu 11,8(3)
|
||
|
addc 9,9,11
|
||
|
addze 10,10
|
||
|
addc 9,9,12
|
||
|
addze 12,10
|
||
|
std 9,0(3)
|
||
|
|
||
|
bdz .Lppcasm_maw_adios
|
||
|
|
||
|
ldu 8,8(4)
|
||
|
mulld 9,6,8
|
||
|
mulhdu 10,6,8
|
||
|
ldu 11,8(3)
|
||
|
addc 9,9,11
|
||
|
addze 10,10
|
||
|
addc 9,9,12
|
||
|
addze 12,10
|
||
|
std 9,0(3)
|
||
|
|
||
|
.Lppcasm_maw_adios:
|
||
|
addi 3,12,0
|
||
|
blr
|
||
|
.long 0
|
||
|
.byte 0,12,0x14,0,0,0,4,0
|
||
|
.long 0
|
||
|
.size bn_mul_add_words,.-bn_mul_add_words
|
||
|
.align 4
|