3d912a
# HG changeset patch
3d912a
# User Greg Rubin <rubin@amazon.com>
3d912a
# Date 1558464083 25200
3d912a
#      Tue May 21 11:41:23 2019 -0700
3d912a
# Branch NSS_3_44_BRANCH
3d912a
# Node ID 1eac9016c021055018389a5cb117678ecc61782a
3d912a
# Parent  416a8f7cf8986103b4d74694aac1198edbb08b3e
3d912a
Bug 1554336 - Optimize away unneeded loop in mpi.c r=kevinjacobs,jcj
3d912a
3d912a
diff --git a/lib/freebl/mpi/mpi.c b/lib/freebl/mpi/mpi.c
3d912a
--- a/lib/freebl/mpi/mpi.c
3d912a
+++ b/lib/freebl/mpi/mpi.c
3d912a
@@ -2063,7 +2063,10 @@ s_mp_almost_inverse(const mp_int *a, con
3d912a
             }
3d912a
         }
3d912a
     if (res >= 0) {
3d912a
-        while (MP_SIGN(c) != MP_ZPOS) {
3d912a
+        if (mp_cmp_mag(c, p) >= 0) {
3d912a
+            MP_CHECKOK(mp_div(c, p, NULL, c));
3d912a
+        }
3d912a
+        if (MP_SIGN(c) != MP_ZPOS) {
3d912a
             MP_CHECKOK(mp_add(c, p, c));
3d912a
         }
3d912a
         res = k;