aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2010-03-12 15:11:25 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2010-03-12 15:11:25 +0000
commit08f9d72574b6fa29248176b25e8cd40dcf2655b5 (patch)
tree5c891e12b30a20e52106c51a5bb54fcd541ce3be
parentb2ef02df5312169ffd4b0cfce00de2e01a5ff508 (diff)
downloadgcc-08f9d72574b6fa29248176b25e8cd40dcf2655b5.zip
gcc-08f9d72574b6fa29248176b25e8cd40dcf2655b5.tar.gz
gcc-08f9d72574b6fa29248176b25e8cd40dcf2655b5.tar.bz2
Remove band-aid no longer needed by the fix in PR 43431
From-SVN: r157408
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c26
2 files changed, 6 insertions, 26 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ce51db6..9bb215a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+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>
* cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 8285065..ce38a8a 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -6346,32 +6346,6 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
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
&& !gpc_reg_operand (operands[1], mode))
operands[1] = force_reg (mode, operands[1]);