From: Stephane Carrez Date: Sun, 6 Jun 2004 17:01:07 +0000 (+0200) Subject: re PR target/14542 (ICE on simple source) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=37f40c9cfd5acd2f5cf508e0a4d31611373a7bc5;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f3f622e7ba6..bb55756a442 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-06-06 Stephane Carrez + + 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 PR c/13519 diff --git a/gcc/config/m68hc11/m68hc11.md b/gcc/config/m68hc11/m68hc11.md index 364bdbb6ff8..be8ffbf4047 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))] "")