aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2013-10-17 19:30:31 +0200
committerUros Bizjak <uros@gcc.gnu.org>2013-10-17 19:30:31 +0200
commit6f1abb55073c46b93155e13eb5308aee7f13dd5e (patch)
tree2c20350c2137a725a08e7a360ae1b7782acf04b4 /gcc/config
parent5ce6ee81f97df13defd467e52a429607c1596c26 (diff)
downloadgcc-6f1abb55073c46b93155e13eb5308aee7f13dd5e.zip
gcc-6f1abb55073c46b93155e13eb5308aee7f13dd5e.tar.gz
gcc-6f1abb55073c46b93155e13eb5308aee7f13dd5e.tar.bz2
i386.c (ix86_fixup_binary_operands): When both source operands are in memory...
* config/i386/i386.c (ix86_fixup_binary_operands): When both source operands are in memory, prefer to force non-matched operand 1 to the register. From-SVN: r203785
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/i386.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index c24ce36..c2ad5b6 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -16897,8 +16897,10 @@ ix86_fixup_binary_operands (enum rtx_code code, enum machine_mode mode,
src2 = force_reg (mode, src2);
src1 = src2;
}
- else
+ else if (rtx_equal_p (dst, src1))
src2 = force_reg (mode, src2);
+ else
+ src1 = force_reg (mode, src1);
}
/* If the destination is memory, and we do not have matching source