qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] hw/ppc: fix decrementer with BookE timers


From: Clément Chigot
Subject: Re: [PATCH] hw/ppc: fix decrementer with BookE timers
Date: Mon, 29 Jul 2024 10:33:16 +0200

Hi,

Gentle ping + CC missing maintainers.

Thanks Clément

On Mon, Jul 15, 2024 at 10:46 AM Clément Chigot <chigot@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 <chigot@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

[Prev in Thread] Current Thread [Next in Thread]