diff options
Diffstat (limited to 'deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/bn/bn-ppc.s')
-rw-r--r-- | deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/bn/bn-ppc.s | 1853 |
1 files changed, 1853 insertions, 0 deletions
diff --git a/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/bn/bn-ppc.s b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/bn/bn-ppc.s new file mode 100644 index 0000000000..b029cc94b0 --- /dev/null +++ b/deps/openssl/config/archs/linux-ppc/asm_avx2/crypto/bn/bn-ppc.s @@ -0,0 +1,1853 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.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 +.size bn_sqr_comba4,.-bn_sqr_comba4 + + + + + + + + +.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 +.size bn_sqr_comba8,.-bn_sqr_comba8 + + + + + + + + +.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 +.size bn_mul_comba4,.-bn_mul_comba4 + + + + + + + + +.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 +.size bn_mul_comba8,.-bn_mul_comba8 + + + + + + + + +.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 +.size bn_sub_words,.-bn_sub_words + + + + + + + + +.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 +.size bn_add_words,.-bn_add_words + + + + + + + + +.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 +.size bn_div_words,.-bn_div_words + + + + + + + +.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 +.size bn_sqr_words,.-bn_sqr_words + + + + + + + + +.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 +.size bn_mul_words,.-bn_mul_words + + + + + + + + +.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 +.size bn_mul_add_words,.-bn_mul_add_words +.align 4 |