From dc4bbaf76f904bc3004ef0d6123f6654b714230c Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Fri, 23 Jan 2004 01:47:15 +0000 Subject: [PATCH] re PR rtl-optimization/13821 (IRIX 6.5 bootstrap failure: ICE in simplify_gen_subreg) PR optimization/13821 * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to correctly calculate the lowpart offset of the contracted subreg. From-SVN: r76393 --- gcc/ChangeLog | 6 ++++++ gcc/simplify-rtx.c | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ccb1dd17718..d8006ca02ec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-01-22 Roger Sayle + + PR optimization/13821 + * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to + correctly calculate the lowpart offset of the contracted subreg. + 2004-01-22 Ian Lance Taylor * doc/invoke.texi (Optimize Options): Note that --param arguments diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 5ba6882e680..cebbf04b460 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -3404,8 +3404,9 @@ simplify_subreg (enum machine_mode outermode, rtx op, if (outermode == origmode) return XEXP (op, 0); if (GET_MODE_BITSIZE (outermode) <= GET_MODE_BITSIZE (origmode)) - return simplify_gen_subreg (outermode, XEXP (op, 0), - origmode, byte); + return simplify_gen_subreg (outermode, XEXP (op, 0), origmode, + subreg_lowpart_offset (outermode, + origmode)); if (SCALAR_INT_MODE_P (outermode)) return simplify_gen_unary (GET_CODE (op), outermode, XEXP (op, 0), origmode); -- 2.30.2