aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorStephane Carrez <stcarrez@nerim.fr>2003-03-31 22:39:44 +0200
committerStephane Carrez <ciceron@gcc.gnu.org>2003-03-31 22:39:44 +0200
commitc25292ceb30a526e89781dce985a788f920ce76f (patch)
treeb75729463cbfccb7741801f327d6914480bf5c94 /gcc
parent44f19ccb409c0de4735ff8ffefa113423f02abfd (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/config/m68hc11/m68hc11.c12
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))
{