* pa/pa.c (emit_move_sequence): Don't copy 0.0 (double precision)
directly to memory, go through a reg if reload hasn't started.
* pa/pa.md (main movdf pattern): Don't allow 0.0 (double precision)
to be copied directly to memory.
From-SVN: r13669
}
else if (GET_CODE (operand0) == MEM)
{
+ if (mode == DFmode && operand1 == CONST0_RTX (mode)
+ && !(reload_in_progress || reload_completed))
+ {
+ rtx temp = gen_reg_rtx (DFmode);
+
+ emit_insn (gen_rtx (SET, VOIDmode, temp, operand1));
+ emit_insn (gen_rtx (SET, VOIDmode, operand0, temp));
+ return 1;
+ }
if (register_operand (operand1, mode) || operand1 == CONST0_RTX (mode))
{
/* Run this case quickly. */
"fG,*rG,f,*r,*r,RQ,o,Q"))]
"(register_operand (operands[0], DFmode)
|| reg_or_0_operand (operands[1], DFmode))
+ && ! (GET_CODE (operands[1]) == CONST_DOUBLE
+ && GET_CODE (operands[0]) == MEM)
&& ! TARGET_SOFT_FLOAT"
"*
{