summaryrefslogtreecommitdiff
path: root/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s
diff options
context:
space:
mode:
Diffstat (limited to 'deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s')
-rw-r--r--deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s220
1 files changed, 220 insertions, 0 deletions
diff --git a/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s b/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s
new file mode 100644
index 0000000000..aefd29c9d8
--- /dev/null
+++ b/deps/openssl/config/archs/linux-ppc/asm/crypto/bn/ppc-mont.s
@@ -0,0 +1,220 @@
+.machine "any"
+.text
+
+.globl bn_mul_mont_int
+.type bn_mul_mont_int,@function
+.align 4
+bn_mul_mont_int:
+ cmpwi 8,4
+ mr 9,3
+ li 3,0
+ .long 0x4d800020
+ cmpwi 8,32
+ bgelr
+ slwi 8,8,2
+ li 12,-4096
+ addi 3,8,256
+ subf 3,3,1
+ and 3,3,12
+ subf 3,1,3
+ mr 12,1
+ srwi 8,8,2
+ stwux 1,1,3
+
+ stw 20,-48(12)
+ stw 21,-44(12)
+ stw 22,-40(12)
+ stw 23,-36(12)
+ stw 24,-32(12)
+ stw 25,-28(12)
+ stw 26,-24(12)
+ stw 27,-20(12)
+ stw 28,-16(12)
+ stw 29,-12(12)
+ stw 30,-8(12)
+ stw 31,-4(12)
+
+ lwz 7,0(7)
+ addi 8,8,-2
+
+ lwz 23,0(5)
+ lwz 10,0(4)
+ addi 22,1,32
+ mullw 25,10,23
+ mulhwu 26,10,23
+
+ lwz 10,4(4)
+ lwz 11,0(6)
+
+ mullw 24,25,7
+
+ mullw 29,10,23
+ mulhwu 30,10,23
+
+ mullw 27,11,24
+ mulhwu 28,11,24
+ lwz 11,4(6)
+ addc 27,27,25
+ addze 28,28
+
+ mullw 31,11,24
+ mulhwu 0,11,24
+
+ mtctr 8
+ li 21,8
+.align 4
+.L1st:
+ lwzx 10,4,21
+ addc 25,29,26
+ lwzx 11,6,21
+ addze 26,30
+ mullw 29,10,23
+ addc 27,31,28
+ mulhwu 30,10,23
+ addze 28,0
+ mullw 31,11,24
+ addc 27,27,25
+ mulhwu 0,11,24
+ addze 28,28
+ stw 27,0(22)
+
+ addi 21,21,4
+ addi 22,22,4
+ bdnz .L1st
+
+ addc 25,29,26
+ addze 26,30
+
+ addc 27,31,28
+ addze 28,0
+ addc 27,27,25
+ addze 28,28
+ stw 27,0(22)
+
+ li 3,0
+ addc 28,28,26
+ addze 3,3
+ stw 28,4(22)
+
+ li 20,4
+.align 4
+.Louter:
+ lwzx 23,5,20
+ lwz 10,0(4)
+ addi 22,1,32
+ lwz 12,32(1)
+ mullw 25,10,23
+ mulhwu 26,10,23
+ lwz 10,4(4)
+ lwz 11,0(6)
+ addc 25,25,12
+ mullw 29,10,23
+ addze 26,26
+ mullw 24,25,7
+ mulhwu 30,10,23
+ mullw 27,11,24
+ mulhwu 28,11,24
+ lwz 11,4(6)
+ addc 27,27,25
+ mullw 31,11,24
+ addze 28,28
+ mulhwu 0,11,24
+
+ mtctr 8
+ li 21,8
+.align 4
+.Linner:
+ lwzx 10,4,21
+ addc 25,29,26
+ lwz 12,4(22)
+ addze 26,30
+ lwzx 11,6,21
+ addc 27,31,28
+ mullw 29,10,23
+ addze 28,0
+ mulhwu 30,10,23
+ addc 25,25,12
+ mullw 31,11,24
+ addze 26,26
+ mulhwu 0,11,24
+ addc 27,27,25
+ addi 21,21,4
+ addze 28,28
+ stw 27,0(22)
+ addi 22,22,4
+ bdnz .Linner
+
+ lwz 12,4(22)
+ addc 25,29,26
+ addze 26,30
+ addc 25,25,12
+ addze 26,26
+
+ addc 27,31,28
+ addze 28,0
+ addc 27,27,25
+ addze 28,28
+ stw 27,0(22)
+
+ addic 3,3,-1
+ li 3,0
+ adde 28,28,26
+ addze 3,3
+ stw 28,4(22)
+
+ slwi 12,8,2
+ .long 0x7c146040
+ addi 20,20,4
+ ble .Louter
+
+ addi 8,8,2
+ subfc 21,21,21
+ addi 22,1,32
+ mtctr 8
+
+.align 4
+.Lsub: lwzx 12,22,21
+ lwzx 11,6,21
+ subfe 10,11,12
+ stwx 10,9,21
+ addi 21,21,4
+ bdnz .Lsub
+
+ li 21,0
+ mtctr 8
+ subfe 3,21,3
+ and 4,22,3
+ andc 6,9,3
+ or 4,4,6
+
+.align 4
+.Lcopy:
+ lwzx 12,4,21
+ stwx 12,9,21
+ stwx 21,22,21
+ addi 21,21,4
+ bdnz .Lcopy
+
+ lwz 12,0(1)
+ li 3,1
+ lwz 20,-48(12)
+ lwz 21,-44(12)
+ lwz 22,-40(12)
+ lwz 23,-36(12)
+ lwz 24,-32(12)
+ lwz 25,-28(12)
+ lwz 26,-24(12)
+ lwz 27,-20(12)
+ lwz 28,-16(12)
+ lwz 29,-12(12)
+ lwz 30,-8(12)
+ lwz 31,-4(12)
+ mr 1,12
+ blr
+.long 0
+.byte 0,12,4,0,0x80,12,6,0
+.long 0
+.size bn_mul_mont_int,.-bn_mul_mont_int
+
+.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,80,80,67,44,32,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