From a98c9f1ab2c7f8ad5cb6153ce46731b66fd110ea Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 23 Nov 1994 13:30:35 -0500 Subject: [PATCH] (emit_move_insn): If splitting up into individual words and X is a push_operand... (emit_move_insn): If splitting up into individual words and X is a push_operand, do the push and reference top of stack. From-SVN: r8554 --- gcc/expr.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gcc/expr.c b/gcc/expr.c index a1ecf253a1c..0d5fd9f0282 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -1951,6 +1951,17 @@ emit_move_insn_1 (x, y) rtx last_insn = 0; rtx insns; +#ifdef PUSH_ROUNDING + + /* If X is a push on the stack, do the push now and replace + X with a reference to the stack pointer. */ + if (push_operand (x, GET_MODE (x))) + { + anti_adjust_stack (GEN_INT (GET_MODE_SIZE (GET_MODE (x)))); + x = change_address (x, VOIDmode, stack_pointer_rtx); + } +#endif + for (i = 0; i < (GET_MODE_SIZE (mode) + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD; i++) -- 2.30.2