aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-09-16 17:35:50 +0000
committerRichard Stallman <rms@gnu.org>1993-09-16 17:35:50 +0000
commit944d7b1408dfe5b174cc74f1c518f1737081ac32 (patch)
treec2e208278ddf346e9bda95fc5ccd412fbafdaf1a /gcc/reload.c
parentfefc83ce1c3e63af0807a98490779d599c408f39 (diff)
downloadgcc-944d7b1408dfe5b174cc74f1c518f1737081ac32.zip
gcc-944d7b1408dfe5b174cc74f1c518f1737081ac32.tar.gz
gcc-944d7b1408dfe5b174cc74f1c518f1737081ac32.tar.bz2
(find_reloads): For PLUS operand, call find_reloads_toplev.
From-SVN: r5342
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 8b6a89d..6b91e0c 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -2438,6 +2438,12 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
ind_levels,
set != 0
&& &SET_DEST (set) == recog_operand_loc[i]);
+ else if (code == PLUS)
+ /* We can get a PLUS as an "operand" as a result of
+ register elimination. See eliminate_regs and gen_input_reload. */
+ substed_operand[i] = recog_operand[i] = *recog_operand_loc[i]
+ = find_reloads_toplev (recog_operand[i], i, address_type[i],
+ ind_levels, 0);
else if (code == REG)
{
/* This is equivalent to calling find_reloads_toplev.