diff options
author | Richard Stallman <rms@gnu.org> | 1992-11-06 08:22:05 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-11-06 08:22:05 +0000 |
commit | 931553d837d3df3c65d8255add17dff148d7d075 (patch) | |
tree | d5bf4b8a27743a0c1247c9c948c5c8361891bba6 | |
parent | dad112cafdac7d9c611cae84a3de781d46b735b8 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/integrate.c | 6 |
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; |