diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-07-28 19:48:33 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-07-28 19:48:33 -0400 |
commit | 62acb9781ff34c6da24a07e35c76927c86a20250 (patch) | |
tree | 389d9c87a9b7ce8a57370ce4644a4debf4a5dbb4 | |
parent | bb14e22817b7bfb6773adc6945c9350ca8a47f84 (diff) | |
download | gcc-62acb9781ff34c6da24a07e35c76927c86a20250.zip gcc-62acb9781ff34c6da24a07e35c76927c86a20250.tar.gz gcc-62acb9781ff34c6da24a07e35c76927c86a20250.tar.bz2 |
(expand_expr, case CONJ_EXPR): Use correct mode for parts of a complex
expression.
From-SVN: r7815
-rw-r--r-- | gcc/expr.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -6058,6 +6058,7 @@ expand_expr (exp, target, tmode, modifier) case CONJ_EXPR: { + enum machine_mode partmode = TYPE_MODE (TREE_TYPE (TREE_TYPE (exp))); rtx imag_t; rtx insns; @@ -6069,11 +6070,12 @@ expand_expr (exp, target, tmode, modifier) start_sequence (); /* Store the realpart and the negated imagpart to target. */ - emit_move_insn (gen_realpart (mode, target), gen_realpart (mode, op0)); + emit_move_insn (gen_realpart (partmode, target), + gen_realpart (partmode, op0)); - imag_t = gen_imagpart (mode, target); - temp = expand_unop (mode, neg_optab, - gen_imagpart (mode, op0), imag_t, 0); + imag_t = gen_imagpart (partmode, target); + temp = expand_unop (partmode, neg_optab, + gen_imagpart (partmode, op0), imag_t, 0); if (temp != imag_t) emit_move_insn (imag_t, temp); |