Hi, Gentle ping + CC missing maintainers.
Thanks Clément On Mon, Jul 15, 2024 at 10:46 AM Clément Chigot <chi...@adacore.com> wrote: > > The BookE decrementer stops at 0, meaning that it won't decremented > towards "negative" values. > However, the current logic is inverted: decr is updated solely when > the resulting value would be negative. > > Signed-off-by: Clément Chigot <chi...@adacore.com> > Fixed: 8e0a5ac87800 ("hw/ppc: Avoid decrementer rounding errors") > --- > hw/ppc/ppc.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c > index e6fa5580c0..9fc85c7de0 100644 > --- a/hw/ppc/ppc.c > +++ b/hw/ppc/ppc.c > @@ -729,7 +729,9 @@ static inline int64_t __cpu_ppc_load_decr(CPUPPCState > *env, int64_t now, > int64_t decr; > > n = ns_to_tb(tb_env->decr_freq, now); > - if (next > n && tb_env->flags & PPC_TIMER_BOOKE) { > + > + /* BookE timers stop when reaching 0. */ > + if (next < n && tb_env->flags & PPC_TIMER_BOOKE) { > decr = 0; > } else { > decr = next - n; > -- > 2.25.1 >