This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r190640 - in /branches/google/gcc-4_7/gcc: Chan...
- From: tejohnson at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Fri, 24 Aug 2012 04:37:21 -0000
- Subject: r190640 - in /branches/google/gcc-4_7/gcc: Chan...
Author: tejohnson
Date: Fri Aug 24 04:37:20 2012
New Revision: 190640
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190640
Log:
This replaces the set of trunk patches I had earlier backported and just
reverted. It addresses only the specific problem of the and*i_1 patterns
preferring to match an earlier set of patterns "r,0,Z" when the source and
dest registers are the same, thus preferring to keep the instruction as an
"andw" instead of using a zero-extending move when the constant is 0xff. We now
will prefer to convert to a zero-extending move when the constant is 0xff and
the machine has LCP stalls.
Google ref b/6615073.
2012-08-23 Teresa Johnson <tejohnson@google.com>
* config/i386/i386.md (anddi_1): Add new r,qm,Lh pattern
first to catch an and with 0xff that would be turned into
an andw on machines with length-changing prefix stalls,
and instead convert it into a zero-extending move.
(andsi_1, andhi_1): Ditto.
* config/i386/constraints.md (La): Rename from "L".
(Lh): New constraint to match possible LCP stalling ands.
* config/i386/i386.c (ix86_binary_operator_ok): Update
for rename of "L" constraint.
Modified:
branches/google/gcc-4_7/gcc/ChangeLog.google-4_7
branches/google/gcc-4_7/gcc/config/i386/constraints.md
branches/google/gcc-4_7/gcc/config/i386/i386.c
branches/google/gcc-4_7/gcc/config/i386/i386.md