Hello,
I gave this series a try on some PPC machines : mac99, g3beige,
sam460ex, pseries, powernv, with linux, macos, darwin, aix and
didn't see any regression. Migration seems to work for pseries.
C.
On 3/15/21 7:45 PM, Richard Henderson wrote:
> Changes for v4:
> * Use hregs_recompute_hflags for hw/ppc/ reset.
> -- Incorporate Cedric's feedback.
>
> Changes for v3:
> * Fixes for linux-user, signal handling and startup.
> -- Oops, the directory in which I did testing for v2
> had a reduced set of targets.
>
> Changes for v2:
> * Do not put tcg internal state into migration, except to
> retain backward compatibility.
> * Do not touch anything in env in ppc_tr_init_disas_context.
> * Do make sure that hflags contains everything that it should.
> * Do verify that hflags is properly updated.
>
>
> r~
>
>
> Richard Henderson (17):
> target/ppc: Move helper_regs.h functions out-of-line
> target/ppc: Move 601 hflags adjustment to hreg_compute_hflags
> target/ppc: Properly sync cpu state with new msr in cpu_load_old
> target/ppc: Do not call hreg_compute_mem_idx after ppc_store_msr
> target/ppc: Retain hflags_nmsr only for migration
> target/ppc: Fix comment for MSR_FE{0,1}
> target/ppc: Disconnect hflags from MSR
> target/ppc: Reduce env->hflags to uint32_t
> target/ppc: Put dbcr0 single-step bits into hflags
> target/ppc: Create helper_scv
> target/ppc: Put LPCR[GTSE] in hflags
> target/ppc: Remove MSR_SA and MSR_AP from hflags
> target/ppc: Remove env->immu_idx and env->dmmu_idx
> hw/ppc/pnv_core: Update hflags after setting msr
> hw/ppc/spapr_rtas: Update hflags after setting msr
> linux-user/ppc: Fix msr updates for signal handling
> target/ppc: Validate hflags with CONFIG_DEBUG_TCG
>
> target/ppc/cpu.h | 50 +++++-
> target/ppc/helper.h | 1 +
> target/ppc/helper_regs.h | 183 +--------------------
> hw/ppc/pnv_core.c | 3 +-
> hw/ppc/spapr_rtas.c | 2 +
> linux-user/ppc/cpu_loop.c | 5 +-
> linux-user/ppc/signal.c | 23 ++-
> target/ppc/excp_helper.c | 9 ++
> target/ppc/helper_regs.c | 272 ++++++++++++++++++++++++++++++++
> target/ppc/int_helper.c | 1 +
> target/ppc/machine.c | 27 ++--
> target/ppc/mem_helper.c | 2 +-
> target/ppc/misc_helper.c | 13 +-
> target/ppc/mmu-hash64.c | 3 +
> target/ppc/translate.c | 98 ++++--------
> target/ppc/translate_init.c.inc | 4 +-
> target/ppc/meson.build | 1 +
> 17 files changed, 410 insertions(+), 287 deletions(-)
> create mode 100644 target/ppc/helper_regs.c
>