Fixed computation of product size.

This commit is contained in:
Thomas Pornin 2018-07-31 22:53:35 +02:00
parent e37c90ac68
commit a0054ad821

View file

@ -38,9 +38,9 @@ br_i15_mulacc(uint16_t *d, const uint16_t *a, const uint16_t *b)
* Announced bit length of d[] will be the sum of the announced * Announced bit length of d[] will be the sum of the announced
* bit lengths of a[] and b[]; but the lengths are encoded. * bit lengths of a[] and b[]; but the lengths are encoded.
*/ */
dl = (a[0] & 15) + (d[0] & 15); dl = (a[0] & 15) + (b[0] & 15);
dh = (a[0] >> 4) + (b[0] >> 4); dh = (a[0] >> 4) + (b[0] >> 4);
d[0] = (dh << 4) + dl + (~(uint16_t)(dl - 15) >> 15); d[0] = (dh << 4) + dl + (~(uint32_t)(dl - 15) >> 31);
for (u = 0; u < blen; u ++) { for (u = 0; u < blen; u ++) {
uint32_t f; uint32_t f;