qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] hw/ppc: fix decrementer with BookE timers
@ 2024-07-15  8:46 Clément Chigot
  2024-07-29  8:33 ` Clément Chigot
  2024-08-27 17:40 ` Cédric Le Goater
  0 siblings, 2 replies; 10+ messages in thread
From: Clément Chigot @ 2024-07-15  8:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: npiggin, Clément Chigot

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



^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-09-20 15:47 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-15  8:46 [PATCH] hw/ppc: fix decrementer with BookE timers Clément Chigot
2024-07-29  8:33 ` Clément Chigot
2024-08-27 11:49   ` Clément Chigot
2024-08-27 15:51     ` Philippe Mathieu-Daudé
2024-08-27 17:40 ` Cédric Le Goater
2024-08-28  7:21   ` Clément Chigot
2024-08-29 12:33     ` Cédric Le Goater
2024-08-29 13:36       ` Clément Chigot
2024-09-20 14:42   ` Clément Chigot
2024-09-20 15:46     ` Cédric Le Goater

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).