.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"
.text
.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)
bc 16,0,.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)
bc 16,0,.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)
bc 16,0,.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
bc 16,0,.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
bc 16,0,.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