On Wed, 18 Aug 2021 at 20:33, Richard Henderson <richard.hender...@linaro.org> wrote: > > We ought to have been recording the virtual address for reporting > to the guest trap handler. > > Cc: qemu-...@nongnu.org > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > target/ppc/excp_helper.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c > index 0df358f93f..d7743704ac 100644 > --- a/target/ppc/excp_helper.c > +++ b/target/ppc/excp_helper.c > @@ -1504,6 +1504,20 @@ void ppc_cpu_do_unaligned_access(CPUState *cs, vaddr > vaddr, > { > CPUPPCState *env = cs->env_ptr; > > + switch (env->mmu_model) { > + case POWERPC_MMU_SOFT_4xx: > + case POWERPC_MMU_SOFT_4xx_Z: > + env->spr[SPR_40x_DEAR] = vaddr; > + break; > + case POWERPC_MMU_BOOKE: > + case POWERPC_MMU_BOOKE206: > + env->spr[SPR_BOOKE_DEAR] = vaddr; > + break; > + default: > + env->spr[SPR_DAR] = vaddr; > + break; > + } > + > cs->exception_index = POWERPC_EXCP_ALIGN; > env->error_code = 0; > cpu_loop_exit_restore(cs, retaddr); > --
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM