]> gcc.gnu.org Git - gcc.git/commitdiff
rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
authorRichard Sandiford <rdsandiford@googlemail.com>
Mon, 18 Aug 2008 18:21:01 +0000 (18:21 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 18 Aug 2008 18:21:01 +0000 (18:21 +0000)
gcc/
* rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.

From-SVN: r139207

gcc/ChangeLog
gcc/rtlanal.c

index 36e15f2e2178847e56074a5600da2e8c6529a584..c3ddeabbedc20d8b14eba4c09cc5ce7cc50928d5 100644 (file)
@@ -1,3 +1,7 @@
+2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
+
 2008-08-18  Tomas Bily  <tbily@suse.cz>
 
        * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
index fb4a5df7dc859cb08f036d82e43ad883448f1621..6337156eacbfc2b2a29734f3da0efe2b9ebe6423 100644 (file)
@@ -3241,7 +3241,8 @@ subreg_offset_representable_p (unsigned int xregno, enum machine_mode xmode,
 {
   struct subreg_info info;
   subreg_get_info (xregno, xmode, offset, ymode, &info);
-  return info.representable_p;
+  return (info.representable_p
+         && HARD_REGNO_MODE_OK (xregno + info.offset, ymode));
 }
 
 /* Return the final regno that a subreg expression refers to.  */
This page took 0.095618 seconds and 5 git commands to generate.