From 48c55a0a46a26e9c90179c7613bb69640e21e73a Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Tue, 24 Feb 2015 16:17:49 -0700 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/config/xtensa/xtensa.md | 12 ++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 255d4ceaed1..776821bb545 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2015-02-24 Jeff Law + + 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 * 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 9c2afad3c64..ccaa2b2f560 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)] -- 2.30.2