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
>

Reply via email to