Hi, It is necessary to sync the constants WCGR0 to WCGR3 in iwmmxt.md with the IWMMXT_GR_REGNUM in arm.h.
ChangeLog * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment. * config/arm/iwmmxt.md (WCGR0, WCGR1): Update. * config/arm/iwmmxt.md (WCGR2, WCGR3): Likewise. Index: config/arm/arm.h =================================================================== --- config/arm/arm.h (revision 194603) +++ config/arm/arm.h (working copy) @@ -947,6 +947,8 @@ #define FIRST_IWMMXT_REGNUM (LAST_HI_VFP_REGNUM + 1) #define LAST_IWMMXT_REGNUM (FIRST_IWMMXT_REGNUM + 15) + +/* Need to sync with WCGR in iwmmxt.md. */ #define FIRST_IWMMXT_GR_REGNUM (LAST_IWMMXT_REGNUM + 1) #define LAST_IWMMXT_GR_REGNUM (FIRST_IWMMXT_GR_REGNUM + 3) Index: config/arm/iwmmxt.md =================================================================== --- config/arm/iwmmxt.md (revision 194603) +++ config/arm/iwmmxt.md (working copy) @@ -19,12 +19,12 @@ ;; along with GCC; see the file COPYING3. If not see ;; <http://www.gnu.org/licenses/>. -;; Register numbers +;; Register numbers. Need to sync with FIRST_IWMMXT_GR_REGNUM in arm.h (define_constants - [(WCGR0 43) - (WCGR1 44) - (WCGR2 45) - (WCGR3 46) + [(WCGR0 96) + (WCGR1 97) + (WCGR2 98) + (WCGR3 99) ] ) OK? Thanks, Xinyu