diff --git a/asm/float.c b/asm/float.c index 37f5585a..7d313a59 100644 --- a/asm/float.c +++ b/asm/float.c @@ -556,7 +556,7 @@ static bool ieee_flconvert_bin(const char *string, int bits, mp = &mult[MANT_LIMBS]; /* Guard slot */ ms += LIMB_BITS; } - *mp |= v << ms; + *mp |= v << (ms % (sizeof(fp_limb) * CHAR_BIT)); ms -= bits; if (!seendot)