diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2008-08-18 18:21:01 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2008-08-18 18:21:01 +0000 |
commit | 808cc41726a4f1b3ab1b87521e086baf3de66432 (patch) | |
tree | c5651906fcad1a544db024c9999917678418e7e9 /gcc/rtlanal.c | |
parent | b7e2f896db4b8dcaef9289ac172830368e75a1ce (diff) | |
download | gcc-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/rtlanal.c')
-rw-r--r-- | gcc/rtlanal.c | 3 |
1 files changed, 2 insertions, 1 deletions
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. */ |