diff options
author | Franz Sirl <Franz.Sirl-kernel@lauterbach.com> | 1999-11-30 23:19:06 +0000 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-11-30 15:19:06 -0800 |
commit | 481c7efae8707188049cf59ad97f682ba68576ce (patch) | |
tree | 10ef6387bd38b7dc0190a20805b1b218e93a1188 /gcc | |
parent | e5b7ca327d3df06a69998bd72ae2cccad3759d25 (diff) | |
download | gcc-481c7efae8707188049cf59ad97f682ba68576ce.zip gcc-481c7efae8707188049cf59ad97f682ba68576ce.tar.gz gcc-481c7efae8707188049cf59ad97f682ba68576ce.tar.bz2 |
combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
* combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
* rs6000.md: Only access a CONST_INT with INTVAL
From-SVN: r30729
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/combine.c | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 9 |
3 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 317ee8f..b77d214 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Nov 30 15:18:35 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST + * rs6000.md: Only access a CONST_INT with INTVAL + Tue Nov 30 14:21:00 1999 Richard Henderson <rth@cygnus.com> * lcm.c (compute_laterin): Cast bb->aux to size_t not int. diff --git a/gcc/combine.c b/gcc/combine.c index 8f14d7d..e7e0a69 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1547,7 +1547,9 @@ try_combine (i3, i2, i1) if (i == XVECLEN (p2, 0)) for (i = 0; i < XVECLEN (p2, 0); i++) - if (SET_DEST (XVECEXP (p2, 0, i)) == SET_SRC (PATTERN (i3))) + if ((GET_CODE (XVECEXP (p2, 0, i)) == SET + || GET_CODE (XVECEXP (p2, 0, i)) == CLOBBER) + && SET_DEST (XVECEXP (p2, 0, i)) == SET_SRC (PATTERN (i3))) { combine_merges++; diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 7d313ab..8d6e85c 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -1717,11 +1717,16 @@ "" " { - int i = exact_log2 (INTVAL (operands[2])); + int i; rtx temp1; rtx temp2; - if (GET_CODE (operands[2]) != CONST_INT || i < 0) + if (GET_CODE (operands[2]) != CONST_INT) + FAIL; + + i = exact_log2 (INTVAL (operands[2])); + + if (i < 0) FAIL; temp1 = gen_reg_rtx (SImode); |