sparc: Convert to atomic_compare_and_swap.
authorRichard Henderson <rth@redhat.com>
Wed, 30 Nov 2011 15:53:45 +0000 (07:53 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 30 Nov 2011 15:53:45 +0000 (07:53 -0800)
commit470b6e51608048cdf9e18dafe7dd41b089f0cfe4
tree0b9d68c7e11d6da48ca5b48d28b9b306c7fb2823
parentcfe8fee796ae2d675d22b3e6301829772f188711
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.

From-SVN: r181851
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