diff options
author | olegendo <olegendo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-23 11:55:45 +0000 |
---|---|---|
committer | olegendo <olegendo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-23 11:55:45 +0000 |
commit | 6afb59537babffae22e8a0ff98a61626f5b2d8c6 (patch) | |
tree | 29d4bdb8f348701f058ecaaf7567f18d84734027 | |
parent | 6e3d7d46687194f7e6e563d310d9a20c3f51bf8c (diff) | |
download | gcc-6afb59537babffae22e8a0ff98a61626f5b2d8c6.tar.gz |
gcc/
PR target/67391
* config/sh/sh.md (addsi3, *addsi3_compact): Don't check for overlapping
regs when matching the pattern.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228046 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/sh/sh.md | 10 |
2 files changed, 7 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 27e527dc97a..2ec3abeb601 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-09-23 Oleg Endo <olegendo@gcc.gnu.org> + + PR target/67391 + * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for overlapping + regs when matching the pattern. + 2015-09-23 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64-simd.md diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index f3f68c6b45d..3dcb1cd6ce4 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -2129,11 +2129,6 @@ { if (TARGET_SHMEDIA) operands[1] = force_reg (SImode, operands[1]); - else if (! arith_operand (operands[2], SImode)) - { - if (reg_overlap_mentioned_p (operands[0], operands[1])) - FAIL; - } }) (define_insn "addsi3_media" @@ -2172,10 +2167,7 @@ [(set (match_operand:SI 0 "arith_reg_dest" "=r,&u") (plus:SI (match_operand:SI 1 "arith_operand" "%0,r") (match_operand:SI 2 "arith_or_int_operand" "rI08,rn")))] - "TARGET_SH1 - && ((rtx_equal_p (operands[0], operands[1]) - && arith_operand (operands[2], SImode)) - || ! reg_overlap_mentioned_p (operands[0], operands[1]))" + "TARGET_SH1" "@ add %2,%0 #" |