diff options
author | Jeff Law <law@redhat.com> | 2015-02-24 16:17:49 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2015-02-24 16:17:49 -0700 |
commit | 48c55a0a46a26e9c90179c7613bb69640e21e73a (patch) | |
tree | 5389d1590db4bfedaf314bd950c59a018aa48905 | |
parent | 5c925255ee3cb10089f74c310a29f770ca8dad0b (diff) | |
download | gcc-48c55a0a46a26e9c90179c7613bb69640e21e73a.zip gcc-48c55a0a46a26e9c90179c7613bb69640e21e73a.tar.gz gcc-48c55a0a46a26e9c90179c7613bb69640e21e73a.tar.bz2 |
re PR target/65117 (xtensa: With -Os, invalid parameter c1 for reg_class_subset_p() to cause segment fault.)
PR target/65117
* config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
of operand 0 and operand 2.
(zero_cost_loop_end, loop_end): Similarly.
From-SVN: r220953
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/xtensa/xtensa.md | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 255d4ce..776821b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2015-02-24 Jeff Law <law@redhat.com> + + PR target/65117 + * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering + of operand 0 and operand 2. + (zero_cost_loop_end, loop_end): Similarly. + 2015-02-24 Aldy Hernandez <aldyh@redhat.com> * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md index 9c2afad..ccaa2b2 100644 --- a/gcc/config/xtensa/xtensa.md +++ b/gcc/config/xtensa/xtensa.md @@ -1290,11 +1290,11 @@ (define_insn "zero_cost_loop_start" [(set (pc) - (if_then_else (ne (match_operand:SI 0 "register_operand" "2") + (if_then_else (ne (match_operand:SI 2 "register_operand" "0") (const_int 1)) (label_ref (match_operand 1 "" "")) (pc))) - (set (match_operand:SI 2 "register_operand" "=a") + (set (match_operand:SI 0 "register_operand" "=a") (plus (match_dup 0) (const_int -1))) (unspec [(const_int 0)] UNSPEC_LSETUP_START)] @@ -1306,11 +1306,11 @@ (define_insn "zero_cost_loop_end" [(set (pc) - (if_then_else (ne (match_operand:SI 0 "nonimmediate_operand" "2,2") + (if_then_else (ne (match_operand:SI 2 "nonimmediate_operand" "0,0") (const_int 1)) (label_ref (match_operand 1 "" "")) (pc))) - (set (match_operand:SI 2 "nonimmediate_operand" "=a,m") + (set (match_operand:SI 0 "nonimmediate_operand" "=a,m") (plus (match_dup 0) (const_int -1))) (unspec [(const_int 0)] UNSPEC_LSETUP_END) @@ -1323,11 +1323,11 @@ (define_insn "loop_end" [(set (pc) - (if_then_else (ne (match_operand:SI 0 "register_operand" "2") + (if_then_else (ne (match_operand:SI 2 "register_operand" "0") (const_int 1)) (label_ref (match_operand 1 "" "")) (pc))) - (set (match_operand:SI 2 "register_operand" "=a") + (set (match_operand:SI 0 "register_operand" "=a") (plus (match_dup 0) (const_int -1))) (unspec [(const_int 0)] UNSPEC_LSETUP_END)] |