diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2019-02-28 10:55:16 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2019-02-28 11:03:04 +0000 |
| commit | c0c760afe800b60b48c80ddf3509fec413594778 (patch) | |
| tree | 24803174754f6d04204e3e61921e76c1ec73c6f6 /target/arm/cpu.h | |
| parent | 602f6e42cfbfe9278be34e9b91d2ceb695837e02 (diff) | |
| download | focaccia-qemu-c0c760afe800b60b48c80ddf3509fec413594778.tar.gz focaccia-qemu-c0c760afe800b60b48c80ddf3509fec413594778.zip | |
target/arm: Gate "miscellaneous FP" insns by ID register field
There is a set of VFP instructions which we implement in disas_vfp_v8_insn() and gate on the ARM_FEATURE_V8 bit. These were all first introduced in v8 for A-profile, but in M-profile they appeared in v7M. Gate them on the MVFR2 FPMisc field instead, and rename the function appropriately. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20190222170936.13268-3-peter.maydell@linaro.org
Diffstat (limited to 'target/arm/cpu.h')
| -rw-r--r-- | target/arm/cpu.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 36ea3b5856..ff9ba387b4 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -3328,6 +3328,26 @@ static inline bool isar_feature_aa32_fp16_dpconv(const ARMISARegisters *id) return FIELD_EX64(id->mvfr1, MVFR1, FPHP) > 1; } +static inline bool isar_feature_aa32_vsel(const ARMISARegisters *id) +{ + return FIELD_EX64(id->mvfr2, MVFR2, FPMISC) >= 1; +} + +static inline bool isar_feature_aa32_vcvt_dr(const ARMISARegisters *id) +{ + return FIELD_EX64(id->mvfr2, MVFR2, FPMISC) >= 2; +} + +static inline bool isar_feature_aa32_vrint(const ARMISARegisters *id) +{ + return FIELD_EX64(id->mvfr2, MVFR2, FPMISC) >= 3; +} + +static inline bool isar_feature_aa32_vminmaxnm(const ARMISARegisters *id) +{ + return FIELD_EX64(id->mvfr2, MVFR2, FPMISC) >= 4; +} + /* * 64-bit feature tests via id registers. */ |