Commit 27dc0551 by David Edelsohn Committed by David Edelsohn

rs6000.md (movti_string): Remove clobber.

        * config/rs6000/rs6000.md (movti_string): Remove clobber.
        * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
        generate PARALLEL with clobber for TARGET_POWER.

From-SVN: r61398
parent 73f84924
2003-01-16 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (movti_string): Remove clobber.
* config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
generate PARALLEL with clobber for TARGET_POWER.
2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* ra-colorize.c (colorize_one_web): Initialize variable. * ra-colorize.c (colorize_one_web): Initialize variable.
......
...@@ -2859,6 +2859,16 @@ rs6000_emit_move (dest, source, mode) ...@@ -2859,6 +2859,16 @@ rs6000_emit_move (dest, source, mode)
operands[1] operands[1]
= replace_equiv_address (operands[1], = replace_equiv_address (operands[1],
copy_addr_to_reg (XEXP (operands[1], 0))); copy_addr_to_reg (XEXP (operands[1], 0)));
if (TARGET_POWER)
{
emit_insn (gen_rtx_PARALLEL (VOIDmode,
gen_rtvec (2,
gen_rtx_SET (VOIDmode,
operands[0], operands[1]),
gen_rtx_CLOBBER (VOIDmode,
gen_rtx_SCRATCH (SImode)))));
return;
}
break; break;
default: default:
......
...@@ -9305,10 +9305,8 @@ ...@@ -9305,10 +9305,8 @@
case 0: case 0:
return \"{stsi|stswi} %1,%P0,16\"; return \"{stsi|stswi} %1,%P0,16\";
case 1: case 1:
return \"{st%U0|stw%U0} %1,%0\;{st|stw} %L1,%L0\;{st|stw} %Y1,%Y0\;{st|stw} %Z1,%Z0\"; return \"{st%U0|stw%U0} %1,%0\;{st|stw} %L1,%L0\;{st|stw} %Y1,%Y0\;{st|stw} %Z1,%Z0\";
case 2: case 2:
/* Normally copy registers with lowest numbered register copied first. /* Normally copy registers with lowest numbered register copied first.
But copy in the other order if the first register of the output But copy in the other order if the first register of the output
...@@ -9346,8 +9344,7 @@ ...@@ -9346,8 +9344,7 @@
(define_insn "*movti_string" (define_insn "*movti_string"
[(set (match_operand:TI 0 "reg_or_mem_operand" "=Q,m,????r,????r,????r") [(set (match_operand:TI 0 "reg_or_mem_operand" "=Q,m,????r,????r,????r")
(match_operand:TI 1 "reg_or_mem_operand" "r,r,r,Q,m")) (match_operand:TI 1 "reg_or_mem_operand" "r,r,r,Q,m"))]
(clobber (match_scratch:SI 2 "X,X,X,X,X"))]
"TARGET_STRING && ! TARGET_POWER && ! TARGET_POWERPC64 "TARGET_STRING && ! TARGET_POWER && ! TARGET_POWERPC64
&& (gpc_reg_operand (operands[0], TImode) || gpc_reg_operand (operands[1], TImode))" && (gpc_reg_operand (operands[0], TImode) || gpc_reg_operand (operands[1], TImode))"
"* "*
......
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