aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2008-08-18 18:21:01 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2008-08-18 18:21:01 +0000
commit808cc41726a4f1b3ab1b87521e086baf3de66432 (patch)
treec5651906fcad1a544db024c9999917678418e7e9 /gcc
parentb7e2f896db4b8dcaef9289ac172830368e75a1ce (diff)
downloadgcc-808cc41726a4f1b3ab1b87521e086baf3de66432.zip
gcc-808cc41726a4f1b3ab1b87521e086baf3de66432.tar.gz
gcc-808cc41726a4f1b3ab1b87521e086baf3de66432.tar.bz2
rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
gcc/ * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK. From-SVN: r139207
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/rtlanal.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 36e15f2..c3ddeab 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index fb4a5df..6337156 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -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. */