summaryrefslogtreecommitdiff
path: root/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s
diff options
context:
space:
mode:
Diffstat (limited to 'deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s')
-rw-r--r--deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s308
1 files changed, 308 insertions, 0 deletions
diff --git a/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s b/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s
new file mode 100644
index 0000000000..3063cd30a2
--- /dev/null
+++ b/deps/openssl/config/archs/aix-gcc/asm/crypto/poly1305/poly1305-ppc.s
@@ -0,0 +1,308 @@
+.machine "any"
+.csect .text[PR],7
+.globl .poly1305_init_int
+.align 4
+.poly1305_init_int:
+ xor 0,0,0
+ stw 0,0(3)
+ stw 0,4(3)
+ stw 0,8(3)
+ stw 0,12(3)
+ stw 0,16(3)
+
+ cmplw 0,4,0
+ beq- Lno_key
+ li 8,4
+ lwbrx 7,0,4
+ li 9,8
+ lwbrx 8,8,4
+ li 10,12
+ lwbrx 9,9,4
+ lwbrx 10,10,4
+ lis 0,0xf000
+ li 12,-4
+ andc 12,12,0
+
+ andc 7,7,0
+ and 8,8,12
+ and 9,9,12
+ and 10,10,12
+
+ stw 7,32(3)
+ stw 8,36(3)
+ stw 9,40(3)
+ stw 10,44(3)
+
+Lno_key:
+ xor 3,3,3
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,2,0
+
+
+.globl .poly1305_blocks
+.align 4
+.poly1305_blocks:
+ srwi. 5,5,4
+ beq- Labort
+
+ stwu 1,-96(1)
+ mflr 0
+ stw 14,24(1)
+ stw 15,28(1)
+ stw 16,32(1)
+ stw 17,36(1)
+ stw 18,40(1)
+ stw 19,44(1)
+ stw 20,48(1)
+ stw 21,52(1)
+ stw 22,56(1)
+ stw 23,60(1)
+ stw 24,64(1)
+ stw 25,68(1)
+ stw 26,72(1)
+ stw 27,76(1)
+ stw 28,80(1)
+ stw 29,84(1)
+ stw 30,88(1)
+ stw 31,92(1)
+ stw 0,100(1)
+
+ lwz 12,32(3)
+ lwz 14,36(3)
+ lwz 15,40(3)
+ lwz 16,44(3)
+
+ lwz 7,0(3)
+ lwz 8,4(3)
+ lwz 9,8(3)
+ lwz 10,12(3)
+ lwz 11,16(3)
+
+ srwi 17,14,2
+ srwi 18,15,2
+ srwi 19,16,2
+ add 17,17,14
+ add 18,18,15
+ add 19,19,16
+ mtctr 5
+ li 0,3
+ b Loop
+
+.align 4
+Loop:
+ li 29,4
+ lwbrx 28,0,4
+ li 30,8
+ lwbrx 29,29,4
+ li 31,12
+ lwbrx 30,30,4
+ lwbrx 31,31,4
+ addi 4,4,16
+
+ addc 7,7,28
+ adde 8,8,29
+ adde 9,9,30
+
+ mullw 28,7,12
+ mulhwu 24,7,12
+
+ mullw 29,7,14
+ mulhwu 25,7,14
+
+ mullw 30,7,15
+ mulhwu 26,7,15
+
+ adde 10,10,31
+ adde 11,11,6
+
+ mullw 31,7,16
+ mulhwu 27,7,16
+
+ mullw 20,8,19
+ mulhwu 21,8,19
+
+ mullw 22,8,12
+ mulhwu 23,8,12
+ addc 28,28,20
+ adde 24,24,21
+
+ mullw 20,8,14
+ mulhwu 21,8,14
+ addc 29,29,22
+ adde 25,25,23
+
+ mullw 22,8,15
+ mulhwu 23,8,15
+ addc 30,30,20
+ adde 26,26,21
+
+ mullw 20,9,18
+ mulhwu 21,9,18
+ addc 31,31,22
+ adde 27,27,23
+
+ mullw 22,9,19
+ mulhwu 23,9,19
+ addc 28,28,20
+ adde 24,24,21
+
+ mullw 20,9,12
+ mulhwu 21,9,12
+ addc 29,29,22
+ adde 25,25,23
+
+ mullw 22,9,14
+ mulhwu 23,9,14
+ addc 30,30,20
+ adde 26,26,21
+
+ mullw 20,10,17
+ mulhwu 21,10,17
+ addc 31,31,22
+ adde 27,27,23
+
+ mullw 22,10,18
+ mulhwu 23,10,18
+ addc 28,28,20
+ adde 24,24,21
+
+ mullw 20,10,19
+ mulhwu 21,10,19
+ addc 29,29,22
+ adde 25,25,23
+
+ mullw 22,10,12
+ mulhwu 23,10,12
+ addc 30,30,20
+ adde 26,26,21
+
+ mullw 20,11,17
+ addc 31,31,22
+ adde 27,27,23
+ addc 29,29,20
+
+ mullw 21,11,18
+ addze 25,25
+ addc 30,30,21
+ addze 26,26
+
+ mullw 22,11,19
+ addc 31,31,22
+ addze 27,27
+
+ mullw 11,11,12
+
+ addc 8,29,24
+ adde 9,30,25
+ adde 10,31,26
+ adde 11,11,27
+
+ andc 24,11,0
+ and 11,11,0
+ srwi 25,24,2
+ add 24,24,25
+ addc 7,28,24
+ addze 8,8
+ addze 9,9
+ addze 10,10
+ addze 11,11
+
+ bc 16,0,Loop
+
+ stw 7,0(3)
+ stw 8,4(3)
+ stw 9,8(3)
+ stw 10,12(3)
+ stw 11,16(3)
+
+ lwz 14,24(1)
+ lwz 15,28(1)
+ lwz 16,32(1)
+ lwz 17,36(1)
+ lwz 18,40(1)
+ lwz 19,44(1)
+ lwz 20,48(1)
+ lwz 21,52(1)
+ lwz 22,56(1)
+ lwz 23,60(1)
+ lwz 24,64(1)
+ lwz 25,68(1)
+ lwz 26,72(1)
+ lwz 27,76(1)
+ lwz 28,80(1)
+ lwz 29,84(1)
+ lwz 30,88(1)
+ lwz 31,92(1)
+ addi 1,1,96
+Labort:
+ blr
+.long 0
+.byte 0,12,4,1,0x80,18,4,0
+
+
+.globl .poly1305_emit
+.align 4
+.poly1305_emit:
+ stwu 1,-96(1)
+ mflr 0
+ stw 28,80(1)
+ stw 29,84(1)
+ stw 30,88(1)
+ stw 31,92(1)
+ stw 0,100(1)
+
+ lwz 7,0(3)
+ lwz 8,4(3)
+ lwz 9,8(3)
+ lwz 10,12(3)
+ lwz 11,16(3)
+
+ addic 28,7,5
+ addze 29,8
+ addze 30,9
+ addze 31,10
+ addze 0,11
+
+ srwi 0,0,2
+ neg 0,0
+
+ andc 7,7,0
+ and 28,28,0
+ andc 8,8,0
+ and 29,29,0
+ or 7,7,28
+ lwz 28,0(5)
+ andc 9,9,0
+ and 30,30,0
+ or 8,8,29
+ lwz 29,4(5)
+ andc 10,10,0
+ and 31,31,0
+ or 9,9,30
+ lwz 30,8(5)
+ or 10,10,31
+ lwz 31,12(5)
+
+ addc 7,7,28
+ adde 8,8,29
+ adde 9,9,30
+ adde 10,10,31
+ li 29,4
+ stwbrx 7,0,4
+ li 30,8
+ stwbrx 8,29,4
+ li 31,12
+ stwbrx 9,30,4
+ stwbrx 10,31,4
+ lwz 28,80(1)
+ lwz 29,84(1)
+ lwz 30,88(1)
+ lwz 31,92(1)
+ addi 1,1,96
+ blr
+.long 0
+.byte 0,12,4,1,0x80,4,3,0
+
+.byte 80,111,108,121,49,51,48,53,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