mirror of git://gcc.gnu.org/git/gcc.git
The LSE2 ifunc for 16-byte atomic load requires a barrier before the LDP - without it, it effectively has Load-AcquirePC semantics similar to LDAPR, which is less restrictive than what __ATOMIC_SEQ_CST requires. This patch fixes this and adds comments to make it easier to see which sequence is used for each case. Use a load/store exclusive loop for store to simplify testing memory ordering is correct (it is slightly faster too). libatomic/ PR libgcc/108891 * config/linux/aarch64/atomic_16.S: Fix libat_load_16_i1. Add comments describing the memory order. |
||
|---|---|---|
| .. | ||
| aarch64 | ||
| arm | ||
| ia64 | ||
| linux | ||
| mingw | ||
| nvptx | ||
| posix | ||
| powerpc | ||
| rtems | ||
| s390 | ||
| x86 | ||
| t-aix | ||