Cédric Le Goater's on July 17, 2019 11:33 pm: > On 17/07/2019 07:39, Nicholas Piggin wrote: >> H_PROD is added, and H_CEDE is modified to test the prod bit >> according to PAPR. >> >> Signed-off-by: Nicholas Piggin <npig...@gmail.com> >> --- >> hw/ppc/spapr_hcall.c | 29 +++++++++++++++++++++++++++++ >> 1 file changed, 29 insertions(+) >> >> diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c >> index e615881ac4..8b208ab259 100644 >> --- a/hw/ppc/spapr_hcall.c >> +++ b/hw/ppc/spapr_hcall.c >> @@ -1050,14 +1050,41 @@ static target_ulong h_cede(PowerPCCPU *cpu, >> SpaprMachineState *spapr, >> { >> CPUPPCState *env = &cpu->env; >> CPUState *cs = CPU(cpu); >> + SpaprCpuState *spapr_cpu = spapr_cpu_state(cpu); >> >> env->msr |= (1ULL << MSR_EE); >> hreg_compute_hflags(env); >> + >> + if (spapr_cpu->prod) { >> + spapr_cpu->prod = false; >> + return H_SUCCESS; >> + } >> + >> if (!cpu_has_work(cs)) { >> cs->halted = 1; >> cs->exception_index = EXCP_HLT; > > Shouldn't that be EXCP_HALTED instead ?
Possibly, I'm not sure. I don't know if it even makes a difference in ppc code? Thanks, Nick