Commit 08f9d725 by Michael Meissner Committed by Michael Meissner

Remove band-aid no longer needed by the fix in PR 43431

From-SVN: r157408
parent b2ef02df
2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
PR middle-end/42431
* gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
code added to work around reload clobbering CONST insns.
2010-03-12 Jakub Jelinek <jakub@redhat.com> 2010-03-12 Jakub Jelinek <jakub@redhat.com>
* cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove. * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
......
...@@ -6346,32 +6346,6 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode) ...@@ -6346,32 +6346,6 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
return; return;
} }
/* Fix up invalid (const (plus (symbol_ref) (reg))) that seems to be created
in the secondary_reload phase, which evidently overwrites the CONST_INT
with a register. */
if (GET_CODE (source) == CONST && GET_CODE (XEXP (source, 0)) == PLUS
&& mode == Pmode)
{
rtx add_op0 = XEXP (XEXP (source, 0), 0);
rtx add_op1 = XEXP (XEXP (source, 0), 1);
if (GET_CODE (add_op0) == SYMBOL_REF && GET_CODE (add_op1) == REG)
{
rtx tmp = (can_create_pseudo_p ()) ? gen_reg_rtx (Pmode) : dest;
if (TARGET_DEBUG_ADDR)
{
fprintf (stderr, "\nrs6000_emit_move: bad source\n");
debug_rtx (source);
}
rs6000_emit_move (tmp, add_op0, Pmode);
emit_insn (gen_rtx_SET (VOIDmode, dest,
gen_rtx_PLUS (Pmode, tmp, add_op1)));
return;
}
}
if (can_create_pseudo_p () && GET_CODE (operands[0]) == MEM if (can_create_pseudo_p () && GET_CODE (operands[0]) == MEM
&& !gpc_reg_operand (operands[1], mode)) && !gpc_reg_operand (operands[1], mode))
operands[1] = force_reg (mode, operands[1]); operands[1] = force_reg (mode, operands[1]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment