Commit a79b3dc7 by Roger Sayle Committed by Roger Sayle

expr.c (emit_move_insn_1): Use emit_move_insn to move the parts of a complex…

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
parent 8d6b2775
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> 2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
* combine.c (simplify_set): Don't move a subreg in SET_SRC to * combine.c (simplify_set): Don't move a subreg in SET_SRC to
......
...@@ -3394,19 +3394,15 @@ emit_move_insn_1 (x, y) ...@@ -3394,19 +3394,15 @@ emit_move_insn_1 (x, y)
/* Note that the real part always precedes the imag part in memory /* Note that the real part always precedes the imag part in memory
regardless of machine's endianness. */ regardless of machine's endianness. */
#ifdef STACK_GROWS_DOWNWARD #ifdef STACK_GROWS_DOWNWARD
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code) emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
(gen_rtx_MEM (submode, XEXP (x, 0)), gen_imagpart (submode, y));
gen_imagpart (submode, y))); emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code) gen_realpart (submode, y));
(gen_rtx_MEM (submode, XEXP (x, 0)),
gen_realpart (submode, y)));
#else #else
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code) emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
(gen_rtx_MEM (submode, XEXP (x, 0)), gen_realpart (submode, y));
gen_realpart (submode, y))); emit_move_insn (gen_rtx_MEM (submode, XEXP (x, 0)),
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code) gen_imagpart (submode, y));
(gen_rtx_MEM (submode, XEXP (x, 0)),
gen_imagpart (submode, y)));
#endif #endif
} }
else else
...@@ -3481,10 +3477,8 @@ emit_move_insn_1 (x, y) ...@@ -3481,10 +3477,8 @@ emit_move_insn_1 (x, y)
|| GET_CODE (imagpart_x) == SUBREG)) || GET_CODE (imagpart_x) == SUBREG))
emit_insn (gen_rtx_CLOBBER (VOIDmode, x)); emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code) emit_move_insn (realpart_x, realpart_y);
(realpart_x, realpart_y)); emit_move_insn (imagpart_x, imagpart_y);
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(imagpart_x, imagpart_y));
} }
return get_last_insn (); return get_last_insn ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment