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é <philmd@linaro.org>
> ---
> 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 <richard.henderson@linaro.org>
r~