target/ppc: booke: Machine Check cleanups

There's no MSR_HV in BookE.

Also remove 40x code.

Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Message-Id: <20220128224018.1228062-5-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
Fabiano Rosas 2022-02-09 09:08:55 +01:00 committed by Cédric Le Goater
parent 9c9b67fe91
commit db403211f8

View File

@ -819,34 +819,17 @@ static void powerpc_excp_booke(PowerPCCPU *cpu, int excp)
cs->halted = 1; cs->halted = 1;
cpu_interrupt_exittb(cs); cpu_interrupt_exittb(cs);
} }
if (env->msr_mask & MSR_HVB) {
/*
* ISA specifies HV, but can be delivered to guest with HV
* clear (e.g., see FWNMI in PAPR).
*/
new_msr |= (target_ulong)MSR_HVB;
}
/* machine check exceptions don't have ME set */ /* machine check exceptions don't have ME set */
new_msr &= ~((target_ulong)1 << MSR_ME); new_msr &= ~((target_ulong)1 << MSR_ME);
/* XXX: should also have something loaded in DAR / DSISR */ /* FIXME: choose one or the other based on CPU type */
switch (excp_model) { srr0 = SPR_BOOKE_MCSRR0;
case POWERPC_EXCP_40x: srr1 = SPR_BOOKE_MCSRR1;
srr0 = SPR_40x_SRR2;
srr1 = SPR_40x_SRR3; env->spr[SPR_BOOKE_CSRR0] = env->nip;
break; env->spr[SPR_BOOKE_CSRR1] = msr;
case POWERPC_EXCP_BOOKE:
/* FIXME: choose one or the other based on CPU type */
srr0 = SPR_BOOKE_MCSRR0;
srr1 = SPR_BOOKE_MCSRR1;
env->spr[SPR_BOOKE_CSRR0] = env->nip;
env->spr[SPR_BOOKE_CSRR1] = msr;
break;
default:
break;
}
break; break;
case POWERPC_EXCP_DSI: /* Data storage exception */ case POWERPC_EXCP_DSI: /* Data storage exception */
trace_ppc_excp_dsi(env->spr[SPR_DSISR], env->spr[SPR_DAR]); trace_ppc_excp_dsi(env->spr[SPR_DSISR], env->spr[SPR_DAR]);