2003-02-24 Richard Henderson <rth@redhat.com> * cse.c (find_best_addr): Consider binary operators even if second argument is not CONST_INT. --- gcc-3.3.1/gcc/cse.c.cse-tweak 2003-07-07 07:18:54.000000000 +0200 +++ gcc-3.3.1/gcc/cse.c 2003-07-16 14:06:36.000000000 +0200 @@ -3043,10 +3043,9 @@ find_best_addr (insn, loc, mode) if (flag_expensive_optimizations && (GET_RTX_CLASS (GET_CODE (*loc)) == '2' || GET_RTX_CLASS (GET_CODE (*loc)) == 'c') - && GET_CODE (XEXP (*loc, 0)) == REG - && GET_CODE (XEXP (*loc, 1)) == CONST_INT) + && GET_CODE (XEXP (*loc, 0)) == REG) { - rtx c = XEXP (*loc, 1); + rtx op1 = XEXP (*loc, 1); do_not_record = 0; hash = HASH (XEXP (*loc, 0), Pmode); @@ -3088,7 +3087,7 @@ find_best_addr (insn, loc, mode) || exp_equiv_p (p->exp, p->exp, 1, 0))) { rtx new = simplify_gen_binary (GET_CODE (*loc), Pmode, - p->exp, c); + p->exp, op1); int new_cost; new_cost = address_cost (new, mode);