[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 05/15] target/ppc: Retain hflags_nmsr only for migration
From: |
Richard Henderson |
Subject: |
[PATCH v2 05/15] target/ppc: Retain hflags_nmsr only for migration |
Date: |
Fri, 12 Mar 2021 19:00:08 -0600 |
We have eliminated all normal uses of hflags_nmsr. We need
not even compute it except when we want to migrate. Rename
the field to emphasize this.
Remove the fixme comment for migrating access_type. This value
is only ever used with the current executing instruction, and
is never live when the cpu is halted for migration.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/ppc/cpu.h | 4 ++--
target/ppc/helper_regs.c | 2 --
target/ppc/machine.c | 9 ++++++---
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 061d2eed1b..79c4033a42 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -1105,8 +1105,8 @@ struct CPUPPCState {
#endif
/* These resources are used only in QEMU core */
- target_ulong hflags; /* hflags is MSR & HFLAGS_MASK */
- target_ulong hflags_nmsr; /* specific hflags, not coming from MSR */
+ target_ulong hflags;
+ target_ulong hflags_compat_nmsr; /* for migration compatibility */
int immu_idx; /* precomputed MMU index to speed up insn accesses */
int dmmu_idx; /* precomputed MMU index to speed up data accesses */
diff --git a/target/ppc/helper_regs.c b/target/ppc/helper_regs.c
index 95b9aca61f..a87e354ca2 100644
--- a/target/ppc/helper_regs.c
+++ b/target/ppc/helper_regs.c
@@ -104,8 +104,6 @@ void hreg_compute_hflags(CPUPPCState *env)
*/
uint32_t le = extract32(env->spr[SPR_HID0], 3, 1);
env->hflags |= le << MSR_LE;
- /* Retain for backward compatibility with migration. */
- env->hflags_nmsr = le << MSR_LE;
}
}
diff --git a/target/ppc/machine.c b/target/ppc/machine.c
index f6eeda9642..1f7a353c78 100644
--- a/target/ppc/machine.c
+++ b/target/ppc/machine.c
@@ -310,6 +310,10 @@ static int cpu_pre_save(void *opaque)
}
}
+ /* Retain migration compatibility for pre 6.0 for 601 machines. */
+ env->hflags_compat_nmsr = (env->flags & POWERPC_FLAG_HID0_LE
+ ? env->hflags & MSR_LE : 0);
+
return 0;
}
@@ -829,9 +833,8 @@ const VMStateDescription vmstate_ppc_cpu = {
/* Supervisor mode architected state */
VMSTATE_UINTTL(env.msr, PowerPCCPU),
- /* Internal state */
- VMSTATE_UINTTL(env.hflags_nmsr, PowerPCCPU),
- /* FIXME: access_type? */
+ /* Backward compatible internal state */
+ VMSTATE_UINTTL(env.hflags_compat_nmsr, PowerPCCPU),
/* Sanity checking */
VMSTATE_UINTTL_TEST(mig_msr_mask, PowerPCCPU, cpu_pre_2_8_migration),
--
2.25.1
- [PATCH v2 00/15] target/ppc: Fix truncation of env->hflags, Richard Henderson, 2021/03/12
- [PATCH v2 01/15] target/ppc: Move helper_regs.h functions out-of-line, Richard Henderson, 2021/03/12
- [PATCH v2 02/15] target/ppc: Move 601 hflags adjustment to hreg_compute_hflags, Richard Henderson, 2021/03/12
- [PATCH v2 03/15] target/ppc: Properly sync cpu state with new msr in cpu_load_old, Richard Henderson, 2021/03/12
- [PATCH v2 04/15] target/ppc: Do not call hreg_compute_mem_idx after ppc_store_msr, Richard Henderson, 2021/03/12
- [PATCH v2 05/15] target/ppc: Retain hflags_nmsr only for migration,
Richard Henderson <=
- [PATCH v2 06/15] target/ppc: Fix comment for MSR_FE{0,1}, Richard Henderson, 2021/03/12
- [PATCH v2 07/15] target/ppc: Disconnect hflags from MSR, Richard Henderson, 2021/03/12
- [PATCH v2 08/15] target/ppc: Reduce env->hflags to uint32_t, Richard Henderson, 2021/03/12
- [PATCH v2 09/15] target/ppc: Put dbcr0 single-step bits into hflags, Richard Henderson, 2021/03/12
- [PATCH v2 10/15] target/ppc: Create helper_scv, Richard Henderson, 2021/03/12
- [PATCH v2 12/15] target/ppc: Remove MSR_SA and MSR_AP from hflags, Richard Henderson, 2021/03/12
- [PATCH v2 14/15] hw/ppc: Use hreg_store_msr for msr updates, Richard Henderson, 2021/03/12
- [PATCH v2 11/15] target/ppc: Put LPCR[GTSE] in hflags, Richard Henderson, 2021/03/12
- [PATCH v2 13/15] target/ppc: Remove env->immu_idx and env->dmmu_idx, Richard Henderson, 2021/03/12
- [PATCH v2 15/15] target/ppc: Validate hflags with CONFIG_DEBUG_TCG, Richard Henderson, 2021/03/12