From e7c2087cea5f1d1b45e9abfe4660dd1be52bb42d Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Sat, 30 Oct 1993 22:11:45 +0000 Subject: [PATCH] (output_move_double): Extend the special case for *--sp = sp[N] to handle 12 bytes as well as 8 bytes. From-SVN: r5951 --- gcc/config/i386/i386.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 8ef428910d0..384cfb07694 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -444,12 +444,14 @@ output_move_double (operands) } /* If insn is effectively movd N (sp),-(sp) then we will do the - high word first. We should use the adjusted operand 1 (which is N+4 (sp)) - for the low word as well, to compensate for the first decrement of sp. */ + high word first. We should use the adjusted operand 1 + (which is N+4 (sp) or N+8 (sp)) + for the low word and middle word as well, + to compensate for the first decrement of sp. */ if (optype0 == PUSHOP && REGNO (XEXP (XEXP (operands[0], 0), 0)) == STACK_POINTER_REGNUM && reg_overlap_mentioned_p (stack_pointer_rtx, operands[1])) - operands[1] = latehalf[1]; + middlehalf[1] = operands[1] = latehalf[1]; /* For (set (reg:DI N) (mem:DI ... (reg:SI N) ...)), if the upper part of reg N does not appear in the MEM, arrange to -- 2.30.2