From 481c7efae8707188049cf59ad97f682ba68576ce Mon Sep 17 00:00:00 2001 From: Franz Sirl Date: Tue, 30 Nov 1999 23:19:06 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/combine.c | 4 +++- gcc/config/rs6000/rs6000.md | 9 +++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 317ee8f0f4a..b77d214dc18 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Nov 30 15:18:35 1999 Franz Sirl + + * 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 * lcm.c (compute_laterin): Cast bb->aux to size_t not int. diff --git a/gcc/combine.c b/gcc/combine.c index 8f14d7df927..e7e0a693300 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 7d313abcd34..8d6e85cb21b 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); -- 2.30.2