expr.c (emit_move_insn_1): Use emit_move_insn to move the parts of a complex number rather than invoke...

* expr.c (emit_move_insn_1): Use emit_move_insn to move the parts
	of a complex number rather than invoke mov_optab directly.

From-SVN: r67389
This commit is contained in:
Roger Sayle 2003-06-03 17:13:06 +00:00 committed by Roger Sayle
parent 8d6b2775ec
commit a79b3dc7c8
2 changed files with 15 additions and 16 deletions

View File

@ -1,3 +1,8 @@
2003-06-03 Roger Sayle <roger@eyesopen.com>
* expr.c (emit_move_insn_1): Use emit_move_insn to move the parts
of a complex number rather than invoke mov_optab directly.
2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
* combine.c (simplify_set): Don't move a subreg in SET_SRC to

View File

@ -3394,19 +3394,15 @@ emit_move_insn_1 (x, y)
/* 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_imagpart (submode, y)));
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_rtx_MEM (submode, XEXP (x, 0)),
gen_realpart (submode, y)));
emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
gen_imagpart (submode, y));
emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
gen_realpart (submode, y));
#else
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_rtx_MEM (submode, XEXP (x, 0)),
gen_realpart (submode, y)));
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_rtx_MEM (submode, XEXP (x, 0)),
gen_imagpart (submode, y)));
emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
gen_realpart (submode, y));
emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
gen_imagpart (submode, y));
#endif
}
else
@ -3481,10 +3477,8 @@ emit_move_insn_1 (x, y)
|| GET_CODE (imagpart_x) == SUBREG))
emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(realpart_x, realpart_y));
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(imagpart_x, imagpart_y));
emit_move_insn (realpart_x, realpart_y);
emit_move_insn (imagpart_x, imagpart_y);
}
return get_last_insn ();