i386.h (x86_use_xchgb): New.
authorUros Bizjak <uros@gcc.gnu.org>
Fri, 16 Feb 2007 18:36:01 +0000 (19:36 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 16 Feb 2007 18:36:01 +0000 (19:36 +0100)
commitfa681e3960f7fc93b48e06bfb4131371a9e9b3ad
tree1833442ed772629bbb3c8f04dd569abd773e57b0
parentce359ed91662f2c14f882613a094f75110a0eba2
i386.h (x86_use_xchgb): New.

        * config/i386/i386.h (x86_use_xchgb): New.
        (TARGET_USE_XCHGB): New macro.
        * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
        * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
        Split after reload into bswaphi for shifts of 8.
        (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
        (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
        or when optimizing for size.

testsuite/ChangeLog:

        * gcc.target/i386/builtin-bswap-1.c: Remove -march=nocona.
        * gcc.target/i386/builtin-bswap-3.c: Ditto.
        * gcc.target/i386/xchg-1.c: New test.
        * gcc.target/i386/xchg-2.c: New test.

From-SVN: r122049
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/builtin-bswap-1.c
gcc/testsuite/gcc.target/i386/builtin-bswap-3.c
gcc/testsuite/gcc.target/i386/xchg-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/xchg-2.c [new file with mode: 0644]