diff options
author | Roger Sayle <roger@eyesopen.com> | 2004-01-23 01:47:15 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2004-01-23 01:47:15 +0000 |
commit | dc4bbaf76f904bc3004ef0d6123f6654b714230c (patch) | |
tree | 9a9a00d58f04db6271d584b59eabb2dfcba59012 /gcc | |
parent | f8f689a59f4bc3fc4f92fa858374c2fab301866f (diff) | |
download | gcc-dc4bbaf76f904bc3004ef0d6123f6654b714230c.zip gcc-dc4bbaf76f904bc3004ef0d6123f6654b714230c.tar.gz gcc-dc4bbaf76f904bc3004ef0d6123f6654b714230c.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/simplify-rtx.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ccb1dd1..d8006ca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-01-22 Roger Sayle <roger@eyesopen.com> + + 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 <ian@wasabisystems.com> * doc/invoke.texi (Optimize Options): Note that --param arguments diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 5ba6882..cebbf04 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); |