Make Rules.mk more compatible with merges and local diffs.
[BearSSL] / src / int / i15_modpow2.c
index dce9941..4b32118 100644 (file)
@@ -41,6 +41,7 @@ br_i15_modpow_opt(uint16_t *x,
         */
        mwlen = (m[0] + 31) >> 4;
        mlen = mwlen * sizeof m[0];
+       mwlen += (mwlen & 1);
        t1 = tmp;
        t2 = tmp + mwlen;
 
@@ -86,7 +87,7 @@ br_i15_modpow_opt(uint16_t *x,
         * one word-sized shift.
         */
        br_i15_zero(x, m[0]);
-       x[mwlen - 1] = 1;
+       x[(m[0] + 15) >> 4] = 1;
        br_i15_muladd_small(x, 0, m);
 
        /*
@@ -133,11 +134,11 @@ br_i15_modpow_opt(uint16_t *x,
                        br_i15_zero(t2, m[0]);
                        base = t2 + mwlen;
                        for (u = 1; u < ((uint32_t)1 << k); u ++) {
-                               uint32_t m;
+                               uint32_t mask;
 
-                               m = -EQ(u, bits);
+                               mask = -EQ(u, bits);
                                for (v = 1; v < mwlen; v ++) {
-                                       t2[v] |= m & base[v];
+                                       t2[v] |= mask & base[v];
                                }
                                base += mwlen;
                        }