(mav_reg_required_here): Allow REG_TYPE_CN as alternative when REG_TYPE_MVF,
authorNick Clifton <nickc@redhat.com>
Thu, 30 Sep 2004 13:18:53 +0000 (13:18 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 30 Sep 2004 13:18:53 +0000 (13:18 +0000)
REG_TYPE_MVD, REG_TYPE_MVFX or REG_TYPE_MVDX is expected.

gas/ChangeLog
gas/config/tc-arm.c

index d0cb4032715abc680dbb9521f58f4044c2e6c28c..f448c3474c0a4d5e82f9b27a6a6ede083dd4d5d6 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-30  Vladimir Ivanov  <vladitx@nucleusys.com>
+
+       * gas/config/tc-arm.c (mav_reg_required_here): Allow REG_TYPE_CN
+       as alternative when REG_TYPE_MVF, REG_TYPE_MVD, REG_TYPE_MVFX or
+       REG_TYPE_MVDX is expected.
+
 2004-09-29  Marc Bevand  <m.bevand@gmail.com>
 
        * doc/c-i386.texi (i386-Mnemonics): Fix typo.
index b0dbff7c9562e0cbb0d2b6a4ae3790ff13edc59b..940abcd53c14d6b3514aca71f30fe5ff3a83e959 100644 (file)
@@ -10254,6 +10254,24 @@ mav_reg_required_here (str, shift, regtype)
   /* Restore the start point.  */
   *str = start;
 
+  /* Try generic coprocessor name if applicable.  */
+  if (regtype == REG_TYPE_MVF ||
+      regtype == REG_TYPE_MVD ||
+      regtype == REG_TYPE_MVFX ||
+      regtype == REG_TYPE_MVDX)
+    {
+      if ((reg = arm_reg_parse (str, all_reg_maps[REG_TYPE_CN].htab)) != FAIL)
+       {
+         if (shift >= 0)
+           inst.instruction |= reg << shift;
+
+         return reg;
+       }
+
+      /* Restore the start point.  */
+      *str = start;
+    }
+
   /* In the few cases where we might be able to accept something else
      this error can be overridden.  */
   inst.error = _(all_reg_maps[regtype].expected);
@@ -10494,7 +10512,7 @@ do_mav_quad_6a (str)
      char * str;
 {
   do_mav_quad (str, MAV_MODE6, REG_TYPE_MVAX, REG_TYPE_MVFX, REG_TYPE_MVFX,
-            REG_TYPE_MVFX);
+              REG_TYPE_MVFX);
 }
 
 static void
@@ -10502,7 +10520,7 @@ do_mav_quad_6b (str)
      char * str;
 {
   do_mav_quad (str, MAV_MODE6, REG_TYPE_MVAX, REG_TYPE_MVAX, REG_TYPE_MVFX,
-            REG_TYPE_MVFX);
+              REG_TYPE_MVFX);
 }
 
 /* cfmvsc32<cond> DSPSC,MVDX[15:0].  */