aboutsummaryrefslogtreecommitdiff
path: root/sys/crypto/openssl/powerpc64le/ecp_nistp384-ppc64.S
diff options
context:
space:
mode:
Diffstat (limited to 'sys/crypto/openssl/powerpc64le/ecp_nistp384-ppc64.S')
-rw-r--r--sys/crypto/openssl/powerpc64le/ecp_nistp384-ppc64.S1526
1 files changed, 1526 insertions, 0 deletions
diff --git a/sys/crypto/openssl/powerpc64le/ecp_nistp384-ppc64.S b/sys/crypto/openssl/powerpc64le/ecp_nistp384-ppc64.S
new file mode 100644
index 000000000000..3719683097ef
--- /dev/null
+++ b/sys/crypto/openssl/powerpc64le/ecp_nistp384-ppc64.S
@@ -0,0 +1,1526 @@
+/* Do not modify. This file is auto-generated from ecp_nistp384-ppc64.pl. */
+.machine "any"
+.abiversion 2
+.text
+
+.globl p384_felem_mul
+.type p384_felem_mul,@function
+.type p384_felem_mul,@function
+.align 4
+p384_felem_mul:
+.localentry p384_felem_mul,0
+
+
+ stdu 1, -176(1)
+ mflr 0
+ std 14, 56(1)
+ std 15, 64(1)
+ std 16, 72(1)
+ std 17, 80(1)
+ std 18, 88(1)
+ std 19, 96(1)
+ std 20, 104(1)
+ std 21, 112(1)
+ std 22, 120(1)
+
+ bl _p384_felem_mul_core
+
+ mtlr 0
+ ld 14, 56(1)
+ ld 15, 64(1)
+ ld 16, 72(1)
+ ld 17, 80(1)
+ ld 18, 88(1)
+ ld 19, 96(1)
+ ld 20, 104(1)
+ ld 21, 112(1)
+ ld 22, 120(1)
+ addi 1, 1, 176
+ blr
+.size p384_felem_mul,.-p384_felem_mul
+
+.globl p384_felem_square
+.type p384_felem_square,@function
+.type p384_felem_square,@function
+.align 4
+p384_felem_square:
+.localentry p384_felem_square,0
+
+
+ stdu 1, -176(1)
+ mflr 0
+ std 14, 56(1)
+ std 15, 64(1)
+ std 16, 72(1)
+ std 17, 80(1)
+
+ bl _p384_felem_square_core
+
+ mtlr 0
+ ld 14, 56(1)
+ ld 15, 64(1)
+ ld 16, 72(1)
+ ld 17, 80(1)
+ addi 1, 1, 176
+ blr
+.size p384_felem_square,.-p384_felem_square
+
+
+
+
+
+.type _p384_felem_mul_core,@function
+.align 4
+_p384_felem_mul_core:
+.localentry _p384_felem_mul_core,0
+
+
+ ld 6,0(4)
+ ld 14,0(5)
+ ld 7,8(4)
+ ld 15,8(5)
+ ld 8,16(4)
+ ld 16,16(5)
+ ld 9,24(4)
+ ld 17,24(5)
+ ld 10,32(4)
+ ld 18,32(5)
+ ld 11,40(4)
+ ld 19,40(5)
+ ld 12,48(4)
+ ld 20,48(5)
+
+
+ mulld 21, 14, 6
+ mulhdu 22, 14, 6
+ std 21, 0(3)
+ std 22, 8(3)
+
+ vxor 0, 0, 0
+
+
+ mtvsrdd 32+13, 14, 6
+ mtvsrdd 32+14, 7, 15
+ .long 0x102D7023
+
+
+ mtvsrdd 32+15, 15, 6
+ mtvsrdd 32+16, 7, 16
+ mtvsrdd 32+17, 0, 8
+ mtvsrdd 32+18, 0, 14
+ .long 0x126F8023
+ .long 0x105194E3
+
+
+ mtvsrdd 32+13, 16, 6
+ mtvsrdd 32+14, 7, 17
+ mtvsrdd 32+15, 14, 8
+ mtvsrdd 32+16, 9, 15
+ .long 0x126D7023
+ .long 0x106F84E3
+
+
+ mtvsrdd 32+13, 17, 6
+ mtvsrdd 32+14, 7, 18
+ mtvsrdd 32+15, 15, 8
+ mtvsrdd 32+16, 9, 16
+ mtvsrdd 32+17, 0, 10
+ mtvsrdd 32+18, 0, 14
+ .long 0x126D7023
+ .long 0x108F84E3
+ .long 0x10919123
+
+
+ mtvsrdd 32+13, 18, 6
+ mtvsrdd 32+14, 7, 19
+ mtvsrdd 32+15, 16, 8
+ mtvsrdd 32+16, 9, 17
+ mtvsrdd 32+17, 14, 10
+ mtvsrdd 32+18, 11, 15
+ .long 0x126D7023
+ .long 0x10AF84E3
+ .long 0x10B19163
+
+ stxv 32+1, 16(3)
+ stxv 32+2, 32(3)
+ stxv 32+3, 48(3)
+ stxv 32+4, 64(3)
+ stxv 32+5, 80(3)
+
+
+ mtvsrdd 32+13, 19, 6
+ mtvsrdd 32+14, 7, 20
+ mtvsrdd 32+15, 17, 8
+ mtvsrdd 32+16, 9, 18
+ mtvsrdd 32+17, 15, 10
+ mtvsrdd 32+18, 11, 16
+ .long 0x126D7023
+ .long 0x10CF84E3
+ mtvsrdd 32+13, 0, 12
+ mtvsrdd 32+14, 0, 14
+ .long 0x127191A3
+ .long 0x10CD74E3
+
+
+ mtvsrdd 32+13, 19, 7
+ mtvsrdd 32+14, 8, 20
+ mtvsrdd 32+15, 17, 9
+ mtvsrdd 32+16, 10, 18
+ mtvsrdd 32+17, 15, 11
+ mtvsrdd 32+18, 12, 16
+ .long 0x126D7023
+ .long 0x10EF84E3
+ .long 0x10F191E3
+
+
+ mtvsrdd 32+13, 19, 8
+ mtvsrdd 32+14, 9, 20
+ mtvsrdd 32+15, 17, 10
+ mtvsrdd 32+16, 11, 18
+ mtvsrdd 32+17, 0, 12
+ mtvsrdd 32+18, 0, 16
+ .long 0x126D7023
+ .long 0x110F84E3
+ .long 0x11119223
+
+
+ mtvsrdd 32+13, 19, 9
+ mtvsrdd 32+14, 10, 20
+ mtvsrdd 32+15, 17, 11
+ mtvsrdd 32+16, 12, 18
+ .long 0x126D7023
+ .long 0x112F84E3
+
+
+ mtvsrdd 32+13, 19, 10
+ mtvsrdd 32+14, 11, 20
+ mtvsrdd 32+15, 0, 12
+ mtvsrdd 32+16, 0, 18
+ .long 0x126D7023
+ .long 0x114F84E3
+
+
+ mtvsrdd 32+17, 19, 11
+ mtvsrdd 32+18, 12, 20
+ .long 0x11719023
+
+ stxv 32+6, 96(3)
+ stxv 32+7, 112(3)
+ stxv 32+8, 128(3)
+ stxv 32+9, 144(3)
+ stxv 32+10, 160(3)
+ stxv 32+11, 176(3)
+
+
+ mulld 21, 20, 12
+ mulhdu 22, 20, 12
+
+ std 21, 192(3)
+ std 22, 200(3)
+
+ blr
+.size _p384_felem_mul_core,.-_p384_felem_mul_core
+
+
+
+
+
+.type _p384_felem_square_core,@function
+.align 4
+_p384_felem_square_core:
+.localentry _p384_felem_square_core,0
+
+
+ ld 6, 0(4)
+ ld 7, 8(4)
+ ld 8, 16(4)
+ ld 9, 24(4)
+ ld 10, 32(4)
+ ld 11, 40(4)
+ ld 12, 48(4)
+
+ vxor 0, 0, 0
+
+
+ mulld 14, 6, 6
+ mulhdu 15, 6, 6
+ std 14, 0(3)
+ std 15, 8(3)
+
+
+ add 14, 6, 6
+ mtvsrdd 32+13, 0, 14
+ mtvsrdd 32+14, 0, 7
+ .long 0x102D7023
+
+
+ mtvsrdd 32+15, 7, 14
+ mtvsrdd 32+16, 7, 8
+ .long 0x104F8023
+
+
+ add 15, 7, 7
+ mtvsrdd 32+13, 8, 14
+ mtvsrdd 32+14, 15, 9
+ .long 0x106D7023
+
+
+ mtvsrdd 32+13, 9, 14
+ mtvsrdd 32+14, 15, 10
+ mtvsrdd 32+15, 0, 8
+ .long 0x108D7023
+ .long 0x108F7923
+
+
+ mtvsrdd 32+13, 10, 14
+ mtvsrdd 32+14, 15, 11
+ add 16, 8, 8
+ mtvsrdd 32+15, 0, 16
+ mtvsrdd 32+16, 0, 9
+ .long 0x10AD7023
+ .long 0x10AF8163
+
+ stxv 32+1, 16(3)
+ stxv 32+2, 32(3)
+ stxv 32+3, 48(3)
+ stxv 32+4, 64(3)
+
+
+ mtvsrdd 32+13, 11, 14
+ mtvsrdd 32+14, 15, 12
+ mtvsrdd 32+15, 9, 16
+ mtvsrdd 32+16, 9, 10
+ stxv 32+5, 80(3)
+ .long 0x126D7023
+ .long 0x10CF84E3
+
+
+ add 17, 9, 9
+ mtvsrdd 32+13, 11, 15
+ mtvsrdd 32+14, 16, 12
+ mtvsrdd 32+15, 0, 17
+ mtvsrdd 32+16, 0, 10
+ .long 0x126D7023
+ .long 0x10EF84E3
+
+
+ mtvsrdd 32+13, 11, 16
+ mtvsrdd 32+14, 17, 12
+ mtvsrdd 32+15, 0, 10
+ .long 0x126D7023
+ .long 0x110F7CE3
+
+
+ add 14, 10, 10
+ mtvsrdd 32+13, 11, 17
+ mtvsrdd 32+14, 14, 12
+ .long 0x112D7023
+
+
+ mtvsrdd 32+13, 11, 14
+ mtvsrdd 32+14, 11, 12
+ .long 0x114D7023
+
+ stxv 32+6, 96(3)
+ stxv 32+7, 112(3)
+
+
+
+
+
+
+
+ mulld 6, 12, 11
+ mulhdu 7, 12, 11
+ addc 8, 6, 6
+ adde 9, 7, 7
+
+ stxv 32+8, 128(3)
+ stxv 32+9, 144(3)
+ stxv 32+10, 160(3)
+
+
+
+ mulld 14, 12, 12
+ mulhdu 15, 12, 12
+
+ std 8, 176(3)
+ std 9, 184(3)
+ std 14, 192(3)
+ std 15, 200(3)
+
+ blr
+.size _p384_felem_square_core,.-_p384_felem_square_core
+
+
+
+
+.macro F128_X_8 _off1 _off2
+ ld 9,\_off1(3)
+ ld 8,\_off2(3)
+ srdi 10,9,61
+ rldimi 10,8,3,0
+ sldi 9,9,3
+ std 9,\_off1(3)
+ std 10,\_off2(3)
+.endm
+
+.globl p384_felem128_mul_by_8
+.type p384_felem128_mul_by_8,@function
+.type p384_felem128_mul_by_8,@function
+.align 4
+p384_felem128_mul_by_8:
+.localentry p384_felem128_mul_by_8,0
+
+
+ F128_X_8 0, 8
+
+ F128_X_8 16, 24
+
+ F128_X_8 32, 40
+
+ F128_X_8 48, 56
+
+ F128_X_8 64, 72
+
+ F128_X_8 80, 88
+
+ F128_X_8 96, 104
+
+ F128_X_8 112, 120
+
+ F128_X_8 128, 136
+
+ F128_X_8 144, 152
+
+ F128_X_8 160, 168
+
+ F128_X_8 176, 184
+
+ F128_X_8 192, 200
+
+ blr
+.size p384_felem128_mul_by_8,.-p384_felem128_mul_by_8
+
+
+
+
+.macro F128_X_2 _off1 _off2
+ ld 9,\_off1(3)
+ ld 8,\_off2(3)
+ srdi 10,9,63
+ rldimi 10,8,1,0
+ sldi 9,9,1
+ std 9,\_off1(3)
+ std 10,\_off2(3)
+.endm
+
+.globl p384_felem128_mul_by_2
+.type p384_felem128_mul_by_2,@function
+.type p384_felem128_mul_by_2,@function
+.align 4
+p384_felem128_mul_by_2:
+.localentry p384_felem128_mul_by_2,0
+
+
+ F128_X_2 0, 8
+
+ F128_X_2 16, 24
+
+ F128_X_2 32, 40
+
+ F128_X_2 48, 56
+
+ F128_X_2 64, 72
+
+ F128_X_2 80, 88
+
+ F128_X_2 96, 104
+
+ F128_X_2 112, 120
+
+ F128_X_2 128, 136
+
+ F128_X_2 144, 152
+
+ F128_X_2 160, 168
+
+ F128_X_2 176, 184
+
+ F128_X_2 192, 200
+
+ blr
+.size p384_felem128_mul_by_2,.-p384_felem128_mul_by_2
+
+.globl p384_felem_diff128
+.type p384_felem_diff128,@function
+.type p384_felem_diff128,@function
+.align 4
+p384_felem_diff128:
+.localentry p384_felem_diff128,0
+
+
+ addis 5, 2, .LConst_two127@toc@ha
+ addi 5, 5, .LConst_two127@toc@l
+
+ ld 10, 0(3)
+ ld 8, 8(3)
+ li 9, 0
+ addc 10, 10, 9
+ li 7, -1
+ rldicr 7, 7, 0, 0
+ adde 8, 8, 7
+ ld 11, 0(4)
+ ld 12, 8(4)
+ subfc 11, 11, 10
+ subfe 12, 12, 8
+ std 11, 0(3)
+ std 12, 8(3)
+
+
+ ld 8, 16(3)
+ ld 7, 24(3)
+ ld 10, 24(5)
+ addc 8, 8, 9
+ adde 7, 7, 10
+ ld 11, 16(4)
+ ld 12, 24(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 16(3)
+ std 12, 24(3)
+
+ ld 8, 32(3)
+ ld 7, 40(3)
+ addc 8, 8, 9
+ adde 7, 7, 10
+ ld 11, 32(4)
+ ld 12, 40(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 32(3)
+ std 12, 40(3)
+
+ ld 8, 48(3)
+ ld 7, 56(3)
+ addc 8, 8, 9
+ adde 7, 7, 10
+ ld 11, 48(4)
+ ld 12, 56(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 48(3)
+ std 12, 56(3)
+
+ ld 8, 64(3)
+ ld 7, 72(3)
+ addc 8, 8, 9
+ adde 7, 7, 10
+ ld 11, 64(4)
+ ld 12, 72(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 64(3)
+ std 12, 72(3)
+
+ ld 8, 80(3)
+ ld 7, 88(3)
+ addc 8, 8, 9
+ adde 7, 7, 10
+ ld 11, 80(4)
+ ld 12, 88(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 80(3)
+ std 12, 88(3)
+
+ ld 8, 96(3)
+ ld 7, 104(3)
+ ld 6, 40(5)
+ addc 8, 8, 9
+ adde 7, 7, 6
+ ld 11, 96(4)
+ ld 12, 104(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 96(3)
+ std 12, 104(3)
+
+ ld 8, 112(3)
+ ld 7, 120(3)
+ ld 6, 56(5)
+ addc 8, 8, 9
+ adde 7, 7, 6
+ ld 11, 112(4)
+ ld 12, 120(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 112(3)
+ std 12, 120(3)
+
+ ld 8, 128(3)
+ ld 7, 136(3)
+ ld 6, 72(5)
+ addc 8, 8, 9
+ adde 7, 7, 6
+ ld 11, 128(4)
+ ld 12, 136(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 128(3)
+ std 12, 136(3)
+
+ ld 8, 144(3)
+ ld 7, 152(3)
+ addc 8, 8, 9
+ adde 7, 7, 10
+ ld 11, 144(4)
+ ld 12, 152(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 144(3)
+ std 12, 152(3)
+
+ ld 8, 160(3)
+ ld 7, 168(3)
+ addc 8, 8, 9
+ adde 7, 7, 10
+ ld 11, 160(4)
+ ld 12, 168(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 160(3)
+ std 12, 168(3)
+
+ ld 8, 176(3)
+ ld 7, 184(3)
+ addc 8, 8, 9
+ adde 7, 7, 10
+ ld 11, 176(4)
+ ld 12, 184(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 176(3)
+ std 12, 184(3)
+
+ ld 8, 192(3)
+ ld 7, 200(3)
+ addc 8, 8, 9
+ adde 7, 7, 10
+ ld 11, 192(4)
+ ld 12, 200(4)
+ subfc 11, 11, 8
+ subfe 12, 12, 7
+ std 11, 192(3)
+ std 12, 200(3)
+
+ blr
+.size p384_felem_diff128,.-p384_felem_diff128
+
+.data
+.align 4
+.LConst_two127:
+
+.long 0x00000000, 0x00000000, 0x00000000, 0x80000000
+
+.long 0x00000000, 0x00000000, 0xffffff80, 0x7fffffff
+
+.long 0x00000000, 0x00000000, 0xffff7f80, 0x80007fff
+
+.long 0x00000000, 0x00000000, 0xffffff80, 0x7f7fffff
+
+.long 0x00000000, 0x00000000, 0x7fffff80, 0x7fffffff
+
+.abiversion 2
+.text
+
+.globl p384_felem_diff_128_64
+.type p384_felem_diff_128_64,@function
+.type p384_felem_diff_128_64,@function
+.align 4
+p384_felem_diff_128_64:
+.localentry p384_felem_diff_128_64,0
+
+ addis 5, 2, .LConst_128_two64@toc@ha
+ addi 5, 5, .LConst_128_two64@toc@l
+
+ ld 9, 0(3)
+ ld 10, 8(3)
+ ld 8, 48(5)
+ li 7, 0
+ addc 9, 9, 8
+ li 6, 1
+ adde 10, 10, 6
+ ld 11, 0(4)
+ subfc 8, 11, 9
+ subfe 12, 7, 10
+ std 8, 0(3)
+ std 12, 8(3)
+
+ ld 9, 16(3)
+ ld 10, 24(3)
+ ld 8, 0(5)
+ addc 9, 9, 8
+ addze 10, 10
+ ld 11, 8(4)
+ subfc 11, 11, 9
+ subfe 12, 7, 10
+ std 11, 16(3)
+ std 12, 24(3)
+
+ ld 9, 32(3)
+ ld 10, 40(3)
+ ld 8, 16(5)
+ addc 9, 9, 8
+ addze 10, 10
+ ld 11, 16(4)
+ subfc 11, 11, 9
+ subfe 12, 7, 10
+ std 11, 32(3)
+ std 12, 40(3)
+
+ ld 10, 48(3)
+ ld 8, 56(3)
+
+ li 9, -256
+ addc 10, 10, 9
+ addze 8, 8
+ ld 11, 24(4)
+ subfc 11, 11, 10
+ subfe 12, 7, 8
+ std 11, 48(3)
+ std 12, 56(3)
+
+ ld 10, 64(3)
+ ld 8, 72(3)
+ addc 10, 10, 9
+ addze 8, 8
+ ld 11, 32(4)
+ subfc 11, 11, 10
+ subfe 12, 7, 8
+ std 11, 64(3)
+ std 12, 72(3)
+
+ ld 10, 80(3)
+ ld 8, 88(3)
+ addc 10, 10, 9
+ addze 8, 8
+ ld 11, 40(4)
+ subfc 11, 11, 10
+ subfe 12, 7, 8
+ std 11, 80(3)
+ std 12, 88(3)
+
+ ld 10, 96(3)
+ ld 8, 104(3)
+ addc 10, 10, 9
+ addze 9, 8
+ ld 11, 48(4)
+ subfc 11, 11, 10
+ subfe 12, 7, 9
+ std 11, 96(3)
+ std 12, 104(3)
+
+ blr
+.size p384_felem_diff_128_64,.-p384_felem_diff_128_64
+
+.data
+.align 4
+.LConst_128_two64:
+
+.long 0xffffff00, 0xfeffffff, 0x00000000, 0x00000000
+
+.long 0xffffff00, 0xfffffffe, 0x00000000, 0x00000000
+
+.long 0xffffff00, 0xffffffff, 0x00000000, 0x00000000
+
+.long 0xffff0000, 0x0000ffff, 0x00000001, 0x00000000
+
+.LConst_two60:
+
+.long 0xfffffff0, 0x0fefffff, 0x0, 0x0
+
+.long 0xfffff000, 0x10000fff, 0x0, 0x0
+
+.long 0xeffffff0, 0x0fffffff, 0x0, 0x0
+
+.long 0xfffffff0, 0x0fffffff, 0x0, 0x0
+
+.abiversion 2
+.text
+
+
+
+.globl p384_felem_diff64
+.type p384_felem_diff64,@function
+.type p384_felem_diff64,@function
+.align 4
+p384_felem_diff64:
+.localentry p384_felem_diff64,0
+
+ addis 5, 2, .LConst_two60@toc@ha
+ addi 5, 5, .LConst_two60@toc@l
+
+ ld 9, 0(3)
+ ld 8, 16(5)
+ li 7, 0
+ add 9, 9, 8
+ ld 11, 0(4)
+ subf 8, 11, 9
+ std 8, 0(3)
+
+ ld 9, 8(3)
+ ld 8, 0(5)
+ add 9, 9, 8
+ ld 11, 8(4)
+ subf 11, 11, 9
+ std 11, 8(3)
+
+ ld 9, 16(3)
+ ld 8, 32(5)
+ add 9, 9, 8
+ ld 11, 16(4)
+ subf 11, 11, 9
+ std 11, 16(3)
+
+ ld 10, 24(3)
+ ld 9, 48(5)
+ add 10, 10, 9
+ ld 12, 24(4)
+ subf 12, 12, 10
+ std 12, 24(3)
+
+ ld 10, 32(3)
+ add 10, 10, 9
+ ld 11, 32(4)
+ subf 11, 11, 10
+ std 11, 32(3)
+
+ ld 10, 40(3)
+ add 10, 10, 9
+ ld 12, 40(4)
+ subf 12, 12, 10
+ std 12, 40(3)
+
+ ld 10, 48(3)
+ add 10, 10, 9
+ ld 11, 48(4)
+ subf 11, 11, 10
+ std 11, 48(3)
+
+ blr
+.size p384_felem_diff64,.-p384_felem_diff64
+
+.abiversion 2
+.text
+
+
+
+.macro SHR o_h o_l in_h in_l nbits
+ srdi \o_l, \in_l, \nbits
+ rldimi \o_l, \in_h, 64-\nbits, 0
+ srdi \o_h, \in_h, \nbits
+.endm
+
+
+
+
+.global p384_felem_reduce
+.type p384_felem_reduce,@function
+.align 4
+p384_felem_reduce:
+.localentry p384_felem_reduce,0
+
+
+ stdu 1, -208(1)
+ mflr 0
+ std 14, 56(1)
+ std 15, 64(1)
+ std 16, 72(1)
+ std 17, 80(1)
+ std 18, 88(1)
+ std 19, 96(1)
+ std 20, 104(1)
+ std 21, 112(1)
+ std 22, 120(1)
+ std 23, 128(1)
+ std 24, 136(1)
+ std 25, 144(1)
+ std 26, 152(1)
+ std 27, 160(1)
+ std 28, 168(1)
+ std 29, 176(1)
+ std 30, 184(1)
+ std 31, 192(1)
+
+ bl _p384_felem_reduce_core
+
+ mtlr 0
+ ld 14, 56(1)
+ ld 15, 64(1)
+ ld 16, 72(1)
+ ld 17, 80(1)
+ ld 18, 88(1)
+ ld 19, 96(1)
+ ld 20, 104(1)
+ ld 21, 112(1)
+ ld 22, 120(1)
+ ld 23, 128(1)
+ ld 24, 136(1)
+ ld 25, 144(1)
+ ld 26, 152(1)
+ ld 27, 160(1)
+ ld 28, 168(1)
+ ld 29, 176(1)
+ ld 30, 184(1)
+ ld 31, 192(1)
+ addi 1, 1, 208
+ blr
+.size p384_felem_reduce,.-p384_felem_reduce
+
+
+
+
+
+.type _p384_felem_reduce_core,@function
+.align 4
+_p384_felem_reduce_core:
+.localentry _p384_felem_reduce_core,0
+
+ addis 12, 2, .LConst@toc@ha
+ addi 12, 12, .LConst@toc@l
+
+
+ ld 11, 8(12)
+
+
+ ld 26, 96(4)
+ ld 27, 96+8(4)
+ add 27, 27, 11
+
+
+ ld 24, 80(4)
+ ld 25, 80+8(4)
+ add 25, 25, 11
+
+
+ ld 22, 64(4)
+ ld 23, 64+8(4)
+ add 23, 23, 11
+
+
+ ld 20, 48(4)
+ ld 21, 48+8(4)
+ add 21, 21, 11
+
+ ld 11, 48+8(12)
+
+
+ ld 18, 32(4)
+ ld 19, 32+8(4)
+ add 19, 19, 11
+
+ ld 11, 16+8(12)
+
+
+ ld 16, 16(4)
+ ld 17, 16+8(4)
+ add 17, 17, 11
+
+ ld 11, 32+8(12)
+
+
+ ld 14, 0(4)
+ ld 15, 0+8(4)
+ add 15, 15, 11
+
+
+ li 7, -1
+
+
+
+
+ ld 5, 192(4)
+ ld 6, 192+8(4)
+ SHR 9, 10, 6, 5, 32
+ ld 30, 128(4)
+ ld 31, 136(4)
+ addc 30, 30, 10
+ adde 31, 31, 9
+
+
+ srdi 11, 7, 32
+ and 11, 11, 5
+ sldi 11, 11, 24
+ ld 28, 112(4)
+ ld 29, 120(4)
+ addc 28, 28, 11
+ addze 29, 29
+
+
+ SHR 9, 10, 6, 5, 8
+ addc 28, 28, 10
+ adde 29, 29, 9
+
+
+ andi. 11, 5, 0xff
+ sldi 11, 11, 48
+ addc 26, 26, 11
+ addze 27, 27
+
+
+ SHR 9, 10, 6, 5, 16
+ subfc 26, 10, 26
+ subfe 27, 9, 27
+
+
+ srdi 11, 7, 48
+ and 11, 11, 5
+ sldi 11, 11, 40
+ li 9, 0
+ subfc 24, 11, 24
+ subfe 25, 9, 25
+
+
+ SHR 9, 10, 6, 5, 48
+ addc 26, 26, 10
+ adde 27, 27, 9
+
+
+ srdi 11, 7, 16
+ and 11, 11, 5
+ sldi 11, 11, 8
+ addc 24, 24, 11
+ addze 25, 25
+
+
+
+
+ ld 5, 176(4)
+ ld 6, 176+8(4)
+ SHR 9, 10, 6, 5, 32
+ addc 28, 28, 10
+ adde 29, 29, 9
+
+
+ srdi 11, 7, 32
+ and 11, 11, 5
+ sldi 11, 11, 24
+ addc 26, 26, 11
+ addze 27, 27
+
+
+ SHR 9, 10, 6, 5, 8
+ addc 26, 26, 10
+ adde 27, 27, 9
+
+
+ andi. 11, 5, 0xff
+ sldi 11, 11, 48
+ addc 24, 24, 11
+ addze 25, 25
+
+
+ SHR 9, 10, 6, 5, 16
+ subfc 24, 10, 24
+ subfe 25, 9, 25
+
+
+ srdi 11, 7, 48
+ and 11, 11, 5
+ sldi 11, 11, 40
+ li 9, 0
+ subfc 22, 11, 22
+ subfe 23, 9, 23
+
+
+ SHR 9, 10, 6, 5, 48
+ addc 24, 24, 10
+ adde 25, 25, 9
+
+
+ srdi 11, 7, 16
+ and 11, 11, 5
+ sldi 11, 11, 8
+ addc 22, 22, 11
+ addze 23, 23
+
+
+
+
+ ld 5, 160(4)
+ ld 6, 160+8(4)
+ SHR 9, 10, 6, 5, 32
+ addc 26, 26, 10
+ adde 27, 27, 9
+
+
+ srdi 11, 7, 32
+ and 11, 11, 5
+ sldi 11, 11, 24
+ addc 24, 24, 11
+ addze 25, 25
+
+
+ SHR 9, 10, 6, 5, 8
+ addc 24, 24, 10
+ adde 25, 25, 9
+
+
+ andi. 11, 5, 0xff
+ sldi 11, 11, 48
+ addc 22, 22, 11
+ addze 23, 23
+
+
+ SHR 9, 10, 6, 5, 16
+ subfc 22, 10, 22
+ subfe 23, 9, 23
+
+
+ srdi 11, 7, 48
+ and 11, 11, 5
+ sldi 11, 11, 40
+ li 9, 0
+ subfc 20, 11, 20
+ subfe 21, 9, 21
+
+
+ SHR 9, 10, 6, 5, 48
+ addc 22, 22, 10
+ adde 23, 23, 9
+
+
+ srdi 11, 7, 16
+ and 11, 11, 5
+ sldi 11, 11, 8
+ addc 20, 20, 11
+ addze 21, 21
+
+
+
+
+ ld 5, 144(4)
+ ld 6, 144+8(4)
+ SHR 9, 10, 6, 5, 32
+ addc 24, 24, 10
+ adde 25, 25, 9
+
+
+ srdi 11, 7, 32
+ and 11, 11, 5
+ sldi 11, 11, 24
+ addc 22, 22, 11
+ addze 23, 23
+
+
+ SHR 9, 10, 6, 5, 8
+ addc 22, 22, 10
+ adde 23, 23, 9
+
+
+ andi. 11, 5, 0xff
+ sldi 11, 11, 48
+ addc 20, 20, 11
+ addze 21, 21
+
+
+ SHR 9, 10, 6, 5, 16
+ subfc 20, 10, 20
+ subfe 21, 9, 21
+
+
+ srdi 11, 7, 48
+ and 11, 11, 5
+ sldi 11, 11, 40
+ li 9, 0
+ subfc 18, 11, 18
+ subfe 19, 9, 19
+
+
+ SHR 9, 10, 6, 5, 48
+ addc 20, 20, 10
+ adde 21, 21, 9
+
+
+ srdi 11, 7, 16
+ and 11, 11, 5
+ sldi 11, 11, 8
+ addc 18, 18, 11
+ addze 19, 19
+
+
+
+
+ mr 5, 30
+ mr 6, 31
+ SHR 9, 10, 6, 5, 32
+ addc 22, 22, 10
+ adde 23, 23, 9
+
+
+ srdi 11, 7, 32
+ and 11, 11, 5
+ sldi 11, 11, 24
+ addc 20, 20, 11
+ addze 21, 21
+
+
+ SHR 9, 10, 6, 5, 8
+ addc 20, 20, 10
+ adde 21, 21, 9
+
+
+ andi. 11, 5, 0xff
+ sldi 11, 11, 48
+ addc 18, 18, 11
+ addze 19, 19
+
+
+ SHR 9, 10, 6, 5, 16
+ subfc 18, 10, 18
+ subfe 19, 9, 19
+
+
+ srdi 11, 7, 48
+ and 11, 11, 5
+ sldi 11, 11, 40
+ li 9, 0
+ subfc 16, 11, 16
+ subfe 17, 9, 17
+
+
+ SHR 9, 10, 6, 5, 48
+ addc 18, 18, 10
+ adde 19, 19, 9
+
+
+ srdi 11, 7, 16
+ and 11, 11, 5
+ sldi 11, 11, 8
+ addc 16, 16, 11
+ addze 17, 17
+
+
+
+
+ mr 5, 28
+ mr 6, 29
+ SHR 9, 10, 6, 5, 32
+ addc 20, 20, 10
+ adde 21, 21, 9
+
+
+ srdi 11, 7, 32
+ and 11, 11, 5
+ sldi 11, 11, 24
+ addc 18, 18, 11
+ addze 19, 19
+
+
+ SHR 9, 10, 6, 5, 8
+ addc 18, 18, 10
+ adde 19, 19, 9
+
+
+ andi. 11, 5, 0xff
+ sldi 11, 11, 48
+ addc 16, 16, 11
+ addze 17, 17
+
+
+ SHR 9, 10, 6, 5, 16
+ subfc 16, 10, 16
+ subfe 17, 9, 17
+
+
+ srdi 11, 7, 48
+ and 11, 11, 5
+ sldi 11, 11, 40
+ li 9, 0
+ subfc 14, 11, 14
+ subfe 15, 9, 15
+
+
+ SHR 9, 10, 6, 5, 48
+ addc 16, 16, 10
+ adde 17, 17, 9
+
+
+ srdi 11, 7, 16
+ and 11, 11, 5
+ sldi 11, 11, 8
+ addc 14, 14, 11
+ addze 15, 15
+
+
+
+
+
+
+ SHR 9, 10, 23, 22, 56
+ addc 24, 24, 10
+ adde 25, 25, 9
+ srdi 11, 7, 8
+ and 22, 22, 11
+ li 23, 0
+
+
+
+ SHR 9, 10, 25, 24, 56
+ addc 26, 26, 10
+ adde 27, 27, 9
+ and 24, 24, 11
+ li 25, 0
+
+
+
+
+ SHR 31, 30, 27, 26, 48
+ srdi 11, 7, 16
+ and 26, 26, 11
+ li 27, 0
+
+
+
+ SHR 9, 10, 31, 30, 40
+ addc 20, 20, 10
+ adde 21, 21, 9
+
+
+ srdi 11, 7, 24
+ and 10, 30, 11
+ sldi 10, 10, 16
+ addc 18, 18, 10
+ addze 19, 19
+
+
+ SHR 9, 10, 31, 30, 16
+ addc 18, 18, 10
+ adde 19, 19, 9
+
+
+ srdi 11, 7, 48
+ and 10, 30, 11
+ sldi 10, 10, 40
+ addc 16, 16, 10
+ addze 17, 17
+
+
+ SHR 9, 10, 31, 30, 24
+ subfc 16, 10, 16
+ subfe 17, 9, 17
+
+
+ srdi 11, 7, 40
+ and 10, 30, 11
+ sldi 10, 10, 32
+ li 9, 0
+ subfc 14, 10, 14
+ subfe 15, 9, 15
+
+
+ addc 14, 14, 30
+ adde 15, 15, 31
+
+
+
+
+ SHR 9, 10, 15, 14, 56
+ addc 16, 16, 10
+ adde 17, 17, 9
+
+
+ srdi 11, 7, 8
+ and 14, 14, 11
+ li 15, 0
+
+
+ SHR 9, 10, 17, 16, 56
+ addc 18, 18, 10
+ adde 19, 19, 9
+
+
+ and 16, 16, 11
+ li 17, 0
+
+
+ SHR 9, 10, 19, 18, 56
+ addc 20, 20, 10
+ adde 21, 21, 9
+
+
+ and 18, 18, 11
+ li 19, 0
+
+
+ SHR 9, 10, 21, 20, 56
+ addc 22, 22, 10
+ adde 23, 23, 9
+
+
+ and 20, 20, 11
+ li 21, 0
+
+
+ SHR 9, 10, 23, 22, 56
+ addc 24, 24, 10
+ adde 25, 25, 9
+
+
+ and 22, 22, 11
+
+
+ SHR 9, 10, 25, 24, 56
+ addc 26, 26, 10
+ adde 27, 27, 9
+
+
+ and 24, 24, 11
+
+ std 14, 0(3)
+ std 16, 8(3)
+ std 18, 16(3)
+ std 20, 24(3)
+ std 22, 32(3)
+ std 24, 40(3)
+ std 26, 48(3)
+ blr
+.size _p384_felem_reduce_core,.-_p384_felem_reduce_core
+
+.data
+.align 4
+.LConst:
+
+.long 0x0, 0x0, 0xfffffff0, 0xfffffff
+
+.long 0x0, 0x0, 0xfffffff0, 0xfefffff
+
+.long 0x0, 0x0, 0xfffff000, 0x10000fff
+
+.long 0x0, 0x0, 0xeffffff0, 0xfffffff
+
+.abiversion 2
+.text
+
+
+
+
+.global p384_felem_square_reduce
+.type p384_felem_square_reduce,@function
+.align 4
+p384_felem_square_reduce:
+.localentry p384_felem_square_reduce,0
+
+ stdu 1, -512(1)
+ mflr 0
+ std 14, 56(1)
+ std 15, 64(1)
+ std 16, 72(1)
+ std 17, 80(1)
+ std 18, 88(1)
+ std 19, 96(1)
+ std 20, 104(1)
+ std 21, 112(1)
+ std 22, 120(1)
+ std 23, 128(1)
+ std 24, 136(1)
+ std 25, 144(1)
+ std 26, 152(1)
+ std 27, 160(1)
+ std 28, 168(1)
+ std 29, 176(1)
+ std 30, 184(1)
+ std 31, 192(1)
+
+ std 3, 496(1)
+ addi 3, 1, 208
+ bl _p384_felem_square_core
+
+ mr 4, 3
+ ld 3, 496(1)
+ bl _p384_felem_reduce_core
+
+ ld 14, 56(1)
+ ld 15, 64(1)
+ ld 16, 72(1)
+ ld 17, 80(1)
+ ld 18, 88(1)
+ ld 19, 96(1)
+ ld 20, 104(1)
+ ld 21, 112(1)
+ ld 22, 120(1)
+ ld 23, 128(1)
+ ld 24, 136(1)
+ ld 25, 144(1)
+ ld 26, 152(1)
+ ld 27, 160(1)
+ ld 28, 168(1)
+ ld 29, 176(1)
+ ld 30, 184(1)
+ ld 31, 192(1)
+ addi 1, 1, 512
+ mtlr 0
+ blr
+.size p384_felem_square_reduce,.-p384_felem_square_reduce
+
+
+
+
+.global p384_felem_mul_reduce
+.type p384_felem_mul_reduce,@function
+.align 5
+p384_felem_mul_reduce:
+.localentry p384_felem_mul_reduce,0
+
+ stdu 1, -512(1)
+ mflr 0
+ std 14, 56(1)
+ std 15, 64(1)
+ std 16, 72(1)
+ std 17, 80(1)
+ std 18, 88(1)
+ std 19, 96(1)
+ std 20, 104(1)
+ std 21, 112(1)
+ std 22, 120(1)
+ std 23, 128(1)
+ std 24, 136(1)
+ std 25, 144(1)
+ std 26, 152(1)
+ std 27, 160(1)
+ std 28, 168(1)
+ std 29, 176(1)
+ std 30, 184(1)
+ std 31, 192(1)
+
+ std 3, 496(1)
+ addi 3, 1, 208
+ bl _p384_felem_mul_core
+
+ mr 4, 3
+ ld 3, 496(1)
+ bl _p384_felem_reduce_core
+
+ ld 14, 56(1)
+ ld 15, 64(1)
+ ld 16, 72(1)
+ ld 17, 80(1)
+ ld 18, 88(1)
+ ld 19, 96(1)
+ ld 20, 104(1)
+ ld 21, 112(1)
+ ld 22, 120(1)
+ ld 23, 128(1)
+ ld 24, 136(1)
+ ld 25, 144(1)
+ ld 26, 152(1)
+ ld 27, 160(1)
+ ld 28, 168(1)
+ ld 29, 176(1)
+ ld 30, 184(1)
+ ld 31, 192(1)
+ addi 1, 1, 512
+ mtlr 0
+ blr
+.size p384_felem_mul_reduce,.-p384_felem_mul_reduce