Message ID | 20210315184615.1985590-1-richard.henderson@linaro.org |
---|---|
Headers | show |
Series | target/ppc: Fix truncation of env->hflags | expand |
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 >