summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/rs6000-protos.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-11-14 14:59:02 -0800
committerRichard Henderson <rth@gcc.gnu.org>2011-11-14 14:59:02 -0800
commit2747a04662929c37d3bcc96c36adc861a4611710 (patch)
tree61b67f6c9c5cdb2532017d38c67327e51d93fe99 /gcc/config/rs6000/rs6000-protos.h
parent674a3581477f9d0c8f802e242eed89aa53b95032 (diff)
downloadgcc-2747a04662929c37d3bcc96c36adc861a4611710.tar.gz
rs6000: Rewrite sync patterns for atomic; expand early.
The conversion of the __sync post-reload splitters was half complete. Since there are nearly no restrictions on what may appear between LL and SC, expand all the patterns immediatly. This allows significantly easier code generation for subword atomic operations. From-SVN: r181370
Diffstat (limited to 'gcc/config/rs6000/rs6000-protos.h')
-rw-r--r--gcc/config/rs6000/rs6000-protos.h10
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h
index 23d2d2aa389..af4c95488de 100644
--- a/gcc/config/rs6000/rs6000-protos.h
+++ b/gcc/config/rs6000/rs6000-protos.h
@@ -103,13 +103,9 @@ extern rtx rs6000_emit_set_const (rtx, enum machine_mode, rtx, int);
extern int rs6000_emit_cmove (rtx, rtx, rtx, rtx);
extern int rs6000_emit_vector_cond_expr (rtx, rtx, rtx, rtx, rtx, rtx);
extern void rs6000_emit_minmax (rtx, enum rtx_code, rtx, rtx);
-extern void rs6000_emit_sync (enum rtx_code, enum machine_mode,
- rtx, rtx, rtx, rtx, bool);
-extern void rs6000_split_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx);
-extern void rs6000_split_compare_and_swap (rtx, rtx, rtx, rtx, rtx);
-extern void rs6000_expand_compare_and_swapqhi (rtx, rtx, rtx, rtx);
-extern void rs6000_split_compare_and_swapqhi (rtx, rtx, rtx, rtx, rtx, rtx);
-extern void rs6000_split_lock_test_and_set (rtx, rtx, rtx, rtx);
+extern void rs6000_expand_atomic_compare_and_swap (rtx op[]);
+extern void rs6000_expand_atomic_exchange (rtx op[]);
+extern void rs6000_expand_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx);
extern void rs6000_emit_swdiv (rtx, rtx, rtx, bool);
extern void rs6000_emit_swrsqrt (rtx, rtx);
extern void output_toc (FILE *, rtx, int, enum machine_mode);