aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2004-01-23 01:47:15 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2004-01-23 01:47:15 +0000
commitdc4bbaf76f904bc3004ef0d6123f6654b714230c (patch)
tree9a9a00d58f04db6271d584b59eabb2dfcba59012 /gcc
parentf8f689a59f4bc3fc4f92fa858374c2fab301866f (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/simplify-rtx.c5
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);