target/arm: Add isar_feature_aa32_{fpsp_v2, fpsp_v3, fpdp_v3}
We will shortly use these to test for VFPv2 and VFPv3 in different situations. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20200224222232.13807-4-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
c4ff873583
commit
f67957e17c
@ -3470,12 +3470,30 @@ static inline bool isar_feature_aa32_fpshvec(const ARMISARegisters *id)
|
||||
return FIELD_EX32(id->mvfr0, MVFR0, FPSHVEC) > 0;
|
||||
}
|
||||
|
||||
static inline bool isar_feature_aa32_fpsp_v2(const ARMISARegisters *id)
|
||||
{
|
||||
/* Return true if CPU supports single precision floating point, VFPv2 */
|
||||
return FIELD_EX32(id->mvfr0, MVFR0, FPSP) > 0;
|
||||
}
|
||||
|
||||
static inline bool isar_feature_aa32_fpsp_v3(const ARMISARegisters *id)
|
||||
{
|
||||
/* Return true if CPU supports single precision floating point, VFPv3 */
|
||||
return FIELD_EX32(id->mvfr0, MVFR0, FPSP) >= 2;
|
||||
}
|
||||
|
||||
static inline bool isar_feature_aa32_fpdp_v2(const ARMISARegisters *id)
|
||||
{
|
||||
/* Return true if CPU supports double precision floating point, VFPv2 */
|
||||
return FIELD_EX32(id->mvfr0, MVFR0, FPDP) > 0;
|
||||
}
|
||||
|
||||
static inline bool isar_feature_aa32_fpdp_v3(const ARMISARegisters *id)
|
||||
{
|
||||
/* Return true if CPU supports double precision floating point, VFPv3 */
|
||||
return FIELD_EX32(id->mvfr0, MVFR0, FPDP) >= 2;
|
||||
}
|
||||
|
||||
/*
|
||||
* We always set the FP and SIMD FP16 fields to indicate identical
|
||||
* levels of support (assuming SIMD is implemented at all), so
|
||||
|
Loading…
Reference in New Issue
Block a user