summaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-24 23:32:29 +0000
committerfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-24 23:32:29 +0000
commit53eeaf020e2e0d8f5c20a72f697efe608a36ed24 (patch)
tree2c4e12dc2765003fb2fbc7f4ec6f43b79539a187 /gcc/reload1.c
parente8b065281040f9e3f6bed9b7f633139ad930f9f5 (diff)
downloadgcc-53eeaf020e2e0d8f5c20a72f697efe608a36ed24.tar.gz
revert accidentally committed changes
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167130 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 2f02ae38158..da354a7e325 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -6600,6 +6600,17 @@ choose_reload_regs (struct insn_chain *chain)
&& (rld[r].nregs == max_group_size
|| ! reg_classes_intersect_p (rld[r].rclass, group_class)))
search_equiv = rld[r].in;
+ /* If this is an output reload from a simple move insn, look
+ if an equivalence for the input is available. */
+ else if (inheritance && rld[r].in == 0 && rld[r].out != 0)
+ {
+ rtx set = single_set (insn);
+
+ if (set
+ && rtx_equal_p (rld[r].out, SET_DEST (set))
+ && CONSTANT_P (SET_SRC (set)))
+ search_equiv = SET_SRC (set);
+ }
if (search_equiv)
{