diff options
author | Richard Stallman <rms@gnu.org> | 1993-07-11 22:22:44 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-07-11 22:22:44 +0000 |
commit | cb4107092f20307954da832ceec7842d0e77d3b3 (patch) | |
tree | 3a785e5e5633c5458c1ddf48685b5481f2359515 | |
parent | 8e318904de7104de65f093a0abfdd23abc9224be (diff) | |
download | gcc-cb4107092f20307954da832ceec7842d0e77d3b3.zip gcc-cb4107092f20307954da832ceec7842d0e77d3b3.tar.gz gcc-cb4107092f20307954da832ceec7842d0e77d3b3.tar.bz2 |
(output_move_double): Do the low reg first,
when only the high reg has an overlap.
From-SVN: r4904
-rw-r--r-- | gcc/config/ns32k/ns32k.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/config/ns32k/ns32k.c b/gcc/config/ns32k/ns32k.c index 6dd4a96..2235d44 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. */ |