aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2015-02-24 16:17:49 -0700
committerJeff Law <law@gcc.gnu.org>2015-02-24 16:17:49 -0700
commit48c55a0a46a26e9c90179c7613bb69640e21e73a (patch)
tree5389d1590db4bfedaf314bd950c59a018aa48905
parent5c925255ee3cb10089f74c310a29f770ca8dad0b (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/config/xtensa/xtensa.md12
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)]