This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]