aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2004-09-30 13:18:53 +0000
committerNick Clifton <nickc@redhat.com>2004-09-30 13:18:53 +0000
commit3631a3c82fe991ff19b1e3a41b0a6395c2ac4b60 (patch)
treebc49ab3fe4304c0208cc9a2daf14b004235a84c1 /gas/config
parent4e455bf5eaa3e6097272b8d53fbb3dd225056269 (diff)
downloadbinutils-3631a3c82fe991ff19b1e3a41b0a6395c2ac4b60.zip
binutils-3631a3c82fe991ff19b1e3a41b0a6395c2ac4b60.tar.gz
binutils-3631a3c82fe991ff19b1e3a41b0a6395c2ac4b60.tar.bz2
(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.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-arm.c22
1 files changed, 20 insertions, 2 deletions
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]. */