Message ID | 20220501055028.646596-11-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | target/arm: Cleanups, new features, new cpus | expand |
On Sun, 1 May 2022 at 07:00, Richard Henderson <richard.henderson@linaro.org> wrote: > > The new_key field is always non-zero -- drop the if. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > @@ -5933,19 +5935,16 @@ static void define_arm_vh_e2h_redirects_aliases(ARMCPU *cpu) > g_assert(src_reg->opaque == NULL); > > /* Create alias before redirection so we dup the right data. */ > - if (a->new_key) { > - ARMCPRegInfo *new_reg = g_memdup(src_reg, sizeof(ARMCPRegInfo)); > - uint32_t *new_key = g_memdup(&a->new_key, sizeof(uint32_t)); > - bool ok; > + new_reg = g_memdup(src_reg, sizeof(ARMCPRegInfo)); > + new_key = g_memdup(&a->new_key, sizeof(uint32_t)); > > - new_reg->name = a->new_name; > - new_reg->type |= ARM_CP_ALIAS; > - /* Remove PL1/PL0 access, leaving PL2/PL3 R/W in place. */ > - new_reg->access &= PL2_RW | PL3_RW; > + new_reg->name = a->new_name; > + new_reg->type |= ARM_CP_ALIAS; > + /* Remove PL1/PL0 access, leaving PL2/PL3 R/W in place. */ > + new_reg->access &= PL2_RW; This has lost the "| PL3_RW" somehow. > > - ok = g_hash_table_insert(cpu->cp_regs, new_key, new_reg); > - g_assert(ok); > - } > + ok = g_hash_table_insert(cpu->cp_regs, new_key, new_reg); > + g_assert(ok); Otherwise Reviewed-by: Peter Maydell <peter.maydell@linaro.org> thanks -- PMM
diff --git a/target/arm/helper.c b/target/arm/helper.c index 50ad2e3e37..e5fc22bb69 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -5914,7 +5914,9 @@ static void define_arm_vh_e2h_redirects_aliases(ARMCPU *cpu) for (i = 0; i < ARRAY_SIZE(aliases); i++) { const struct E2HAlias *a = &aliases[i]; - ARMCPRegInfo *src_reg, *dst_reg; + ARMCPRegInfo *src_reg, *dst_reg, *new_reg; + uint32_t *new_key; + bool ok; if (a->feature && !a->feature(&cpu->isar)) { continue; @@ -5933,19 +5935,16 @@ static void define_arm_vh_e2h_redirects_aliases(ARMCPU *cpu) g_assert(src_reg->opaque == NULL); /* Create alias before redirection so we dup the right data. */ - if (a->new_key) { - ARMCPRegInfo *new_reg = g_memdup(src_reg, sizeof(ARMCPRegInfo)); - uint32_t *new_key = g_memdup(&a->new_key, sizeof(uint32_t)); - bool ok; + new_reg = g_memdup(src_reg, sizeof(ARMCPRegInfo)); + new_key = g_memdup(&a->new_key, sizeof(uint32_t)); - new_reg->name = a->new_name; - new_reg->type |= ARM_CP_ALIAS; - /* Remove PL1/PL0 access, leaving PL2/PL3 R/W in place. */ - new_reg->access &= PL2_RW | PL3_RW; + new_reg->name = a->new_name; + new_reg->type |= ARM_CP_ALIAS; + /* Remove PL1/PL0 access, leaving PL2/PL3 R/W in place. */ + new_reg->access &= PL2_RW; - ok = g_hash_table_insert(cpu->cp_regs, new_key, new_reg); - g_assert(ok); - } + ok = g_hash_table_insert(cpu->cp_regs, new_key, new_reg); + g_assert(ok); src_reg->opaque = dst_reg; src_reg->orig_readfn = src_reg->readfn ?: raw_read;
The new_key field is always non-zero -- drop the if. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- v4: Drop change to crn et al. --- target/arm/helper.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-)