mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-18 00:39:52 +08:00
expr.c (emit_move_insn): Add REG_EQUAL note when constant loaded into register was forced into memory.
* expr.c (emit_move_insn): Add REG_EQUAL note when constant loaded into register was forced into memory. From-SVN: r39301
This commit is contained in:
parent
8a8de62d6d
commit
de1b33ddc0
@ -1,3 +1,8 @@
|
||||
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).
|
||||
|
15
gcc/expr.c
15
gcc/expr.c
@ -2709,6 +2709,8 @@ emit_move_insn (x, y)
|
||||
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);
|
||||
@ -2720,7 +2722,10 @@ emit_move_insn (x, y)
|
||||
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. */
|
||||
@ -2740,7 +2745,13 @@ emit_move_insn (x, y)
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user