diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2009-10-12 17:37:48 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2009-10-12 17:37:48 +0000 |
commit | 365cacbf41bb541ca5e6fef293dbd46f10a508ff (patch) | |
tree | 70b6222014e4367fdb68273634371fcf3b0cdad5 | |
parent | af672ec108a84f412bce43095192146615d6bae6 (diff) | |
download | gcc-365cacbf41bb541ca5e6fef293dbd46f10a508ff.zip gcc-365cacbf41bb541ca5e6fef293dbd46f10a508ff.tar.gz gcc-365cacbf41bb541ca5e6fef293dbd46f10a508ff.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/cris/cris.md | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0714158..7b6c080 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-10-12 Hans-Peter Nilsson <hp@axis.com> + + 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 <stefan@codeweavers.com> * config/i386/i386.md (vswapmov): New. diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md index 79eb8da..bd14a16 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))] |