sparc: Convert to atomic_compare_and_swap.
commit66533357aed8bf38d40afbf4e6cd19d060cf2cd5
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Nov 2011 15:53:45 +0000 (30 15:53 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Nov 2011 15:53:45 +0000 (30 15:53 +0000)
tree0b9d68c7e11d6da48ca5b48d28b9b306c7fb2823
parentbef6482d2265ece9aa0b71096d0d1a662e29b25f
sparc: Convert to atomic_compare_and_swap.

        * config/sparc/constraints.md ("w"): New.
        * config/sparc/predicates.md (mem_noofs_operand): New.
        * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
        Generate the boolean result of the atomic_compare_exchange.
        (sparc_expand_compare_and_swap): New.
        * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
        (atomic_compare_and_swap<I48MODE>_1): Rename from
        *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
        (*atomic_compare_and_swapdi_v8plus): Rename from
        *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
        (sync_compare_and_swap<I12MODE>): Remove.
        (sync_compare_and_swap<I48MODE>): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181851 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/sparc/constraints.md
gcc/config/sparc/predicates.md
gcc/config/sparc/sparc-protos.h
gcc/config/sparc/sparc.c
gcc/config/sparc/sync.md