diff options
author | Richard Stallman <rms@gnu.org> | 1993-11-06 06:24:13 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-11-06 06:24:13 +0000 |
commit | e33c0d66894ffb6ffaddd7d733371e1011cc7d25 (patch) | |
tree | 149b2db7728e80371c26df0f9ed3521a07d7f4b2 | |
parent | 82020a12d5c879337cadab7b738d1df2e2a306af (diff) | |
download | gcc-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.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -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 |