host-utils: add 128-bit quotient support to divu128/divs128

These will be used to implement new decimal floating point
instructions from Power ISA 3.1.

The remainder is now returned directly by divu128/divs128,
freeing up phigh to receive the high 64 bits of the quotient.

Signed-off-by: Luis Pires <luis.pires@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211025191154.350831-4-luis.pires@eldorado.org.br>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Luis Pires 2021-10-25 16:11:38 -03:00 committed by Richard Henderson
parent 8ac2d6c526
commit 40f3e79a86
4 changed files with 108 additions and 60 deletions

View file

@ -323,11 +323,7 @@ static inline uint64_t clock_ns_to_ticks(const Clock *clk, uint64_t ns)
if (clk->period == 0) {
return 0;
}
/*
* BUG: when CONFIG_INT128 is not defined, the current implementation of
* divu128 does not return a valid truncated quotient, so the result will
* be wrong.
*/
divu128(&lo, &hi, clk->period);
return lo;
}