(output_move_double): Do the low reg first,

when only the high reg has an overlap.

From-SVN: r4904
This commit is contained in:
Richard Stallman 1993-07-11 22:22:44 +00:00
parent 8e318904de
commit cb4107092f
1 changed files with 7 additions and 4 deletions

View File

@ -345,10 +345,13 @@ output_move_double (operands)
operands[1] = gen_rtx (MEM, DImode, op0);
latehalf[1] = adj_offsettable_operand (operands[1], 4);
}
/* Do the late half first. */
output_asm_insn (singlemove_string (latehalf), latehalf);
/* Then clobber. */
return singlemove_string (operands);
if (reg_mentioned_p (op0, XEXP (op1, 0)))
{
/* The first half has the overlap, Do the late half first. */
output_asm_insn (singlemove_string (latehalf), latehalf);
/* Then clobber. */
return singlemove_string (operands);
}
}
/* Normal case. Do the two words, low-numbered first. */