|
@@ -1336,14 +1336,14 @@ static WC_INLINE sp_digit sp_2048_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
sp_digit t;
|
|
|
|
|
|
/* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
- d = (d1 << 6) | (d0 >> 51);
|
|
|
+ d = (d1 << 6) + (d0 >> 51);
|
|
|
r = d / dv;
|
|
|
d -= r * dv;
|
|
|
/* Up to 7 bits in r */
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 45) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 45) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -1351,7 +1351,7 @@ static WC_INLINE sp_digit sp_2048_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 39) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 39) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -1359,7 +1359,7 @@ static WC_INLINE sp_digit sp_2048_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 33) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 33) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -1367,7 +1367,7 @@ static WC_INLINE sp_digit sp_2048_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 27) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 27) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -1375,7 +1375,7 @@ static WC_INLINE sp_digit sp_2048_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 21) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 21) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -1383,7 +1383,7 @@ static WC_INLINE sp_digit sp_2048_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 15) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 15) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -1391,7 +1391,7 @@ static WC_INLINE sp_digit sp_2048_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 9) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 9) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -1399,7 +1399,7 @@ static WC_INLINE sp_digit sp_2048_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 3) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 3) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -1407,10 +1407,11 @@ static WC_INLINE sp_digit sp_2048_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Remaining 3 bits from d0. */
|
|
|
r <<= 3;
|
|
|
d <<= 3;
|
|
|
- d |= d0 & ((1 << 3) - 1);
|
|
|
+ d += d0 & ((1 << 3) - 1);
|
|
|
t = d / dv;
|
|
|
r += t;
|
|
|
|
|
|
+ /* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
return r;
|
|
|
}
|
|
|
#endif /* WOLFSSL_SP_DIV_64 */
|
|
@@ -2217,14 +2218,14 @@ static WC_INLINE sp_digit sp_2048_div_word_36(sp_digit d1, sp_digit d0,
|
|
|
sp_digit t;
|
|
|
|
|
|
/* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
- d = (d1 << 6) | (d0 >> 51);
|
|
|
+ d = (d1 << 6) + (d0 >> 51);
|
|
|
r = d / dv;
|
|
|
d -= r * dv;
|
|
|
/* Up to 7 bits in r */
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 45) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 45) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -2232,7 +2233,7 @@ static WC_INLINE sp_digit sp_2048_div_word_36(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 39) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 39) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -2240,7 +2241,7 @@ static WC_INLINE sp_digit sp_2048_div_word_36(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 33) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 33) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -2248,7 +2249,7 @@ static WC_INLINE sp_digit sp_2048_div_word_36(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 27) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 27) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -2256,7 +2257,7 @@ static WC_INLINE sp_digit sp_2048_div_word_36(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 21) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 21) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -2264,7 +2265,7 @@ static WC_INLINE sp_digit sp_2048_div_word_36(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 15) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 15) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -2272,7 +2273,7 @@ static WC_INLINE sp_digit sp_2048_div_word_36(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 9) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 9) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -2280,7 +2281,7 @@ static WC_INLINE sp_digit sp_2048_div_word_36(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 3) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 3) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -2288,10 +2289,11 @@ static WC_INLINE sp_digit sp_2048_div_word_36(sp_digit d1, sp_digit d0,
|
|
|
/* Remaining 3 bits from d0. */
|
|
|
r <<= 3;
|
|
|
d <<= 3;
|
|
|
- d |= d0 & ((1 << 3) - 1);
|
|
|
+ d += d0 & ((1 << 3) - 1);
|
|
|
t = d / dv;
|
|
|
r += t;
|
|
|
|
|
|
+ /* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
return r;
|
|
|
}
|
|
|
#endif /* WOLFSSL_SP_DIV_64 */
|
|
@@ -5563,14 +5565,14 @@ static WC_INLINE sp_digit sp_3072_div_word_27(sp_digit d1, sp_digit d0,
|
|
|
sp_digit t;
|
|
|
|
|
|
/* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
- d = (d1 << 6) | (d0 >> 51);
|
|
|
+ d = (d1 << 6) + (d0 >> 51);
|
|
|
r = d / dv;
|
|
|
d -= r * dv;
|
|
|
/* Up to 7 bits in r */
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 45) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 45) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -5578,7 +5580,7 @@ static WC_INLINE sp_digit sp_3072_div_word_27(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 39) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 39) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -5586,7 +5588,7 @@ static WC_INLINE sp_digit sp_3072_div_word_27(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 33) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 33) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -5594,7 +5596,7 @@ static WC_INLINE sp_digit sp_3072_div_word_27(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 27) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 27) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -5602,7 +5604,7 @@ static WC_INLINE sp_digit sp_3072_div_word_27(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 21) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 21) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -5610,7 +5612,7 @@ static WC_INLINE sp_digit sp_3072_div_word_27(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 15) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 15) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -5618,7 +5620,7 @@ static WC_INLINE sp_digit sp_3072_div_word_27(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 9) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 9) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -5626,7 +5628,7 @@ static WC_INLINE sp_digit sp_3072_div_word_27(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 3) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 3) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -5634,10 +5636,11 @@ static WC_INLINE sp_digit sp_3072_div_word_27(sp_digit d1, sp_digit d0,
|
|
|
/* Remaining 3 bits from d0. */
|
|
|
r <<= 3;
|
|
|
d <<= 3;
|
|
|
- d |= d0 & ((1 << 3) - 1);
|
|
|
+ d += d0 & ((1 << 3) - 1);
|
|
|
t = d / dv;
|
|
|
r += t;
|
|
|
|
|
|
+ /* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
return r;
|
|
|
}
|
|
|
#endif /* WOLFSSL_SP_DIV_64 */
|
|
@@ -6449,14 +6452,14 @@ static WC_INLINE sp_digit sp_3072_div_word_54(sp_digit d1, sp_digit d0,
|
|
|
sp_digit t;
|
|
|
|
|
|
/* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
- d = (d1 << 6) | (d0 >> 51);
|
|
|
+ d = (d1 << 6) + (d0 >> 51);
|
|
|
r = d / dv;
|
|
|
d -= r * dv;
|
|
|
/* Up to 7 bits in r */
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 45) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 45) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -6464,7 +6467,7 @@ static WC_INLINE sp_digit sp_3072_div_word_54(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 39) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 39) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -6472,7 +6475,7 @@ static WC_INLINE sp_digit sp_3072_div_word_54(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 33) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 33) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -6480,7 +6483,7 @@ static WC_INLINE sp_digit sp_3072_div_word_54(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 27) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 27) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -6488,7 +6491,7 @@ static WC_INLINE sp_digit sp_3072_div_word_54(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 21) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 21) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -6496,7 +6499,7 @@ static WC_INLINE sp_digit sp_3072_div_word_54(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 15) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 15) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -6504,7 +6507,7 @@ static WC_INLINE sp_digit sp_3072_div_word_54(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 9) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 9) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -6512,7 +6515,7 @@ static WC_INLINE sp_digit sp_3072_div_word_54(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 3) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 3) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -6520,10 +6523,11 @@ static WC_INLINE sp_digit sp_3072_div_word_54(sp_digit d1, sp_digit d0,
|
|
|
/* Remaining 3 bits from d0. */
|
|
|
r <<= 3;
|
|
|
d <<= 3;
|
|
|
- d |= d0 & ((1 << 3) - 1);
|
|
|
+ d += d0 & ((1 << 3) - 1);
|
|
|
t = d / dv;
|
|
|
r += t;
|
|
|
|
|
|
+ /* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
return r;
|
|
|
}
|
|
|
#endif /* WOLFSSL_SP_DIV_64 */
|
|
@@ -9930,14 +9934,14 @@ static WC_INLINE sp_digit sp_4096_div_word_39(sp_digit d1, sp_digit d0,
|
|
|
sp_digit t;
|
|
|
|
|
|
/* All 53 bits from d1 and top 10 bits from d0. */
|
|
|
- d = (d1 << 10) | (d0 >> 43);
|
|
|
+ d = (d1 << 10) + (d0 >> 43);
|
|
|
r = d / dv;
|
|
|
d -= r * dv;
|
|
|
/* Up to 11 bits in r */
|
|
|
/* Next 10 bits from d0. */
|
|
|
r <<= 10;
|
|
|
d <<= 10;
|
|
|
- d |= (d0 >> 33) & ((1 << 10) - 1);
|
|
|
+ d += (d0 >> 33) & ((1 << 10) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -9945,7 +9949,7 @@ static WC_INLINE sp_digit sp_4096_div_word_39(sp_digit d1, sp_digit d0,
|
|
|
/* Next 10 bits from d0. */
|
|
|
r <<= 10;
|
|
|
d <<= 10;
|
|
|
- d |= (d0 >> 23) & ((1 << 10) - 1);
|
|
|
+ d += (d0 >> 23) & ((1 << 10) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -9953,7 +9957,7 @@ static WC_INLINE sp_digit sp_4096_div_word_39(sp_digit d1, sp_digit d0,
|
|
|
/* Next 10 bits from d0. */
|
|
|
r <<= 10;
|
|
|
d <<= 10;
|
|
|
- d |= (d0 >> 13) & ((1 << 10) - 1);
|
|
|
+ d += (d0 >> 13) & ((1 << 10) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -9961,7 +9965,7 @@ static WC_INLINE sp_digit sp_4096_div_word_39(sp_digit d1, sp_digit d0,
|
|
|
/* Next 10 bits from d0. */
|
|
|
r <<= 10;
|
|
|
d <<= 10;
|
|
|
- d |= (d0 >> 3) & ((1 << 10) - 1);
|
|
|
+ d += (d0 >> 3) & ((1 << 10) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -9969,10 +9973,11 @@ static WC_INLINE sp_digit sp_4096_div_word_39(sp_digit d1, sp_digit d0,
|
|
|
/* Remaining 3 bits from d0. */
|
|
|
r <<= 3;
|
|
|
d <<= 3;
|
|
|
- d |= d0 & ((1 << 3) - 1);
|
|
|
+ d += d0 & ((1 << 3) - 1);
|
|
|
t = d / dv;
|
|
|
r += t;
|
|
|
|
|
|
+ /* All 53 bits from d1 and top 10 bits from d0. */
|
|
|
return r;
|
|
|
}
|
|
|
#endif /* WOLFSSL_SP_DIV_64 */
|
|
@@ -10875,14 +10880,14 @@ static WC_INLINE sp_digit sp_4096_div_word_78(sp_digit d1, sp_digit d0,
|
|
|
sp_digit t;
|
|
|
|
|
|
/* All 53 bits from d1 and top 10 bits from d0. */
|
|
|
- d = (d1 << 10) | (d0 >> 43);
|
|
|
+ d = (d1 << 10) + (d0 >> 43);
|
|
|
r = d / dv;
|
|
|
d -= r * dv;
|
|
|
/* Up to 11 bits in r */
|
|
|
/* Next 10 bits from d0. */
|
|
|
r <<= 10;
|
|
|
d <<= 10;
|
|
|
- d |= (d0 >> 33) & ((1 << 10) - 1);
|
|
|
+ d += (d0 >> 33) & ((1 << 10) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -10890,7 +10895,7 @@ static WC_INLINE sp_digit sp_4096_div_word_78(sp_digit d1, sp_digit d0,
|
|
|
/* Next 10 bits from d0. */
|
|
|
r <<= 10;
|
|
|
d <<= 10;
|
|
|
- d |= (d0 >> 23) & ((1 << 10) - 1);
|
|
|
+ d += (d0 >> 23) & ((1 << 10) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -10898,7 +10903,7 @@ static WC_INLINE sp_digit sp_4096_div_word_78(sp_digit d1, sp_digit d0,
|
|
|
/* Next 10 bits from d0. */
|
|
|
r <<= 10;
|
|
|
d <<= 10;
|
|
|
- d |= (d0 >> 13) & ((1 << 10) - 1);
|
|
|
+ d += (d0 >> 13) & ((1 << 10) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -10906,7 +10911,7 @@ static WC_INLINE sp_digit sp_4096_div_word_78(sp_digit d1, sp_digit d0,
|
|
|
/* Next 10 bits from d0. */
|
|
|
r <<= 10;
|
|
|
d <<= 10;
|
|
|
- d |= (d0 >> 3) & ((1 << 10) - 1);
|
|
|
+ d += (d0 >> 3) & ((1 << 10) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -10914,10 +10919,11 @@ static WC_INLINE sp_digit sp_4096_div_word_78(sp_digit d1, sp_digit d0,
|
|
|
/* Remaining 3 bits from d0. */
|
|
|
r <<= 3;
|
|
|
d <<= 3;
|
|
|
- d |= d0 & ((1 << 3) - 1);
|
|
|
+ d += d0 & ((1 << 3) - 1);
|
|
|
t = d / dv;
|
|
|
r += t;
|
|
|
|
|
|
+ /* All 53 bits from d1 and top 10 bits from d0. */
|
|
|
return r;
|
|
|
}
|
|
|
#endif /* WOLFSSL_SP_DIV_64 */
|
|
@@ -17426,14 +17432,14 @@ static WC_INLINE sp_digit sp_256_div_word_5(sp_digit d1, sp_digit d0,
|
|
|
sp_digit t;
|
|
|
|
|
|
/* All 52 bits from d1 and top 11 bits from d0. */
|
|
|
- d = (d1 << 11) | (d0 >> 41);
|
|
|
+ d = (d1 << 11) + (d0 >> 41);
|
|
|
r = d / dv;
|
|
|
d -= r * dv;
|
|
|
/* Up to 12 bits in r */
|
|
|
/* Next 11 bits from d0. */
|
|
|
r <<= 11;
|
|
|
d <<= 11;
|
|
|
- d |= (d0 >> 30) & ((1 << 11) - 1);
|
|
|
+ d += (d0 >> 30) & ((1 << 11) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -17441,7 +17447,7 @@ static WC_INLINE sp_digit sp_256_div_word_5(sp_digit d1, sp_digit d0,
|
|
|
/* Next 11 bits from d0. */
|
|
|
r <<= 11;
|
|
|
d <<= 11;
|
|
|
- d |= (d0 >> 19) & ((1 << 11) - 1);
|
|
|
+ d += (d0 >> 19) & ((1 << 11) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -17449,7 +17455,7 @@ static WC_INLINE sp_digit sp_256_div_word_5(sp_digit d1, sp_digit d0,
|
|
|
/* Next 11 bits from d0. */
|
|
|
r <<= 11;
|
|
|
d <<= 11;
|
|
|
- d |= (d0 >> 8) & ((1 << 11) - 1);
|
|
|
+ d += (d0 >> 8) & ((1 << 11) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -17457,10 +17463,11 @@ static WC_INLINE sp_digit sp_256_div_word_5(sp_digit d1, sp_digit d0,
|
|
|
/* Remaining 8 bits from d0. */
|
|
|
r <<= 8;
|
|
|
d <<= 8;
|
|
|
- d |= d0 & ((1 << 8) - 1);
|
|
|
+ d += d0 & ((1 << 8) - 1);
|
|
|
t = d / dv;
|
|
|
r += t;
|
|
|
|
|
|
+ /* All 52 bits from d1 and top 11 bits from d0. */
|
|
|
return r;
|
|
|
}
|
|
|
#endif /* WOLFSSL_SP_DIV_64 */
|
|
@@ -24626,14 +24633,14 @@ static WC_INLINE sp_digit sp_384_div_word_7(sp_digit d1, sp_digit d0,
|
|
|
sp_digit t;
|
|
|
|
|
|
/* All 55 bits from d1 and top 8 bits from d0. */
|
|
|
- d = (d1 << 8) | (d0 >> 47);
|
|
|
+ d = (d1 << 8) + (d0 >> 47);
|
|
|
r = d / dv;
|
|
|
d -= r * dv;
|
|
|
/* Up to 9 bits in r */
|
|
|
/* Next 8 bits from d0. */
|
|
|
r <<= 8;
|
|
|
d <<= 8;
|
|
|
- d |= (d0 >> 39) & ((1 << 8) - 1);
|
|
|
+ d += (d0 >> 39) & ((1 << 8) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -24641,7 +24648,7 @@ static WC_INLINE sp_digit sp_384_div_word_7(sp_digit d1, sp_digit d0,
|
|
|
/* Next 8 bits from d0. */
|
|
|
r <<= 8;
|
|
|
d <<= 8;
|
|
|
- d |= (d0 >> 31) & ((1 << 8) - 1);
|
|
|
+ d += (d0 >> 31) & ((1 << 8) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -24649,7 +24656,7 @@ static WC_INLINE sp_digit sp_384_div_word_7(sp_digit d1, sp_digit d0,
|
|
|
/* Next 8 bits from d0. */
|
|
|
r <<= 8;
|
|
|
d <<= 8;
|
|
|
- d |= (d0 >> 23) & ((1 << 8) - 1);
|
|
|
+ d += (d0 >> 23) & ((1 << 8) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -24657,7 +24664,7 @@ static WC_INLINE sp_digit sp_384_div_word_7(sp_digit d1, sp_digit d0,
|
|
|
/* Next 8 bits from d0. */
|
|
|
r <<= 8;
|
|
|
d <<= 8;
|
|
|
- d |= (d0 >> 15) & ((1 << 8) - 1);
|
|
|
+ d += (d0 >> 15) & ((1 << 8) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -24665,7 +24672,7 @@ static WC_INLINE sp_digit sp_384_div_word_7(sp_digit d1, sp_digit d0,
|
|
|
/* Next 8 bits from d0. */
|
|
|
r <<= 8;
|
|
|
d <<= 8;
|
|
|
- d |= (d0 >> 7) & ((1 << 8) - 1);
|
|
|
+ d += (d0 >> 7) & ((1 << 8) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -24673,10 +24680,11 @@ static WC_INLINE sp_digit sp_384_div_word_7(sp_digit d1, sp_digit d0,
|
|
|
/* Remaining 7 bits from d0. */
|
|
|
r <<= 7;
|
|
|
d <<= 7;
|
|
|
- d |= d0 & ((1 << 7) - 1);
|
|
|
+ d += d0 & ((1 << 7) - 1);
|
|
|
t = d / dv;
|
|
|
r += t;
|
|
|
|
|
|
+ /* All 55 bits from d1 and top 8 bits from d0. */
|
|
|
return r;
|
|
|
}
|
|
|
#endif /* WOLFSSL_SP_DIV_64 */
|
|
@@ -26997,14 +27005,14 @@ static WC_INLINE sp_digit sp_1024_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
sp_digit t;
|
|
|
|
|
|
/* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
- d = (d1 << 6) | (d0 >> 51);
|
|
|
+ d = (d1 << 6) + (d0 >> 51);
|
|
|
r = d / dv;
|
|
|
d -= r * dv;
|
|
|
/* Up to 7 bits in r */
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 45) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 45) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -27012,7 +27020,7 @@ static WC_INLINE sp_digit sp_1024_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 39) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 39) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -27020,7 +27028,7 @@ static WC_INLINE sp_digit sp_1024_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 33) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 33) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -27028,7 +27036,7 @@ static WC_INLINE sp_digit sp_1024_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 27) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 27) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -27036,7 +27044,7 @@ static WC_INLINE sp_digit sp_1024_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 21) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 21) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -27044,7 +27052,7 @@ static WC_INLINE sp_digit sp_1024_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 15) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 15) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -27052,7 +27060,7 @@ static WC_INLINE sp_digit sp_1024_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 9) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 9) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -27060,7 +27068,7 @@ static WC_INLINE sp_digit sp_1024_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Next 6 bits from d0. */
|
|
|
r <<= 6;
|
|
|
d <<= 6;
|
|
|
- d |= (d0 >> 3) & ((1 << 6) - 1);
|
|
|
+ d += (d0 >> 3) & ((1 << 6) - 1);
|
|
|
t = d / dv;
|
|
|
d -= t * dv;
|
|
|
r += t;
|
|
@@ -27068,10 +27076,11 @@ static WC_INLINE sp_digit sp_1024_div_word_18(sp_digit d1, sp_digit d0,
|
|
|
/* Remaining 3 bits from d0. */
|
|
|
r <<= 3;
|
|
|
d <<= 3;
|
|
|
- d |= d0 & ((1 << 3) - 1);
|
|
|
+ d += d0 & ((1 << 3) - 1);
|
|
|
t = d / dv;
|
|
|
r += t;
|
|
|
|
|
|
+ /* All 57 bits from d1 and top 6 bits from d0. */
|
|
|
return r;
|
|
|
}
|
|
|
#endif /* WOLFSSL_SP_DIV_64 */
|