diff options
author | Stuart Henderson <shenders@gcc.gnu.org> | 2011-05-02 17:01:01 +0000 |
---|---|---|
committer | Stuart Henderson <shenders@gcc.gnu.org> | 2011-05-02 17:01:01 +0000 |
commit | 36019c19aafb03fbb2c74c4fbae74d196b953c76 (patch) | |
tree | 3be47b1f2f3922172e43487b1894c9f784eec8a3 | |
parent | f69ea688b02c207333c208af8eeae69de23d40ab (diff) | |
download | gcc-36019c19aafb03fbb2c74c4fbae74d196b953c76.zip gcc-36019c19aafb03fbb2c74c4fbae74d196b953c76.tar.gz gcc-36019c19aafb03fbb2c74c4fbae74d196b953c76.tar.bz2 |
re PR target/47951 (web.c:union_match_dups segmentation fault for bfin)
2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
PR target/47951
* config/bfin/bfin.md (loop_end): Use matching constraints to ensure
inputs match the output.
From-SVN: r173261
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.md | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c215d6b..114de89 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-05-02 Stuart Henderson <shenders@gcc.gnu.org> + + PR target/47951 + * config/bfin/bfin.md (loop_end): Use matching constraints to ensure + inputs match the output. + 2011-05-02 Andreas Schwab <schwab@linux-m68k.org> PR target/47955 diff --git a/gcc/config/bfin/bfin.md b/gcc/config/bfin/bfin.md index 3fac01c..4d22df5 100644 --- a/gcc/config/bfin/bfin.md +++ b/gcc/config/bfin/bfin.md @@ -1961,15 +1961,15 @@ (define_insn "loop_end" [(set (pc) - (if_then_else (ne (match_operand:SI 0 "nonimmediate_operand" "+a*d,*b*v*f,m") + (if_then_else (ne (match_operand:SI 2 "nonimmediate_operand" "0,0,0") (const_int 1)) (label_ref (match_operand 1 "" "")) (pc))) - (set (match_dup 0) - (plus (match_dup 0) + (set (match_operand:SI 0 "nonimmediate_operand" "=a*d,*b*v*f,m") + (plus (match_dup 2) (const_int -1))) (unspec [(const_int 0)] UNSPEC_LSETUP_END) - (clobber (match_scratch:SI 2 "=X,&r,&r"))] + (clobber (match_scratch:SI 3 "=X,&r,&r"))] "" "@ /* loop end %0 %l1 */ |