]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/arc/arc.cc
[ARC] Add support for atomic memory built-in.
authorClaudiu Zissulescu <claziss@synopsys.com>
Thu, 10 Dec 2015 13:32:21 +0000 (14:32 +0100)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Thu, 10 Dec 2015 13:32:21 +0000 (14:32 +0100)
commitb8a64b7f5d699776983eab2c07125523e96bc6ea
treea9808e70899f6acf23ab79a385b0f2232a3e4e98
parent41eefe133f91ffeead07774a8f68040135e5fe1c
[ARC] Add support for atomic memory built-in.

gcc/

2015-12-10  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc-protos.h (arc_expand_atomic_op): Prototype.
(arc_split_compare_and_swap): Likewise.
(arc_expand_compare_and_swap): Likewise.
* config/arc/arc.c (arc_init): Check usage atomic option.
(arc_pre_atomic_barrier): New function.
(arc_post_atomic_barrier): Likewise.
(emit_unlikely_jump): Likewise.
(arc_expand_compare_and_swap_qh): Likewise.
(arc_expand_compare_and_swap): Likewise.
(arc_split_compare_and_swap): Likewise.
(arc_expand_atomic_op): Likewise.
* config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): New C macro.
(ASM_SPEC): Enable mlock option when matomic is used.
* config/arc/arc.md (UNSPEC_ARC_MEMBAR): Define.
(VUNSPEC_ARC_CAS): Likewise.
(VUNSPEC_ARC_LL): Likewise.
(VUNSPEC_ARC_SC): Likewise.
(VUNSPEC_ARC_EX): Likewise.
* config/arc/arc.opt (matomic): New option.
* config/arc/constraints.md (ATO): New constraint.
* config/arc/predicates.md (mem_noofs_operand): New predicate.
* doc/invoke.texi: Document -matomic.
* config/arc/atomic.md: New file.

gcc/testsuite

2015-12-10  Claudiu Zissulescu  <claziss@synopsys.com>

* lib/target-supports.exp (check_effective_target_arc_atomic): New
function.
(check_effective_target_sync_int_long): Add checks for ARC atomic
feature.
(check_effective_target_sync_char_short): Likewise.

From-SVN: r231509
gcc/ChangeLog
gcc/config/arc/arc-protos.h
gcc/config/arc/arc.c
gcc/config/arc/arc.h
gcc/config/arc/arc.md
gcc/config/arc/arc.opt
gcc/config/arc/constraints.md
gcc/config/arc/predicates.md
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/lib/target-supports.exp