aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'crypto')
-rw-r--r--crypto/bn/asm/mips3.s8
-rw-r--r--crypto/bn/bn_div.c1
2 files changed, 5 insertions, 4 deletions
diff --git a/crypto/bn/asm/mips3.s b/crypto/bn/asm/mips3.s
index 2df4dcd4b0..45786c00a5 100644
--- a/crypto/bn/asm/mips3.s
+++ b/crypto/bn/asm/mips3.s
@@ -586,13 +586,13 @@ LEAF(bn_div_3_words)
ld a0,(a3)
move ta2,a1
ld a1,-8(a3)
- move ta3,ra
- move v1,zero
+ bne a0,a2,.L_bn_div_3_words_proceed
li v0,-1
- beq a0,a2,.L_bn_div_3_words_skip_div
+ jr ra
+.L_bn_div_3_words_proceed:
+ move ta3,ra
bal bn_div_words
move ra,ta3
-.L_bn_div_3_words_skip_div:
dmultu ta2,v0
ld t2,-16(a3)
move ta0,zero
diff --git a/crypto/bn/bn_div.c b/crypto/bn/bn_div.c
index bbd0994008..d0b68dc246 100644
--- a/crypto/bn/bn_div.c
+++ b/crypto/bn/bn_div.c
@@ -250,6 +250,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
{
BN_ULONG q,l0;
#if defined(BN_DIV3W) && !defined(OPENSSL_NO_ASM)
+ BN_ULONG bn_div_3_words(BN_ULONG*,BN_ULONG,BN_ULONG);
q=bn_div_3_words(wnump,d1,d0);
#else
BN_ULONG n0,n1,rem=0;