diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2005-07-09 11:28:23 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-07-09 11:28:23 -0700 |
commit | 38f31687815ca01c8851a8322e67e75e2afce1ab (patch) | |
tree | fa5c58ca03b4af0a62ad46d5f7e3bd0344b48e93 /gcc/config/alpha/alpha-protos.h | |
parent | 563cb6be0f31cea2cece0482aff2ede0acc1d259 (diff) | |
download | gcc-38f31687815ca01c8851a8322e67e75e2afce1ab.zip gcc-38f31687815ca01c8851a8322e67e75e2afce1ab.tar.gz gcc-38f31687815ca01c8851a8322e67e75e2afce1ab.tar.bz2 |
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
Diffstat (limited to 'gcc/config/alpha/alpha-protos.h')
-rw-r--r-- | gcc/config/alpha/alpha-protos.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/alpha/alpha-protos.h b/gcc/config/alpha/alpha-protos.h index d854e35..5dd5734 100644 --- a/gcc/config/alpha/alpha-protos.h +++ b/gcc/config/alpha/alpha-protos.h @@ -103,7 +103,13 @@ extern void alpha_emit_xfloating_arith (enum rtx_code, rtx[]); extern void alpha_emit_xfloating_cvt (enum rtx_code, rtx[]); extern void alpha_split_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx); extern void alpha_split_compare_and_swap (rtx, rtx, rtx, rtx, rtx); +extern void alpha_expand_compare_and_swap_12 (rtx, rtx, rtx, rtx); +extern void alpha_split_compare_and_swap_12 (enum machine_mode, rtx, rtx, + rtx, rtx, rtx, rtx, rtx); extern void alpha_split_lock_test_and_set (rtx, rtx, rtx, rtx); +extern void alpha_expand_lock_test_and_set_12 (rtx, rtx, rtx); +extern void alpha_split_lock_test_and_set_12 (enum machine_mode, rtx, rtx, + rtx, rtx, rtx); #endif extern rtx alpha_need_linkage (const char *, int); |