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~
