aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-arm.c22
2 files changed, 26 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d0cb403..f448c34 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index b0dbff7..940abcd 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -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]. */