diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2004-10-28 12:47:21 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2004-10-28 12:47:21 +0000 |
commit | fd326ba823f7a8cbb2f7c47a2a3d15a8e098a976 (patch) | |
tree | a9bda2464d7b200ebd679487ccda3fef16f416b1 /gcc/simplify-rtx.c | |
parent | 4af46a327e490e1a24a353bc55f0d64631ba85de (diff) | |
download | gcc-fd326ba823f7a8cbb2f7c47a2a3d15a8e098a976.zip gcc-fd326ba823f7a8cbb2f7c47a2a3d15a8e098a976.tar.gz gcc-fd326ba823f7a8cbb2f7c47a2a3d15a8e098a976.tar.bz2 |
re PR target/15286 (ICE cause by reload)
PR target/15286
* final.c (alter_subreg): Compute correct offset to use with
paradoxical SUBREGs of memory operands.
* recog.c (general_operand): Allow paradoxical SUBREGs of
memory operands after reload.
* simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
has failed when passed a hard register.
From-SVN: r89752
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r-- | gcc/simplify-rtx.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 4af468a..e463fef 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -3789,7 +3789,8 @@ simplify_gen_subreg (enum machine_mode outermode, rtx op, if (newx) return newx; - if (GET_CODE (op) == SUBREG || GET_MODE (op) == VOIDmode) + if (GET_CODE (op) == SUBREG || GET_MODE (op) == VOIDmode + || (REG_P (op) && REGNO (op) < FIRST_PSEUDO_REGISTER)) return NULL_RTX; return gen_rtx_SUBREG (outermode, op, byte); |