New upstream version 23.2.1+dfsg1

This commit is contained in:
Simon Chopin 2019-07-27 14:47:10 +02:00
parent cdc9a9fc87
commit b14f9eae6d
1017 changed files with 37232 additions and 11111 deletions

View file

@ -51,11 +51,19 @@ static inline util_uint128_t util_add128(util_uint128_t a, util_uint128_t b)
return out;
}
static inline util_uint128_t util_lshift64(uint64_t a, int num)
static inline util_uint128_t util_lshift64_internal_32(uint64_t a)
{
util_uint128_t val;
val.low = a << num;
val.high = a >> (64 - num);
val.low = a << 32;
val.high = a >> 32;
return val;
}
static inline util_uint128_t util_lshift64_internal_64(uint64_t a)
{
util_uint128_t val;
val.low = 0;
val.high = a;
return val;
}
@ -69,13 +77,13 @@ static inline util_uint128_t util_mul64_64(uint64_t a, uint64_t b)
out.high = 0;
m = (a >> 32) * (b & 0xFFFFFFFFULL);
out = util_add128(out, util_lshift64(m, 32));
out = util_add128(out, util_lshift64_internal_32(m));
m = (a & 0xFFFFFFFFULL) * (b >> 32);
out = util_add128(out, util_lshift64(m, 32));
out = util_add128(out, util_lshift64_internal_32(m));
m = (a >> 32) * (b >> 32);
out = util_add128(out, util_lshift64(m, 64));
out = util_add128(out, util_lshift64_internal_64(m));
return out;
}