From 3631a3c82fe991ff19b1e3a41b0a6395c2ac4b60 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 30 Sep 2004 13:18:53 +0000 Subject: [PATCH] (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. --- gas/ChangeLog | 6 ++++++ gas/config/tc-arm.c | 22 ++++++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index d0cb4032715..f448c3474c0 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2004-09-30 Vladimir Ivanov + + * 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 * doc/c-i386.texi (i386-Mnemonics): Fix typo. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index b0dbff7c956..940abcd53c1 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 DSPSC,MVDX[15:0]. */ -- 2.30.2