On 9/10/20 10:38 AM, Peter Maydell wrote: > +static inline bool isar_feature_aa32_mprofile(const ARMISARegisters *id) > +{ > + return FIELD_EX32(id->id_pfr1, ID_PFR1, MPROGMOD) != 0; > +} > + > static inline bool isar_feature_aa32_fp16_arith(const ARMISARegisters *id) > { > - return FIELD_EX32(id->mvfr1, MVFR1, FPHP) >= 3; > + /* Sadly this is encoded differently for A-profile and M-profile */ > + if (isar_feature_aa32_mprofile(id)) { > + return FIELD_EX32(id->mvfr1, MVFR1, FP16) > 0; > + } else { > + return FIELD_EX32(id->mvfr1, MVFR1, FPHP) >= 3; > + }
Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~