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.
{
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))
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))
{
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))
{
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))
{