alpha.c (emit_insxl, [...]): New functions.
authorRichard Henderson <rth@gcc.gnu.org>
Sat, 9 Jul 2005 18:28:23 +0000 (11:28 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sat, 9 Jul 2005 18:28:23 +0000 (11:28 -0700)
commit38f31687815ca01c8851a8322e67e75e2afce1ab
treefa5c58ca03b4af0a62ad46d5f7e3bd0344b48e93
parent563cb6be0f31cea2cece0482aff2ede0acc1d259
alpha.c (emit_insxl, [...]): New functions.

        * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
        alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
        alpha_split_lock_test_and_set_12): New functions.
        * config/alpha/alpha-protos.h: Update.
        * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
        UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
        * config/alpha/sync.md (I12MODE): New.
        (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
        (sync_<fetchop_name><I48MODE>): Likewise.
        (sync_nand<I48MODE>): Likewise.
        (sync_old_<fetchop_name><I48MODE>): Likewise.
        (sync_new_<fetchop_name><I48MODE>): Likewise.
        (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
        (sync_compare_and_swap<I48MODE>): Likewise.
        (sync_lock_test_and_set<I48MODE>): Likewise.
        (sync_compare_and_swap<I12MODE>): New.
        (sync_compare_and_swap<I12MODE>_1): New.
        (sync_lock_test_and_set<I12MODE>): New.
        (sync_lock_test_and_set<I12MODE>_1): New.

        * lib/target-supports.exp (check_effective_target_sync_char_short):
        Add alpha.

From-SVN: r101833
gcc/ChangeLog
gcc/config/alpha/alpha-protos.h
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.md
gcc/config/alpha/sync.md
gcc/testsuite/ChangeLog
gcc/testsuite/lib/target-supports.exp