While reviewing the new A64FX CPU type it became clear that CPU types should be able to specify which SVE vector lengths are supported. This series adds a new bitmap member to ARMCPU and modifies arm_cpu_sve_finalize() to validate inputs against it. So far we only need to set the bitmap for the 'max' CPU type though and, since it supports all vector lengths, we just fill the whole thing.
This series was inspired by Richard Henderson's suggestion to replace arm_cpu_sve_finalize's kvm_supported bitmap with something that could be shared with TCG. So far I've only lightly tested this. I'll do more testing and report back later. I'd also be happy to get test results from others. Thanks, drew Andrew Jones (4): target/arm/cpu: Introduce sve_vq_supported bitmap target/arm/kvm64: Ensure sve vls map is completely clear target/arm/cpu64: Replace kvm_supported with sve_vq_supported target/arm/cpu64: Validate sve vector lengths are supported target/arm/cpu.h | 4 ++ target/arm/cpu64.c | 118 +++++++++++++++++++++------------------------ target/arm/kvm64.c | 2 +- 3 files changed, 61 insertions(+), 63 deletions(-) -- 2.31.1