On 9/24/25 10:30, Philippe Mathieu-Daudé wrote:
gen_pause() sets CPUState::halted = 0, effectively unhalting
(a.k.a. "running") the cpu. Correct by setting the '1' value
to really halt the cpu.

Fixes: b68e60e6f0d ("ppc: Get out of emulation on SMT "OR" ops")
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
  target/ppc/translate.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/ppc/translate.c b/target/ppc/translate.c
index 27f90c3cc56..a1a97e0fd2e 100644
--- a/target/ppc/translate.c
+++ b/target/ppc/translate.c
@@ -1985,7 +1985,7 @@ static inline void gen_op_arith_subf(DisasContext *ctx, 
TCGv ret, TCGv arg1,
  #if defined(TARGET_PPC64) && !defined(CONFIG_USER_ONLY)
  static void gen_pause(DisasContext *ctx)
  {
-    TCGv_i32 t0 = tcg_constant_i32(0);
+    TCGv_i32 t0 = tcg_constant_i32(1);
      tcg_gen_st_i32(t0, tcg_env,
                     -offsetof(PowerPCCPU, env) + offsetof(CPUState, halted));

Reviewed-by: Richard Henderson <[email protected]>


r~

Reply via email to