summaryrefslogtreecommitdiff
path: root/lib/libcrypto/bn
diff options
context:
space:
mode:
authorBob Beck <beck@cvs.openbsd.org>2001-08-01 19:51:18 +0000
committerBob Beck <beck@cvs.openbsd.org>2001-08-01 19:51:18 +0000
commit38223f1fe95067b826a997cfe88963e9e93cf6c9 (patch)
tree54b73def4615fc41d3103d101265ee0a2024baa6 /lib/libcrypto/bn
parent98ba4ab2de5732015ef5842227bc313d6f6c67ae (diff)
merge openssl 0.9.6b-engine
Note that this is a maintenence release, API's appear *not* to have changed. As such, I have only increased the minor number on these libraries
Diffstat (limited to 'lib/libcrypto/bn')
-rw-r--r--lib/libcrypto/bn/asm/mips3.s430
1 files changed, 245 insertions, 185 deletions
diff --git a/lib/libcrypto/bn/asm/mips3.s b/lib/libcrypto/bn/asm/mips3.s
index 45786c00a5f..dca4105c7db 100644
--- a/lib/libcrypto/bn/asm/mips3.s
+++ b/lib/libcrypto/bn/asm/mips3.s
@@ -1,5 +1,5 @@
.rdata
-.asciiz "mips3.s, Version 1.0"
+.asciiz "mips3.s, Version 1.1"
.asciiz "MIPS III/IV ISA artwork by Andy Polyakov <appro@fy.chalmers.se>"
/*
@@ -849,6 +849,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
+ sltu c_3,c_2,t_2
dmultu a_1,b_2 /* mul_add_c(a[1],b[2],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -856,7 +857,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_2,b_1 /* mul_add_c(a[2],b[1],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -884,6 +886,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
+ sltu c_1,c_3,t_2
dmultu a_3,b_1 /* mul_add_c(a[3],b[1],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -891,7 +894,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
dmultu a_2,b_2 /* mul_add_c(a[2],b[2],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -928,6 +932,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
+ sltu c_2,c_1,t_2
dmultu a_1,b_4 /* mul_add_c(a[1],b[4],c3,c1,c2); */
mflo t_1
mfhi t_2
@@ -935,7 +940,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
dmultu a_2,b_3 /* mul_add_c(a[2],b[3],c3,c1,c2); */
mflo t_1
mfhi t_2
@@ -981,6 +987,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
+ sltu c_3,c_2,t_2
dmultu a_5,b_1 /* mul_add_c(a[5],b[1],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -988,7 +995,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_4,b_2 /* mul_add_c(a[4],b[2],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -1043,6 +1051,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
+ sltu c_1,c_3,t_2
dmultu a_1,b_6 /* mul_add_c(a[1],b[6],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -1050,7 +1059,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
dmultu a_2,b_5 /* mul_add_c(a[2],b[5],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -1114,6 +1124,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
+ sltu c_2,c_1,t_2
dmultu a_6,b_2 /* mul_add_c(a[6],b[2],c3,c1,c2); */
mflo t_1
mfhi t_2
@@ -1121,7 +1132,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
dmultu a_5,b_3 /* mul_add_c(a[5],b[3],c3,c1,c2); */
mflo t_1
mfhi t_2
@@ -1176,6 +1188,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
+ sltu c_3,c_2,t_2
dmultu a_3,b_6 /* mul_add_c(a[3],b[6],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -1183,7 +1196,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_4,b_5 /* mul_add_c(a[4],b[5],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -1229,6 +1243,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
+ sltu c_1,c_3,t_2
dmultu a_6,b_4 /* mul_add_c(a[6],b[4],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -1236,7 +1251,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
dmultu a_5,b_5 /* mul_add_c(a[5],b[5],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -1273,6 +1289,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
+ sltu c_2,c_1,t_2
dmultu a_5,b_6 /* mul_add_c(a[5],b[6],c3,c1,c2); */
mflo t_1
mfhi t_2
@@ -1280,7 +1297,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
dmultu a_6,b_5 /* mul_add_c(a[6],b[5],c3,c1,c2); */
mflo t_1
mfhi t_2
@@ -1308,6 +1326,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
+ sltu c_3,c_2,t_2
dmultu a_6,b_6 /* mul_add_c(a[6],b[6],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -1315,7 +1334,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_5,b_7 /* mul_add_c(a[5],b[7],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -1334,6 +1354,7 @@ LEAF(bn_mul_comba8)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
+ sltu c_1,c_3,t_2
dmultu a_7,b_6 /* mul_add_c(a[7],b[6],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -1341,7 +1362,8 @@ LEAF(bn_mul_comba8)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
sd c_2,104(a0) /* r[13]=c2; */
dmultu a_7,b_7 /* mul_add_c(a[7],b[7],c3,c1,c2); */
@@ -1430,6 +1452,7 @@ LEAF(bn_mul_comba4)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
+ sltu c_3,c_2,t_2
dmultu a_1,b_2 /* mul_add_c(a[1],b[2],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -1437,7 +1460,8 @@ LEAF(bn_mul_comba4)
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_2,b_1 /* mul_add_c(a[2],b[1],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -1465,6 +1489,7 @@ LEAF(bn_mul_comba4)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
+ sltu c_1,c_3,t_2
dmultu a_2,b_2 /* mul_add_c(a[2],b[2],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -1472,7 +1497,8 @@ LEAF(bn_mul_comba4)
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
dmultu a_1,b_3 /* mul_add_c(a[1],b[3],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -1491,6 +1517,7 @@ LEAF(bn_mul_comba4)
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
+ sltu c_2,c_1,t_2
dmultu a_3,b_2 /* mul_add_c(a[3],b[2],c3,c1,c2); */
mflo t_1
mfhi t_2
@@ -1498,7 +1525,8 @@ LEAF(bn_mul_comba4)
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
sd c_3,40(a0)
dmultu a_3,b_3 /* mul_add_c(a[3],b[3],c1,c2,c3); */
@@ -1543,28 +1571,30 @@ LEAF(bn_sqr_comba8)
dmultu a_0,a_1 /* mul_add_c2(a[0],b[1],c2,c3,c1); */
mflo t_1
mfhi t_2
+ slt c_1,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu c_3,t_2,AT
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu t_2,AT
- daddu c_3,t_2
- sltu c_1,c_3,t_2
sd c_2,8(a0)
dmultu a_2,a_0 /* mul_add_c2(a[2],b[0],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
+ slt c_2,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
dmultu a_1,a_1 /* mul_add_c(a[1],b[1],c3,c1,c2); */
mflo t_1
mfhi t_2
@@ -1579,24 +1609,26 @@ LEAF(bn_sqr_comba8)
dmultu a_0,a_3 /* mul_add_c2(a[0],b[3],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
+ slt c_3,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_1,a_2 /* mul_add_c2(a[1],b[2],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
- sltu AT,c_2,a2
+ slt AT,t_2,zero
daddu c_3,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
@@ -1608,24 +1640,26 @@ LEAF(bn_sqr_comba8)
dmultu a_4,a_0 /* mul_add_c2(a[4],b[0],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
+ slt c_1,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
dmultu a_3,a_1 /* mul_add_c2(a[3],b[1],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
- sltu AT,c_3,a2
+ slt AT,t_2,zero
daddu c_1,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
@@ -1646,24 +1680,26 @@ LEAF(bn_sqr_comba8)
dmultu a_0,a_5 /* mul_add_c2(a[0],b[5],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
+ slt c_2,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
dmultu a_1,a_4 /* mul_add_c2(a[1],b[4],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
- sltu AT,c_1,a2
+ slt AT,t_2,zero
daddu c_2,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
@@ -1673,12 +1709,12 @@ LEAF(bn_sqr_comba8)
dmultu a_2,a_3 /* mul_add_c2(a[2],b[3],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
- sltu AT,c_1,a2
+ slt AT,t_2,zero
daddu c_2,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
@@ -1690,24 +1726,26 @@ LEAF(bn_sqr_comba8)
dmultu a_6,a_0 /* mul_add_c2(a[6],b[0],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
+ slt c_3,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_5,a_1 /* mul_add_c2(a[5],b[1],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
- sltu AT,c_2,a2
+ slt AT,t_2,zero
daddu c_3,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
@@ -1717,12 +1755,12 @@ LEAF(bn_sqr_comba8)
dmultu a_4,a_2 /* mul_add_c2(a[4],b[2],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
- sltu AT,c_2,a2
+ slt AT,t_2,zero
daddu c_3,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
@@ -1743,24 +1781,26 @@ LEAF(bn_sqr_comba8)
dmultu a_0,a_7 /* mul_add_c2(a[0],b[7],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
+ slt c_1,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
dmultu a_1,a_6 /* mul_add_c2(a[1],b[6],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
- sltu AT,c_3,a2
+ slt AT,t_2,zero
daddu c_1,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
@@ -1770,12 +1810,12 @@ LEAF(bn_sqr_comba8)
dmultu a_2,a_5 /* mul_add_c2(a[2],b[5],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
- sltu AT,c_3,a2
+ slt AT,t_2,zero
daddu c_1,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
@@ -1785,12 +1825,12 @@ LEAF(bn_sqr_comba8)
dmultu a_3,a_4 /* mul_add_c2(a[3],b[4],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
- sltu AT,c_3,a2
+ slt AT,t_2,zero
daddu c_1,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
@@ -1802,24 +1842,26 @@ LEAF(bn_sqr_comba8)
dmultu a_7,a_1 /* mul_add_c2(a[7],b[1],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
+ slt c_2,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
dmultu a_6,a_2 /* mul_add_c2(a[6],b[2],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
- sltu AT,c_1,a2
+ slt AT,t_2,zero
daddu c_2,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
@@ -1829,12 +1871,12 @@ LEAF(bn_sqr_comba8)
dmultu a_5,a_3 /* mul_add_c2(a[5],b[3],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
- sltu AT,c_1,a2
+ slt AT,t_2,zero
daddu c_2,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
@@ -1855,24 +1897,26 @@ LEAF(bn_sqr_comba8)
dmultu a_2,a_7 /* mul_add_c2(a[2],b[7],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
+ slt c_3,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_3,a_6 /* mul_add_c2(a[3],b[6],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
- sltu AT,c_2,a2
+ slt AT,t_2,zero
daddu c_3,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
@@ -1882,12 +1926,12 @@ LEAF(bn_sqr_comba8)
dmultu a_4,a_5 /* mul_add_c2(a[4],b[5],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
- sltu AT,c_2,a2
+ slt AT,t_2,zero
daddu c_3,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
@@ -1899,24 +1943,26 @@ LEAF(bn_sqr_comba8)
dmultu a_7,a_3 /* mul_add_c2(a[7],b[3],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
+ slt c_1,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
dmultu a_6,a_4 /* mul_add_c2(a[6],b[4],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
- sltu AT,c_3,a2
+ slt AT,t_2,zero
daddu c_1,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
@@ -1937,24 +1983,26 @@ LEAF(bn_sqr_comba8)
dmultu a_4,a_7 /* mul_add_c2(a[4],b[7],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
+ slt c_2,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
dmultu a_5,a_6 /* mul_add_c2(a[5],b[6],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
- sltu AT,c_1,a2
+ slt AT,t_2,zero
daddu c_2,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
@@ -1966,15 +2014,17 @@ LEAF(bn_sqr_comba8)
dmultu a_7,a_5 /* mul_add_c2(a[7],b[5],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
+ slt c_3,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_6,a_6 /* mul_add_c(a[6],b[6],c1,c2,c3); */
mflo t_1
mfhi t_2
@@ -1989,15 +2039,17 @@ LEAF(bn_sqr_comba8)
dmultu a_6,a_7 /* mul_add_c2(a[6],b[7],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
+ slt c_1,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
sd c_2,104(a0)
dmultu a_7,a_7 /* mul_add_c(a[7],b[7],c3,c1,c2); */
@@ -2028,28 +2080,30 @@ LEAF(bn_sqr_comba4)
dmultu a_0,a_1 /* mul_add_c2(a[0],b[1],c2,c3,c1); */
mflo t_1
mfhi t_2
+ slt c_1,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu c_3,t_2,AT
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu t_2,AT
- daddu c_3,t_2
- sltu c_1,c_3,t_2
sd c_2,8(a0)
dmultu a_2,a_0 /* mul_add_c2(a[2],b[0],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
+ slt c_2,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
dmultu a_1,a_1 /* mul_add_c(a[1],b[1],c3,c1,c2); */
mflo t_1
mfhi t_2
@@ -2064,24 +2118,26 @@ LEAF(bn_sqr_comba4)
dmultu a_0,a_3 /* mul_add_c2(a[0],b[3],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
+ slt c_3,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
daddu c_2,t_2
- sltu c_3,c_2,t_2
+ sltu AT,c_2,t_2
+ daddu c_3,AT
dmultu a_1,a_2 /* mul_add_c(a2[1],b[2],c1,c2,c3); */
mflo t_1
mfhi t_2
- daddu c_1,t_1
- sltu AT,c_1,t_1
- daddu a2,t_2,AT
- daddu c_2,a2
- sltu AT,c_2,a2
+ slt AT,t_2,zero
daddu c_3,AT
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_1,t_1
sltu AT,c_1,t_1
daddu t_2,AT
@@ -2093,15 +2149,17 @@ LEAF(bn_sqr_comba4)
dmultu a_3,a_1 /* mul_add_c2(a[3],b[1],c2,c3,c1); */
mflo t_1
mfhi t_2
- daddu c_2,t_1
- sltu AT,c_2,t_1
- daddu a2,t_2,AT
- daddu c_3,a2
+ slt c_1,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_2,t_1
sltu AT,c_2,t_1
daddu t_2,AT
daddu c_3,t_2
- sltu c_1,c_3,t_2
+ sltu AT,c_3,t_2
+ daddu c_1,AT
dmultu a_2,a_2 /* mul_add_c(a[2],b[2],c2,c3,c1); */
mflo t_1
mfhi t_2
@@ -2116,15 +2174,17 @@ LEAF(bn_sqr_comba4)
dmultu a_2,a_3 /* mul_add_c2(a[2],b[3],c3,c1,c2); */
mflo t_1
mfhi t_2
- daddu c_3,t_1
- sltu AT,c_3,t_1
- daddu a2,t_2,AT
- daddu c_1,a2
+ slt c_2,t_2,zero
+ dsll t_2,1
+ slt a2,t_1,zero
+ daddu t_2,a2
+ dsll t_1,1
daddu c_3,t_1
sltu AT,c_3,t_1
daddu t_2,AT
daddu c_1,t_2
- sltu c_2,c_1,t_2
+ sltu AT,c_1,t_2
+ daddu c_2,AT
sd c_3,40(a0)
dmultu a_3,a_3 /* mul_add_c(a[3],b[3],c1,c2,c3); */