Hi,

I'm seeing a regression in Arm's vfp handling, giving an undefined
instruction when reading mvfr1 in PL2/armv7 although the FPU is enabled.
The following makes it work again for me, however this just looks like a
band-aid. Thanks for taking a look.

Adam

diff --git a/target/arm/translate-vfp.c.inc b/target/arm/translate-vfp.c.inc
index 10766f210c..37c079fab1 100644
--- a/target/arm/translate-vfp.c.inc
+++ b/target/arm/translate-vfp.c.inc
@@ -120,7 +120,7 @@ static void gen_preserve_fp_state(DisasContext *s)
  */
 static bool full_vfp_access_check(DisasContext *s, bool ignore_vfp_enabled)
 {
-    if (s->fp_excp_el) {
+    if (s->fp_excp_el && !ignore_vfp_enabled) {
         /* M-profile handled this earlier, in disas_m_nocp() */
         assert (!arm_dc_feature(s, ARM_FEATURE_M));
         gen_exception_insn(s, s->pc_curr, EXCP_UDEF,



Reply via email to