diff options
author | Stephane Carrez <stcarrez@nerim.fr> | 2003-03-31 22:39:44 +0200 |
---|---|---|
committer | Stephane Carrez <ciceron@gcc.gnu.org> | 2003-03-31 22:39:44 +0200 |
commit | c25292ceb30a526e89781dce985a788f920ce76f (patch) | |
tree | b75729463cbfccb7741801f327d6914480bf5c94 /gcc | |
parent | 44f19ccb409c0de4735ff8ffefa113423f02abfd (diff) | |
download | gcc-c25292ceb30a526e89781dce985a788f920ce76f.zip gcc-c25292ceb30a526e89781dce985a788f920ce76f.tar.gz gcc-c25292ceb30a526e89781dce985a788f920ce76f.tar.bz2 |
m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0 notes as they are boggus.
* config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
notes as they are boggus.
(m68hc11_gen_movqi): Likewise.
From-SVN: r65107
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/m68hc11/m68hc11.c | 12 |
2 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 57283ce..7844eb8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2003-03-31 Stephane Carrez <stcarrez@nerim.fr> + * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0 + notes as they are boggus. + (m68hc11_gen_movqi): Likewise. + +2003-03-31 Stephane Carrez <stcarrez@nerim.fr> + * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler save the soft registers after the frame pointer so that gdb can unwind the frame more easily. diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c index 0e8f364..bb3327b 100644 --- a/gcc/config/m68hc11/m68hc11.c +++ b/gcc/config/m68hc11/m68hc11.c @@ -3271,7 +3271,8 @@ m68hc11_gen_movhi (insn, operands) { if (SP_REG_P (operands[0])) output_asm_insn ("lds\t%1", operands); - else if (!D_REG_P (operands[0]) + else if (0 /* REG_WAS_0 note is boggus; don't rely on it. */ + && !D_REG_P (operands[0]) && GET_CODE (operands[1]) == CONST_INT && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1) && find_reg_note (insn, REG_WAS_0, 0)) @@ -3464,7 +3465,8 @@ m68hc11_gen_movhi (insn, operands) cc_status = cc_prev_status; output_asm_insn ("tsx", operands); } - else if (GET_CODE (operands[1]) == CONST_INT + else if (0 /* REG_WAS_0 note is boggus; don't rely on it. */ + && GET_CODE (operands[1]) == CONST_INT && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1) && find_reg_note (insn, REG_WAS_0, 0)) { @@ -3521,7 +3523,8 @@ m68hc11_gen_movhi (insn, operands) cc_status = cc_prev_status; output_asm_insn ("tsy", operands); } - else if (GET_CODE (operands[1]) == CONST_INT + else if (0 /* REG_WAS_0 note is boggus; don't rely on it. */ + && GET_CODE (operands[1]) == CONST_INT && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1) && find_reg_note (insn, REG_WAS_0, 0)) { @@ -3770,7 +3773,8 @@ m68hc11_gen_movqi (insn, operands) output_asm_insn ("ldab\t%T0", operands); } } - else if (GET_CODE (operands[1]) == CONST_INT + else if (0 /* REG_WAS_0 note is boggus; don't rely on it. */ + && GET_CODE (operands[1]) == CONST_INT && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1) && find_reg_note (insn, REG_WAS_0, 0)) { |