diff --git a/include/nuttx/lib/math32.h b/include/nuttx/lib/math32.h index 14fd78577bbb8..d793779b9b135 100644 --- a/include/nuttx/lib/math32.h +++ b/include/nuttx/lib/math32.h @@ -495,7 +495,8 @@ static inline_function uint64_t invdiv_umulh64(uint64_t a, uint64_t b) * the inline assembly. */ - __uint128_t res128 = (__uint128_t)a * b; + __uint128_t a128 = a; + __uint128_t res128 = a128 * b; return res128 >> 64; #endif } @@ -542,7 +543,8 @@ void invdiv_init_param64(uint64_t d, FAR invdiv_param64_t *param) param->mult = q[0] + 1; #else - param->mult = ((__uint128_t)1 << 64) * t / d + 1; + __uint128_t one128 = 1; + param->mult = (one128 << 64) * t / d + 1; #endif param->shift = l - 1; }