Message ID | 20210315184615.1985590-9-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | target/ppc: Fix truncation of env->hflags | expand |
On 3/15/21 7:46 PM, Richard Henderson wrote: > It will be stored in tb->flags, which is also uint32_t, > so let's use the correct size. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > target/ppc/cpu.h | 4 ++-- > target/ppc/misc_helper.c | 2 +- > target/ppc/translate.c | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h > index 39f35b570c..2abaf56869 100644 > --- a/target/ppc/cpu.h > +++ b/target/ppc/cpu.h > @@ -1128,8 +1128,8 @@ struct CPUPPCState { > bool resume_as_sreset; > #endif > > - /* These resources are used only in QEMU core */ > - target_ulong hflags; > + /* These resources are used only in TCG */ > + uint32_t 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/misc_helper.c b/target/ppc/misc_helper.c > index 63e3147eb4..b04b4d7c6e 100644 > --- a/target/ppc/misc_helper.c > +++ b/target/ppc/misc_helper.c > @@ -199,7 +199,7 @@ void helper_store_hid0_601(CPUPPCState *env, target_ulong val) > if ((val ^ hid0) & 0x00000008) { > /* Change current endianness */ > hreg_compute_hflags(env); > - qemu_log("%s: set endianness to %c => " TARGET_FMT_lx "\n", __func__, > + qemu_log("%s: set endianness to %c => %08x\n", __func__, > val & 0x8 ? 'l' : 'b', env->hflags); > } > } > diff --git a/target/ppc/translate.c b/target/ppc/translate.c > index a9325a12e5..a85b890bb0 100644 > --- a/target/ppc/translate.c > +++ b/target/ppc/translate.c > @@ -7657,7 +7657,7 @@ void ppc_cpu_dump_state(CPUState *cs, FILE *f, int flags) > env->nip, env->lr, env->ctr, cpu_read_xer(env), > cs->cpu_index); > qemu_fprintf(f, "MSR " TARGET_FMT_lx " HID0 " TARGET_FMT_lx " HF " > - TARGET_FMT_lx " iidx %d didx %d\n", > + "%08x iidx %d didx %d\n", > env->msr, env->spr[SPR_HID0], > env->hflags, env->immu_idx, env->dmmu_idx); > #if !defined(NO_TIMER_DUMP) >
On Mon, Mar 15, 2021 at 12:46:06PM -0600, Richard Henderson wrote: > It will be stored in tb->flags, which is also uint32_t, > so let's use the correct size. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> > --- > target/ppc/cpu.h | 4 ++-- > target/ppc/misc_helper.c | 2 +- > target/ppc/translate.c | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h > index 39f35b570c..2abaf56869 100644 > --- a/target/ppc/cpu.h > +++ b/target/ppc/cpu.h > @@ -1128,8 +1128,8 @@ struct CPUPPCState { > bool resume_as_sreset; > #endif > > - /* These resources are used only in QEMU core */ > - target_ulong hflags; > + /* These resources are used only in TCG */ > + uint32_t 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/misc_helper.c b/target/ppc/misc_helper.c > index 63e3147eb4..b04b4d7c6e 100644 > --- a/target/ppc/misc_helper.c > +++ b/target/ppc/misc_helper.c > @@ -199,7 +199,7 @@ void helper_store_hid0_601(CPUPPCState *env, target_ulong val) > if ((val ^ hid0) & 0x00000008) { > /* Change current endianness */ > hreg_compute_hflags(env); > - qemu_log("%s: set endianness to %c => " TARGET_FMT_lx "\n", __func__, > + qemu_log("%s: set endianness to %c => %08x\n", __func__, > val & 0x8 ? 'l' : 'b', env->hflags); > } > } > diff --git a/target/ppc/translate.c b/target/ppc/translate.c > index a9325a12e5..a85b890bb0 100644 > --- a/target/ppc/translate.c > +++ b/target/ppc/translate.c > @@ -7657,7 +7657,7 @@ void ppc_cpu_dump_state(CPUState *cs, FILE *f, int flags) > env->nip, env->lr, env->ctr, cpu_read_xer(env), > cs->cpu_index); > qemu_fprintf(f, "MSR " TARGET_FMT_lx " HID0 " TARGET_FMT_lx " HF " > - TARGET_FMT_lx " iidx %d didx %d\n", > + "%08x iidx %d didx %d\n", > env->msr, env->spr[SPR_HID0], > env->hflags, env->immu_idx, env->dmmu_idx); > #if !defined(NO_TIMER_DUMP) -- 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
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 39f35b570c..2abaf56869 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -1128,8 +1128,8 @@ struct CPUPPCState { bool resume_as_sreset; #endif - /* These resources are used only in QEMU core */ - target_ulong hflags; + /* These resources are used only in TCG */ + uint32_t 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/misc_helper.c b/target/ppc/misc_helper.c index 63e3147eb4..b04b4d7c6e 100644 --- a/target/ppc/misc_helper.c +++ b/target/ppc/misc_helper.c @@ -199,7 +199,7 @@ void helper_store_hid0_601(CPUPPCState *env, target_ulong val) if ((val ^ hid0) & 0x00000008) { /* Change current endianness */ hreg_compute_hflags(env); - qemu_log("%s: set endianness to %c => " TARGET_FMT_lx "\n", __func__, + qemu_log("%s: set endianness to %c => %08x\n", __func__, val & 0x8 ? 'l' : 'b', env->hflags); } } diff --git a/target/ppc/translate.c b/target/ppc/translate.c index a9325a12e5..a85b890bb0 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -7657,7 +7657,7 @@ void ppc_cpu_dump_state(CPUState *cs, FILE *f, int flags) env->nip, env->lr, env->ctr, cpu_read_xer(env), cs->cpu_index); qemu_fprintf(f, "MSR " TARGET_FMT_lx " HID0 " TARGET_FMT_lx " HF " - TARGET_FMT_lx " iidx %d didx %d\n", + "%08x iidx %d didx %d\n", env->msr, env->spr[SPR_HID0], env->hflags, env->immu_idx, env->dmmu_idx); #if !defined(NO_TIMER_DUMP)
It will be stored in tb->flags, which is also uint32_t, so let's use the correct size. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/ppc/cpu.h | 4 ++-- target/ppc/misc_helper.c | 2 +- target/ppc/translate.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) -- 2.25.1