diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-07-08 23:21:00 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-07-08 23:21:00 -0400 |
commit | c283c989124ffc357ead798bdd5ef1635c8df0fa (patch) | |
tree | df71c96ef1d7ba5de9a84452b3a91ac85f31a4cb | |
parent | c724abee0062bdaaf5a2f5e6a2c6a5823baeca51 (diff) | |
download | gcc-c283c989124ffc357ead798bdd5ef1635c8df0fa.zip gcc-c283c989124ffc357ead798bdd5ef1635c8df0fa.tar.gz gcc-c283c989124ffc357ead798bdd5ef1635c8df0fa.tar.bz2 |
(floatsidf): Correctly handle case when SImode operand overlaps the
first DFmode register.
From-SVN: r1537
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 37cf481..2c4dc8f 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -1887,6 +1887,14 @@ emit_move_insn (operands[3], operands[4]); DONE; } + + if (rtx_equal_p (operands[1], operands[3])) + { + rtx temp; + + temp = operands[3]; operands[3] = operands[5]; operands[5] = temp; + temp = operands[4]; operands[4] = operands[1]; operands[1] = temp; + } }") (define_insn "" |