]> git.ipfire.org Git - thirdparty/gcc.git/commit
[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>
Mon, 16 May 2022 12:57:37 +0000 (12:57 +0000)
commit407adcb310df7c85387a02f9b0d5f1df770258e9
treee3284966e6e8b7bc4245b2c21ce7a5a4dda46d83
parentc076ae572e03363fcc2822b2597faa4e311ba099
[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.c (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.c
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