From cb4107092f20307954da832ceec7842d0e77d3b3 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Sun, 11 Jul 1993 22:22:44 +0000 Subject: [PATCH] (output_move_double): Do the low reg first, when only the high reg has an overlap. From-SVN: r4904 --- gcc/config/ns32k/ns32k.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gcc/config/ns32k/ns32k.c b/gcc/config/ns32k/ns32k.c index 6dd4a968869..2235d445292 100644 --- a/gcc/config/ns32k/ns32k.c +++ b/gcc/config/ns32k/ns32k.c @@ -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. */ -- 2.30.2