summaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2001-09-02 01:14:45 +0000
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2001-09-02 01:14:45 +0000
commit12a97a04fea1fcdf150ffb74c5e48788bee5c3d3 (patch)
tree0f1fa75843bc922de60b8216492c90d6b82eeece /gcc/expr.c
parentf3400abb62ca61eab45d996d47c972817654d2b3 (diff)
downloadgcc-12a97a04fea1fcdf150ffb74c5e48788bee5c3d3.tar.gz
* expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
(emit_push_insn): Use specified padding direction when STACK_PUSH_CODE is POST_INC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45352 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 222d7ec0f08..e8774e46f6c 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -3102,18 +3102,11 @@ push_block (size, extra, below)
}
#ifndef STACK_GROWS_DOWNWARD
-#ifdef ARGS_GROW_DOWNWARD
- if (!ACCUMULATE_OUTGOING_ARGS)
-#else
if (0)
-#endif
#else
if (1)
#endif
{
- /* Return the lowest stack address when STACK or ARGS grow downward and
- we are not aaccumulating outgoing arguments (the c4x port uses such
- conventions). */
temp = virtual_outgoing_args_rtx;
if (extra != 0 && below)
temp = plus_constant (temp, extra);
@@ -3273,8 +3266,9 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra,
Default is below for small data on big-endian machines; else above. */
enum direction where_pad = FUNCTION_ARG_PADDING (mode, type);
- /* Invert direction if stack is post-update. */
- if (STACK_PUSH_CODE == POST_INC || STACK_PUSH_CODE == POST_DEC)
+ /* Invert direction if stack is post-decrement.
+ FIXME: why? */
+ if (STACK_PUSH_CODE == POST_DEC)
if (where_pad != none)
where_pad = (where_pad == downward ? upward : downward);