i386.c (x86_cmpxchg, x86_xadd): New.
authorRichard Henderson <rth@redhat.com>
Thu, 14 Apr 2005 23:42:50 +0000 (16:42 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 14 Apr 2005 23:42:50 +0000 (16:42 -0700)
commit1ef45b7773cfcce6e6e952b8a15713bd321adc9e
tree4e525ea00c5d64969cf58aac3b3103b4bb6779d2
parent48ae6c138ca30c4c5e876a0be47c9a0b5c8bf5c2
i386.c (x86_cmpxchg, x86_xadd): New.

        * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
        (ix86_compare_emitted): New.
        (ix86_expand_compare): Use ix86_compare_emitted if set.
        (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
        and ix86_compare_op0 are set.
        * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
        (TARGET_CMPXCHG, TARGET_XADD): New.
        (ix86_compare_emitted): Declare.
        * config/i386/i386.md: Include sync.md
        (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
        (UNSPECV_XCHG, UNSPECV_LOCK): New.
        * config/i386/sync.md: New file.

From-SVN: r98155
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/config/i386/sync.md [new file with mode: 0644]