From fd326ba823f7a8cbb2f7c47a2a3d15a8e098a976 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Thu, 28 Oct 2004 12:47:21 +0000 Subject: 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 --- gcc/simplify-rtx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/simplify-rtx.c') 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); -- cgit v1.1