Re: [Qemu-devel] [PATCH v3 09/39] target/arm: Use env_cpu, env_archcpu
On Tue, May 7, 2019 at 5:16 PM Richard Henderson wrote: > > Combined uses of CPU(arm_env_get_cpu()) were failures to use > the more proper, ENV_GET_CPU macro, now replaced by env_cpu. > > Reviewed-by: Peter Maydell > Signed-off-by: Richard Henderson Reviewed-by: Alistair Francis Alistair > --- > target/arm/cpu.h | 5 -- > linux-user/aarch64/cpu_loop.c | 6 +- > linux-user/aarch64/signal.c | 4 +- > linux-user/arm/cpu_loop.c | 2 +- > linux-user/syscall.c | 8 +-- > target/arm/arm-semi.c | 4 +- > target/arm/cpu64.c| 2 +- > target/arm/helper-a64.c | 4 +- > target/arm/helper.c | 120 +- > target/arm/op_helper.c| 21 +++--- > target/arm/translate-a64.c| 2 +- > target/arm/translate.c| 2 +- > target/arm/vfp_helper.c | 2 +- > 13 files changed, 88 insertions(+), 94 deletions(-) > > diff --git a/target/arm/cpu.h b/target/arm/cpu.h > index a633a233cc..c54c67fde4 100644 > --- a/target/arm/cpu.h > +++ b/target/arm/cpu.h > @@ -911,11 +911,6 @@ struct ARMCPU { > uint32_t sve_max_vq; > }; > > -static inline ARMCPU *arm_env_get_cpu(CPUARMState *env) > -{ > -return container_of(env, ARMCPU, env); > -} > - > void arm_cpu_post_init(Object *obj); > > uint64_t arm_cpu_mp_affinity(int idx, uint8_t clustersz); > diff --git a/linux-user/aarch64/cpu_loop.c b/linux-user/aarch64/cpu_loop.c > index d75fd9d3e2..97f355ee23 100644 > --- a/linux-user/aarch64/cpu_loop.c > +++ b/linux-user/aarch64/cpu_loop.c > @@ -72,7 +72,7 @@ > /* AArch64 main loop */ > void cpu_loop(CPUARMState *env) > { > -CPUState *cs = CPU(arm_env_get_cpu(env)); > +CPUState *cs = env_cpu(env); > int trapnr; > abi_long ret; > target_siginfo_t info; > @@ -167,8 +167,8 @@ void arm_init_pauth_key(ARMPACKey *key) > > void target_cpu_copy_regs(CPUArchState *env, struct target_pt_regs *regs) > { > -ARMCPU *cpu = arm_env_get_cpu(env); > -CPUState *cs = CPU(cpu); > +ARMCPU *cpu = env_archcpu(env); > +CPUState *cs = env_cpu(env); > TaskState *ts = cs->opaque; > struct image_info *info = ts->info; > int i; > diff --git a/linux-user/aarch64/signal.c b/linux-user/aarch64/signal.c > index f84a9cf28a..cd521ee42d 100644 > --- a/linux-user/aarch64/signal.c > +++ b/linux-user/aarch64/signal.c > @@ -314,7 +314,7 @@ static int target_restore_sigframe(CPUARMState *env, > break; > > case TARGET_SVE_MAGIC: > -if (cpu_isar_feature(aa64_sve, arm_env_get_cpu(env))) { > +if (cpu_isar_feature(aa64_sve, env_archcpu(env))) { > vq = (env->vfp.zcr_el[1] & 0xf) + 1; > sve_size = QEMU_ALIGN_UP(TARGET_SVE_SIG_CONTEXT_SIZE(vq), > 16); > if (!sve && size == sve_size) { > @@ -433,7 +433,7 @@ static void target_setup_frame(int usig, struct > target_sigaction *ka, >); > > /* SVE state needs saving only if it exists. */ > -if (cpu_isar_feature(aa64_sve, arm_env_get_cpu(env))) { > +if (cpu_isar_feature(aa64_sve, env_archcpu(env))) { > vq = (env->vfp.zcr_el[1] & 0xf) + 1; > sve_size = QEMU_ALIGN_UP(TARGET_SVE_SIG_CONTEXT_SIZE(vq), 16); > sve_ofs = alloc_sigframe_space(sve_size, ); > diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c > index b7e7a6323c..ece4cf335e 100644 > --- a/linux-user/arm/cpu_loop.c > +++ b/linux-user/arm/cpu_loop.c > @@ -206,7 +206,7 @@ do_kernel_trap(CPUARMState *env) > > void cpu_loop(CPUARMState *env) > { > -CPUState *cs = CPU(arm_env_get_cpu(env)); > +CPUState *cs = env_cpu(env); > int trapnr; > unsigned int n, insn; > target_siginfo_t info; > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 9f110a7581..eb7fd9a1bf 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -9683,10 +9683,10 @@ static abi_long do_syscall1(void *cpu_env, int num, > abi_long arg1, > * even though the current architectural maximum is VQ=16. > */ > ret = -TARGET_EINVAL; > -if (cpu_isar_feature(aa64_sve, arm_env_get_cpu(cpu_env)) > +if (cpu_isar_feature(aa64_sve, env_archcpu(cpu_env)) > && arg2 >= 0 && arg2 <= 512 * 16 && !(arg2 & 15)) { > CPUARMState *env = cpu_env; > -ARMCPU *cpu = arm_env_get_cpu(env); > +ARMCPU *cpu = env_archcpu(env); > uint32_t vq, old_vq; > > old_vq = (env->vfp.zcr_el[1] & 0xf) + 1; > @@ -9703,7 +9703,7 @@ static abi_long do_syscall1(void *cpu_env, int num, > abi_long arg1, > case TARGET_PR_SVE_GET_VL: > ret = -TARGET_EINVAL; > { > -ARMCPU *cpu = arm_env_get_cpu(cpu_env); > +ARMCPU *cpu = env_archcpu(cpu_env); > if (cpu_isar_feature(aa64_sve, cpu)) { >
[Qemu-devel] [PATCH v3 09/39] target/arm: Use env_cpu, env_archcpu
Combined uses of CPU(arm_env_get_cpu()) were failures to use the more proper, ENV_GET_CPU macro, now replaced by env_cpu. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/cpu.h | 5 -- linux-user/aarch64/cpu_loop.c | 6 +- linux-user/aarch64/signal.c | 4 +- linux-user/arm/cpu_loop.c | 2 +- linux-user/syscall.c | 8 +-- target/arm/arm-semi.c | 4 +- target/arm/cpu64.c| 2 +- target/arm/helper-a64.c | 4 +- target/arm/helper.c | 120 +- target/arm/op_helper.c| 21 +++--- target/arm/translate-a64.c| 2 +- target/arm/translate.c| 2 +- target/arm/vfp_helper.c | 2 +- 13 files changed, 88 insertions(+), 94 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index a633a233cc..c54c67fde4 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -911,11 +911,6 @@ struct ARMCPU { uint32_t sve_max_vq; }; -static inline ARMCPU *arm_env_get_cpu(CPUARMState *env) -{ -return container_of(env, ARMCPU, env); -} - void arm_cpu_post_init(Object *obj); uint64_t arm_cpu_mp_affinity(int idx, uint8_t clustersz); diff --git a/linux-user/aarch64/cpu_loop.c b/linux-user/aarch64/cpu_loop.c index d75fd9d3e2..97f355ee23 100644 --- a/linux-user/aarch64/cpu_loop.c +++ b/linux-user/aarch64/cpu_loop.c @@ -72,7 +72,7 @@ /* AArch64 main loop */ void cpu_loop(CPUARMState *env) { -CPUState *cs = CPU(arm_env_get_cpu(env)); +CPUState *cs = env_cpu(env); int trapnr; abi_long ret; target_siginfo_t info; @@ -167,8 +167,8 @@ void arm_init_pauth_key(ARMPACKey *key) void target_cpu_copy_regs(CPUArchState *env, struct target_pt_regs *regs) { -ARMCPU *cpu = arm_env_get_cpu(env); -CPUState *cs = CPU(cpu); +ARMCPU *cpu = env_archcpu(env); +CPUState *cs = env_cpu(env); TaskState *ts = cs->opaque; struct image_info *info = ts->info; int i; diff --git a/linux-user/aarch64/signal.c b/linux-user/aarch64/signal.c index f84a9cf28a..cd521ee42d 100644 --- a/linux-user/aarch64/signal.c +++ b/linux-user/aarch64/signal.c @@ -314,7 +314,7 @@ static int target_restore_sigframe(CPUARMState *env, break; case TARGET_SVE_MAGIC: -if (cpu_isar_feature(aa64_sve, arm_env_get_cpu(env))) { +if (cpu_isar_feature(aa64_sve, env_archcpu(env))) { vq = (env->vfp.zcr_el[1] & 0xf) + 1; sve_size = QEMU_ALIGN_UP(TARGET_SVE_SIG_CONTEXT_SIZE(vq), 16); if (!sve && size == sve_size) { @@ -433,7 +433,7 @@ static void target_setup_frame(int usig, struct target_sigaction *ka, ); /* SVE state needs saving only if it exists. */ -if (cpu_isar_feature(aa64_sve, arm_env_get_cpu(env))) { +if (cpu_isar_feature(aa64_sve, env_archcpu(env))) { vq = (env->vfp.zcr_el[1] & 0xf) + 1; sve_size = QEMU_ALIGN_UP(TARGET_SVE_SIG_CONTEXT_SIZE(vq), 16); sve_ofs = alloc_sigframe_space(sve_size, ); diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c index b7e7a6323c..ece4cf335e 100644 --- a/linux-user/arm/cpu_loop.c +++ b/linux-user/arm/cpu_loop.c @@ -206,7 +206,7 @@ do_kernel_trap(CPUARMState *env) void cpu_loop(CPUARMState *env) { -CPUState *cs = CPU(arm_env_get_cpu(env)); +CPUState *cs = env_cpu(env); int trapnr; unsigned int n, insn; target_siginfo_t info; diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 9f110a7581..eb7fd9a1bf 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -9683,10 +9683,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, * even though the current architectural maximum is VQ=16. */ ret = -TARGET_EINVAL; -if (cpu_isar_feature(aa64_sve, arm_env_get_cpu(cpu_env)) +if (cpu_isar_feature(aa64_sve, env_archcpu(cpu_env)) && arg2 >= 0 && arg2 <= 512 * 16 && !(arg2 & 15)) { CPUARMState *env = cpu_env; -ARMCPU *cpu = arm_env_get_cpu(env); +ARMCPU *cpu = env_archcpu(env); uint32_t vq, old_vq; old_vq = (env->vfp.zcr_el[1] & 0xf) + 1; @@ -9703,7 +9703,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, case TARGET_PR_SVE_GET_VL: ret = -TARGET_EINVAL; { -ARMCPU *cpu = arm_env_get_cpu(cpu_env); +ARMCPU *cpu = env_archcpu(cpu_env); if (cpu_isar_feature(aa64_sve, cpu)) { ret = ((cpu->env.vfp.zcr_el[1] & 0xf) + 1) * 16; } @@ -9712,7 +9712,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, case TARGET_PR_PAC_RESET_KEYS: { CPUARMState *env = cpu_env; -ARMCPU *cpu = arm_env_get_cpu(env); +