Commit 7bb4a6be by H.J. Lu

re PR target/31582 (ix86_expand_vec_set_builtin modifies source)

2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31582
	* config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
	copy of source, pass it to ix86_expand_vector_set and return
	it as target.

From-SVN: r123866
parent 9c3068be
2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
PR target/31582
* config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
copy of source, pass it to ix86_expand_vector_set and return
it as target.
2007-04-16 David Ung <davidu@mips.com>
Joseph Myers <joseph@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
......
......@@ -17902,7 +17902,7 @@ ix86_expand_vec_set_builtin (tree exp)
enum machine_mode tmode, mode1;
tree arg0, arg1, arg2;
int elt;
rtx op0, op1;
rtx op0, op1, target;
arg0 = CALL_EXPR_ARG (exp, 0);
arg1 = CALL_EXPR_ARG (exp, 1);
......@@ -17922,9 +17922,13 @@ ix86_expand_vec_set_builtin (tree exp)
op0 = force_reg (tmode, op0);
op1 = force_reg (mode1, op1);
ix86_expand_vector_set (true, op0, op1, elt);
/* OP0 is the source of these builtin functions and shouldn't be
modifified. Create a copy, use it and return it as target. */
target = gen_reg_rtx (tmode);
emit_move_insn (target, op0);
ix86_expand_vector_set (true, target, op1, elt);
return op0;
return target;
}
/* Expand an expression EXP that calls a built-in function,
......
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