Merge in the IRIX fix from the main development line.
authorRichard Levitte <levitte@openssl.org>
Tue, 27 Mar 2001 23:48:35 +0000 (23:48 +0000)
committerRichard Levitte <levitte@openssl.org>
Tue, 27 Mar 2001 23:48:35 +0000 (23:48 +0000)
Configure
crypto/bn/asm/mips3.s
crypto/bn/bn_div.c

index 7d6276205ed21aa41c81336a4b15c33a1633f85c..c648695c654621ca4bb59eccac202d4e2c756fac 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -89,9 +89,7 @@ my $x86_elf_asm="asm/bn86-elf.o asm/co86-elf.o:asm/dx86-elf.o asm/yx86-elf.o:asm
 my $x86_out_asm="asm/bn86-out.o asm/co86-out.o:asm/dx86-out.o asm/yx86-out.o:asm/bx86-out.o:asm/mx86-out.o:asm/sx86-out.o:asm/cx86-out.o:asm/rx86-out.o:asm/rm86-out.o:asm/r586-out.o";
 my $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/mx86bsdi.o:asm/sx86bsdi.o:asm/cx86bsdi.o:asm/rx86bsdi.o:asm/rm86bsdi.o:asm/r586bsdi.o";
 
-# There seems to be some kind of fault in asm/mips3.s
-#my $mips3_irix_asm="asm/mips3.o::::::::";
-my $mips3_irix_asm="::::::::";
+my $mips3_irix_asm="asm/mips3.o::::::::";
 # There seems to be boundary faults in asm/alpha.s.
 #my $alpha_asm="asm/alpha.o::::::::";
 my $alpha_asm="::::::::";
index 2df4dcd4b0bf71409e77a09f5b2aea33aadee8c4..45786c00a5f33967c81e09e6f4571e0fbd976c20 100644 (file)
@@ -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
index 891b6026311c64e253cd7f4cf167b7dcef19601c..c328b5b4110b47d2e132e71c487e9bee9ccdf749 100644 (file)
@@ -238,6 +238,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
                {
                BN_ULONG q,l0;
 #if defined(BN_DIV3W) && !defined(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;