aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-11-06 06:24:13 +0000
committerRichard Stallman <rms@gnu.org>1993-11-06 06:24:13 +0000
commite33c0d66894ffb6ffaddd7d733371e1011cc7d25 (patch)
tree149b2db7728e80371c26df0f9ed3521a07d7f4b2
parent82020a12d5c879337cadab7b738d1df2e2a306af (diff)
downloadgcc-e33c0d66894ffb6ffaddd7d733371e1011cc7d25.zip
gcc-e33c0d66894ffb6ffaddd7d733371e1011cc7d25.tar.gz
gcc-e33c0d66894ffb6ffaddd7d733371e1011cc7d25.tar.bz2
(emit_move_insn_1): Push the components of a complex
in proper order: imag part has higher address. From-SVN: r6024
-rw-r--r--gcc/expr.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 32d5ef8..fc33c84f 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1802,20 +1802,22 @@ emit_move_insn_1 (x, y)
the mode, not to change the address. */
if (stack)
{
+ /* Note that the real part always precedes the imag part in memory
+ regardless of machine's endianness. */
#ifdef STACK_GROWS_DOWNWARD
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_rtx (MEM, submode, (XEXP (x, 0))),
- gen_highpart (submode, y)));
+ gen_imagpart (submode, y)));
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_rtx (MEM, submode, (XEXP (x, 0))),
- gen_lowpart (submode, y)));
+ gen_realpart (submode, y)));
#else
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_rtx (MEM, submode, (XEXP (x, 0))),
- gen_lowpart (submode, y)));
+ gen_realpart (submode, y)));
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_rtx (MEM, submode, (XEXP (x, 0))),
- gen_highpart (submode, y)));
+ gen_imagpart (submode, y)));
#endif
}
else