aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-11-06 08:22:05 +0000
committerRichard Stallman <rms@gnu.org>1992-11-06 08:22:05 +0000
commit931553d837d3df3c65d8255add17dff148d7d075 (patch)
treed5bf4b8a27743a0c1247c9c948c5c8361891bba6 /gcc
parentdad112cafdac7d9c611cae84a3de781d46b735b8 (diff)
downloadgcc-931553d837d3df3c65d8255add17dff148d7d075.zip
gcc-931553d837d3df3c65d8255add17dff148d7d075.tar.gz
gcc-931553d837d3df3c65d8255add17dff148d7d075.tar.bz2
(copy_rtx_and_substitute)[ARGS_GROW_DOWNWARD]: Map
virtual args pointer to the top of the argument block. From-SVN: r2698
Diffstat (limited to 'gcc')
-rw-r--r--gcc/integrate.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c
index 611bbad..118f49e 100644
--- a/gcc/integrate.c
+++ b/gcc/integrate.c
@@ -1906,6 +1906,12 @@ copy_rtx_and_substitute (orig, map)
start_sequence ();
loc = assign_stack_temp (BLKmode, size, 1);
loc = XEXP (loc, 0);
+ /* When arguments grow downward, the virtual incoming
+ args pointer points to the top of the argument block,
+ so the remapped location better do the same. */
+#ifdef ARGS_GROW_DOWNWARD
+ loc = plus_constant (loc, size);
+#endif
map->reg_map[regno] = temp
= force_reg (Pmode, force_operand (loc, NULL_RTX));
map->const_equiv_map[REGNO (temp)] = loc;