From: Hans-Peter Nilsson Date: Mon, 12 Oct 2009 17:19:56 +0000 (+0000) Subject: re PR target/26515 (peephole2 causes unrecognized insn, zero_extending non-general... X-Git-Tag: releases/gcc-4.3.5~345 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6da36f00466892030bcbae15b995b548aec714ae;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: r152673 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5b36a7ca5f7..8a5b06777227 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-07 Andreas Krebbel * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md index 298f3c40ff03..85783f84db3d 100644 --- a/gcc/config/cris/cris.md +++ b/gcc/config/cris/cris.md @@ -4903,7 +4903,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. @@ -4920,7 +4920,9 @@ "REGNO (operands[2]) == REGNO (operands[0]) && INTVAL (operands[3]) <= 65535 && INTVAL (operands[3]) >= 0 && !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))]