[arm, patch] generic coprocessor register names in MaverickCrunch instructions

Vladimir Ivanov vladitx@nucleusys.com
Sun Sep 26 09:52:00 GMT 2004


Hello,

This small patch adds GAS support for using generic coprocessor register 
names (c0..c15) in MaverickCrunch instructions.

Currently, it is something like:
 	cfaddd mvd2, mvd0, mvd1

Now it is also possible to use:
 	cfaddd c2, c0, c1

This is due to customers request and EP93xx User Manual.

   -- Vladimir


2004-09-26  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.
-------------- next part --------------
--- /tmp/tc-arm.c	2004-09-26 12:10:14.000000000 +0300
+++ gas/config/tc-arm.c	2004-09-26 12:19:52.000000000 +0300
@@ -10250,9 +10250,27 @@ mav_reg_required_here (str, shift, regty
 
       return reg;
     }
+  else
+    /* 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;
 
-  /* Restore the start point.  */
-  *str = start;
+	  return reg;
+	}
+      else
+	/* Restore the start point.  */
+	*str = start;
+    }
 
   /* In the few cases where we might be able to accept something else
      this error can be overridden.  */


More information about the Binutils mailing list