diff options
author | Richard Stallman <rms@gnu.org> | 1993-10-30 22:11:45 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-10-30 22:11:45 +0000 |
commit | e7c2087cea5f1d1b45e9abfe4660dd1be52bb42d (patch) | |
tree | 0ab2767e411525d8696038f59bd376c5f87ea764 /gcc | |
parent | f55ef7b071aa128ebde81c03494d9a4f3b90d7ab (diff) | |
download | gcc-e7c2087cea5f1d1b45e9abfe4660dd1be52bb42d.zip gcc-e7c2087cea5f1d1b45e9abfe4660dd1be52bb42d.tar.gz gcc-e7c2087cea5f1d1b45e9abfe4660dd1be52bb42d.tar.bz2 |
(output_move_double): Extend the special case
for *--sp = sp[N] to handle 12 bytes as well as 8 bytes.
From-SVN: r5951
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/i386/i386.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 8ef4289..384cfb0 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 |