diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2013-10-17 19:30:31 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2013-10-17 19:30:31 +0200 |
commit | 6f1abb55073c46b93155e13eb5308aee7f13dd5e (patch) | |
tree | 2c20350c2137a725a08e7a360ae1b7782acf04b4 /gcc/config | |
parent | 5ce6ee81f97df13defd467e52a429607c1596c26 (diff) | |
download | gcc-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.c | 4 |
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 |