+2001-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * expr.c (emit_move_insn): Add REG_EQUAL note when constant loaded
+ into register was forced into memory.
+
2001-01-27 Alexandre Oliva <aoliva@redhat.com>
* Makefile.in: Remove uses of + before $(MAKE).
rtx x, y;
{
enum machine_mode mode = GET_MODE (x);
+ rtx y_cst = NULL_RTX;
+ rtx last_insn;
x = protect_from_queue (x, 1);
y = protect_from_queue (y, 0);
if (GET_CODE (y) == CONSTANT_P_RTX)
;
else if (CONSTANT_P (y) && ! LEGITIMATE_CONSTANT_P (y))
- y = force_const_mem (mode, y);
+ {
+ y_cst = y;
+ y = force_const_mem (mode, y);
+ }
/* If X or Y are memory references, verify that their addresses are valid
for the machine. */
if (mode == BLKmode)
abort ();
- return emit_move_insn_1 (x, y);
+ last_insn = emit_move_insn_1 (x, y);
+
+ if (y_cst && GET_CODE (x) == REG)
+ REG_NOTES (last_insn)
+ = gen_rtx_EXPR_LIST (REG_EQUAL, y_cst, REG_NOTES (last_insn));
+
+ return last_insn;
}
/* Low level part of emit_move_insn.