[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 01/10] target/ppc: Extract post_load_update_msr
From: |
David Gibson |
Subject: |
Re: [PATCH v5 01/10] target/ppc: Extract post_load_update_msr |
Date: |
Wed, 24 Mar 2021 11:00:09 +1100 |
On Tue, Mar 23, 2021 at 12:43:31PM -0600, Richard Henderson wrote:
> Extract post_load_update_msr to share between cpu_load_old
> and cpu_post_load in updating the msr.
>
> Suggested-by: Cédric Le Goater <clg@kaod.org>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Applied to ppc-for-6.0.
> ---
> target/ppc/machine.c | 30 ++++++++++++++----------------
> 1 file changed, 14 insertions(+), 16 deletions(-)
>
> diff --git a/target/ppc/machine.c b/target/ppc/machine.c
> index 1f7a353c78..09c5765a87 100644
> --- a/target/ppc/machine.c
> +++ b/target/ppc/machine.c
> @@ -10,6 +10,18 @@
> #include "kvm_ppc.h"
> #include "exec/helper-proto.h"
>
> +static void post_load_update_msr(CPUPPCState *env)
> +{
> + target_ulong msr = env->msr;
> +
> + /*
> + * Invalidate all supported msr bits except MSR_TGPR/MSR_HVB
> + * before restoring. Note that this recomputes hflags and mem_idx.
> + */
> + env->msr ^= env->msr_mask & ~((1ULL << MSR_TGPR) | MSR_HVB);
> + ppc_store_msr(env, msr);
> +}
> +
> static int cpu_load_old(QEMUFile *f, void *opaque, int version_id)
> {
> PowerPCCPU *cpu = opaque;
> @@ -21,7 +33,6 @@ static int cpu_load_old(QEMUFile *f, void *opaque, int
> version_id)
> int32_t slb_nr;
> #endif
> target_ulong xer;
> - target_ulong msr;
>
> for (i = 0; i < 32; i++) {
> qemu_get_betls(f, &env->gpr[i]);
> @@ -117,13 +128,7 @@ static int cpu_load_old(QEMUFile *f, void *opaque, int
> version_id)
> qemu_get_sbe32(f); /* Discard unused mmu_idx */
> qemu_get_sbe32(f); /* Discard unused power_mode */
>
> - /*
> - * Invalidate all supported msr bits except MSR_TGPR/MSR_HVB
> - * before restoring. Note that this recomputes hflags and mem_idx.
> - */
> - msr = env->msr;
> - env->msr ^= env->msr_mask & ~((1ULL << MSR_TGPR) | MSR_HVB);
> - ppc_store_msr(env, msr);
> + post_load_update_msr(env);
>
> return 0;
> }
> @@ -343,7 +348,6 @@ static int cpu_post_load(void *opaque, int version_id)
> PowerPCCPU *cpu = opaque;
> CPUPPCState *env = &cpu->env;
> int i;
> - target_ulong msr;
>
> /*
> * If we're operating in compat mode, we should be ok as long as
> @@ -417,13 +421,7 @@ static int cpu_post_load(void *opaque, int version_id)
> ppc_store_sdr1(env, env->spr[SPR_SDR1]);
> }
>
> - /*
> - * Invalidate all supported msr bits except MSR_TGPR/MSR_HVB
> - * before restoring. Note that this recomputes hflags and mem_idx.
> - */
> - msr = env->msr;
> - env->msr ^= env->msr_mask & ~((1ULL << MSR_TGPR) | MSR_HVB);
> - ppc_store_msr(env, msr);
> + post_load_update_msr(env);
>
> return 0;
> }
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- Re: [PATCH v5 02/10] target/ppc: Disconnect hflags from MSR, (continued)
- Re: [PATCH v5 02/10] target/ppc: Disconnect hflags from MSR, David Gibson, 2021/03/30
- Re: [PATCH v5 02/10] target/ppc: Disconnect hflags from MSR, Richard Henderson, 2021/03/30
- Re: [PATCH v5 02/10] target/ppc: Disconnect hflags from MSR, David Gibson, 2021/03/30
- Re: [PATCH v5 02/10] target/ppc: Disconnect hflags from MSR, Greg Kurz, 2021/03/31
- Re: [PATCH v5 02/10] target/ppc: Disconnect hflags from MSR, David Gibson, 2021/03/31
- Re: [PATCH v5 02/10] target/ppc: Disconnect hflags from MSR, Richard Henderson, 2021/03/31
- Re: [PATCH v5 02/10] target/ppc: Disconnect hflags from MSR, Greg Kurz, 2021/03/31
[PATCH v5 03/10] target/ppc: Reduce env->hflags to uint32_t, Richard Henderson, 2021/03/23
[PATCH v5 01/10] target/ppc: Extract post_load_update_msr, Richard Henderson, 2021/03/23
- Re: [PATCH v5 01/10] target/ppc: Extract post_load_update_msr,
David Gibson <=
[PATCH v5 04/10] target/ppc: Put dbcr0 single-step bits into hflags, Richard Henderson, 2021/03/23
[PATCH v5 06/10] target/ppc: Put LPCR[GTSE] in hflags, Richard Henderson, 2021/03/23
[PATCH v5 09/10] linux-user/ppc: Fix msr updates for signal handling, Richard Henderson, 2021/03/23
[PATCH v5 07/10] target/ppc: Remove MSR_SA and MSR_AP from hflags, Richard Henderson, 2021/03/23
[PATCH v5 10/10] target/ppc: Validate hflags with CONFIG_DEBUG_TCG, Richard Henderson, 2021/03/23