diff options
author | ciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-06 17:01:07 +0000 |
---|---|---|
committer | ciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-06 17:01:07 +0000 |
commit | d6cea54f8591fea7260c5b6472333e545cdfdd82 (patch) | |
tree | 094a9e438caedf66a301712afe4f219c1b0ac0b3 /gcc/config/m68hc11 | |
parent | 1ea7fa601eb0c73e47f13a8b1bf16975123a8050 (diff) | |
download | gcc-d6cea54f8591fea7260c5b6472333e545cdfdd82.tar.gz |
PR target/14542
* config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
a live change of a register after peephole replacement.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82673 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68hc11')
-rw-r--r-- | gcc/config/m68hc11/m68hc11.md | 8 |
1 files changed, 7 insertions, 1 deletions
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))] "") |