[AArch64] add barriers to ool __sync builtins
authorSebastian Pop <spop@amazon.com>
Mon, 18 Apr 2022 15:13:20 +0000 (15:13 +0000)
committerSebastian Pop <spop@amazon.com>
Fri, 13 May 2022 17:09:43 +0000 (17:09 +0000)
commitbc25483c055d62f94f8c289f80843dda3c4a6ff4
tree05cf331e38bf5d28f7f948e909e8d9df3a528a50
parent010af1040bcf4870c8f1aac88a7b1538f622858b
[AArch64] add barriers to ool __sync builtins

2022-05-13  Sebastian Pop  <spop@amazon.com>

gcc/
PR target/105162
* config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
of str array.
* config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
memmodel_from_int and handle MEMMODEL_SYNC_*.
(DEF0): Add __aarch64_*_sync functions.

gcc/testsuite/
PR target/105162
* gcc.target/aarch64/sync-comp-swap-ool.c: New.
* gcc.target/aarch64/sync-op-acquire-ool.c: New.
* gcc.target/aarch64/sync-op-full-ool.c: New.
* gcc.target/aarch64/target_attr_20.c: Update check.
* gcc.target/aarch64/target_attr_21.c: Same.

libgcc/
PR target/105162
* config/aarch64/lse.S: Define BARRIER and handle memory MODEL 5.
* config/aarch64/t-lse: Add a 5th memory model for _sync functions.
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.cc
gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/target_attr_20.c
gcc/testsuite/gcc.target/aarch64/target_attr_21.c
libgcc/config/aarch64/lse.S
libgcc/config/aarch64/t-lse