while (dividend >= divisor) { /* The following asm() prevents the compiler from
optimising this loop into a modulo operation. */ asm("" : "+rm"(dividend));
#ifndef mul_u64_u32_add_u64_shr #ifndef mul_u32_u32 staticinline u64 mul_u32_u32(u32 a, u32 b)
{ return (u64)a * b;
} #define mul_u32_u32 mul_u32_u32 #endif static __always_inline u64 mul_u64_u32_add_u64_shr(u64 a, u32 mul, u64 b, unsignedint shift)
{
u32 ah = a >> 32, al = a; bool ovf;
u64 ret;
ovf = __builtin_add_overflow(mul_u32_u32(al, mul), b, &ret);
ret >>= shift; if (ovf && shift)
ret += 1ULL << (64 - shift); if (ah)
ret += mul_u32_u32(ah, mul) << (32 - shift);
return ret;
} #endif/* mul_u64_u32_add_u64_shr */
#endif
#endif/* __VDSO_MATH64_H */
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.10Bemerkung:
(vorverarbeitet am 2026-06-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.