From: Hans-Peter Nilsson Date: Mon, 12 Oct 2009 17:37:48 +0000 (+0000) Subject: re PR target/26515 (peephole2 causes unrecognized insn, zero_extending non-general... X-Git-Tag: releases/gcc-4.5.0~2956 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=365cacbf41bb541ca5e6fef293dbd46f10a508ff;p=thirdparty%2Fgcc.git re PR target/26515 (peephole2 causes unrecognized insn, zero_extending non-general register) PR target/26515 * config/cris/cris.md (andu): Check that operand 1 is one of the general registers. Fix typo in head comment. From-SVN: r152676 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0714158ea99e..7b6c08007954 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-10-12 Hans-Peter Nilsson + + PR target/26515 + * config/cris/cris.md (andu): Check that operand 1 is one of the + general registers. Fix typo in head comment. + 2009-10-12 Stefan Dösinger * config/i386/i386.md (vswapmov): New. diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md index 79eb8da3b0db..bd14a16337e7 100644 --- a/gcc/config/cris/cris.md +++ b/gcc/config/cris/cris.md @@ -4936,7 +4936,7 @@ ;; It should be: ;; movu.b some_byte,reg_32 ;; and.b const,reg_32 -;; but is turns into: +;; but it turns into: ;; move.b some_byte,reg_32 ;; and.d const,reg_32 ;; Fix it here. @@ -4953,7 +4953,9 @@ "REGNO (operands[2]) == REGNO (operands[0]) && INTVAL (operands[3]) <= 65535 && INTVAL (operands[3]) >= 0 && !CRIS_CONST_OK_FOR_LETTER_P (INTVAL (operands[3]), 'I') - && !side_effects_p (operands[1])" + && !side_effects_p (operands[1]) + && (!REG_P (operands[1]) + || REGNO (operands[1]) <= CRIS_LAST_GENERAL_REGISTER)" ;; FIXME: CC0 valid except for M (i.e. CC_NOT_NEGATIVE). [(set (match_dup 0) (match_dup 4)) (set (match_dup 5) (match_dup 6))]