[AArch64] Emit tighter strong atomic compare-exchange loop when comparing against... 63/198463/2
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Jun 2017 14:41:52 +0000 (14:41 +0000)
committerDongkyun Son <dongkyun.s@samsung.com>
Wed, 6 Feb 2019 15:44:58 +0000 (00:44 +0900)
commit81c87ae477be33caa487ee363c0d58a494fcd487
tree0228ad1177782c1c9c8cb25580ee0c1571597cd8
parent439de83cb9c410a9dd52d4683a6b38438c80c1f7
[AArch64] Emit tighter strong atomic compare-exchange loop when comparing against zero

* config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
Emit CBNZ inside loop when doing a strong exchange and comparing
against zero.  Generate the CC flags after the loop.

* gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c: New test.

(backported c5dcf8e544c5e98f1160ec390111b28d11d73b68)

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248832 138bc75d-0d04-0410-961f-82ee72b054a4

Change-Id: I5204c56a8d3c11b0fde6697007d601cbafdb3ccf
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c [new file with mode: 0644]