[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 05/19] target/arm: Add isar_feature_aa32_simd_r16
From: |
Peter Maydell |
Subject: |
Re: [PATCH 05/19] target/arm: Add isar_feature_aa32_simd_r16 |
Date: |
Fri, 21 Feb 2020 16:01:53 +0000 |
On Fri, 14 Feb 2020 at 18:15, Richard Henderson
<address@hidden> wrote:
>
> Use this in the places that were checking ARM_FEATURE_VFP, and
> are obviously testing for the existance of the register set
> as opposed to testing for some particular instruction extension.
>
> Signed-off-by: Richard Henderson <address@hidden>
Some of these are OK, but some of them are wrong because they
are in shared aarch64/aarch32 codepaths, and an aarch64-only
CPU will return false to the _aa32_ isar_feature test.
In particular, 'make check' on an aarch64 KVM system will
currently error with "AArch64 CPUs must have both VFP and Neon or
neither" because we falsely decide it doesn't have VFP.
(We also somewhat dubiously enforce an ID-register consistency
check on a KVM CPU, but it wouldn't fail the check if we
were testing the right ID registers.)
> @@ -1260,7 +1260,7 @@ void arm_cpu_post_init(Object *obj)
> * KVM does not currently allow us to lie to the guest about its
> * ID/feature registers, so the guest always sees what the host has.
> */
> - if (arm_feature(&cpu->env, ARM_FEATURE_VFP)) {
> + if (cpu_isar_feature(aa32_simd_r16, cpu)) {
> cpu->has_vfp = true;
> if (!kvm_enabled()) {
> qdev_property_add_static(DEVICE(obj), &arm_cpu_has_vfp_property);
This needs to be an 'any' test.
> diff --git a/target/arm/machine.c b/target/arm/machine.c
> index 241890ac8c..7050bde459 100644
> --- a/target/arm/machine.c
> +++ b/target/arm/machine.c
> @@ -9,9 +9,8 @@
> static bool vfp_needed(void *opaque)
> {
> ARMCPU *cpu = opaque;
> - CPUARMState *env = &cpu->env;
>
> - return arm_feature(env, ARM_FEATURE_VFP);
> + return cpu_isar_feature(aa32_simd_r16, cpu);
> }
So does this.
thanks
-- PMM
- [PATCH 02/19] target/arm: Rename isar_feature_aa32_simd_r32, (continued)
- [PATCH 02/19] target/arm: Rename isar_feature_aa32_simd_r32, Richard Henderson, 2020/02/14
- [PATCH 06/19] target/arm: Rename isar_feature_aa32_fpdp_v2, Richard Henderson, 2020/02/14
- [PATCH 04/19] target/arm: Set MVFR0.FPSP for ARMv5 cpus, Richard Henderson, 2020/02/14
- [PATCH 07/19] target/arm: Add isar_feature_aa32_{fpsp_v2, fpsp_v3, fpdp_v3}, Richard Henderson, 2020/02/14
- [PATCH 05/19] target/arm: Add isar_feature_aa32_simd_r16, Richard Henderson, 2020/02/14
- Re: [PATCH 05/19] target/arm: Add isar_feature_aa32_simd_r16,
Peter Maydell <=
- [PATCH 09/19] target/arm: Replace ARM_FEATURE_VFP3 checks with fp{sp, dp}_v3, Richard Henderson, 2020/02/14
- [PATCH 12/19] target/arm: Remove ARM_FEATURE_VFP check from disas_vfp_insn, Richard Henderson, 2020/02/14
- [PATCH 08/19] target/arm: Perform fpdp_v2 check first, Richard Henderson, 2020/02/14
- [PATCH 10/19] target/arm: Add missing checks for fpsp_v2, Richard Henderson, 2020/02/14
- [PATCH 11/19] target/arm: Replace ARM_FEATURE_VFP4 with isar_feature_aa32_simdfmac, Richard Henderson, 2020/02/14