diff options
author | Stephane Carrez <stcarrez@nerim.fr> | 2004-06-06 19:01:07 +0200 |
---|---|---|
committer | Stephane Carrez <ciceron@gcc.gnu.org> | 2004-06-06 19:01:07 +0200 |
commit | 37f40c9cfd5acd2f5cf508e0a4d31611373a7bc5 (patch) | |
tree | 094a9e438caedf66a301712afe4f219c1b0ac0b3 | |
parent | 10bc1b1bec937131ad05fa18184b985078b99702 (diff) | |
download | gcc-37f40c9cfd5acd2f5cf508e0a4d31611373a7bc5.zip gcc-37f40c9cfd5acd2f5cf508e0a4d31611373a7bc5.tar.gz gcc-37f40c9cfd5acd2f5cf508e0a4d31611373a7bc5.tar.bz2 |
re PR target/14542 (ICE on simple source)
PR target/14542
* config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
a live change of a register after peephole replacement.
From-SVN: r82673
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/m68hc11/m68hc11.md | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f3f622e..bb55756 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-06-06 Stephane Carrez <stcarrez@nerim.fr> + + PR target/14542 + * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid + a live change of a register after peephole replacement. + 2004-06-06 Joseph S. Myers <jsm@polyomino.org.uk> PR c/13519 diff --git a/gcc/config/m68hc11/m68hc11.md b/gcc/config/m68hc11/m68hc11.md index 364bdbb..be8ffbf 100644 --- a/gcc/config/m68hc11/m68hc11.md +++ b/gcc/config/m68hc11/m68hc11.md @@ -6925,6 +6925,11 @@ gen_rtx_REG (HImode, HARD_SP_REGNUM)));") ;; Replace: "pshx; tfr d,x; stx 0,sp" into "pshd; tfr d,x" +;; +;; PR 14542: emit a use to pretend we need the value of initial register. +;; Otherwise verify_local_live_at_start will abort due to a live change +;; of that register. +;; (define_peephole2 [(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_operand:HI 0 "hard_reg_operand" "")) @@ -6933,7 +6938,8 @@ (set (mem:HI (reg:HI SP_REGNUM)) (match_dup 0))] "TARGET_M6812" - [(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) + [(use (match_dup 0)) + (set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 1)) (set (match_dup 0) (match_dup 1))] "") |