Concurrency primitives, safe memory reclamation mechanisms and non-blocking (including lock-free) data structures designed to aid in the research, design and implementation of high performance concurrent systems developed in C99+.
I'm looking at ck_pr_cas_64_2() and ck_pr_cas_64_2_value() implementations in include/gcc/aarch64/ck_pr.h. I think the embedded asm statements in those functions are missing "memory" and "cc" clobbers. Other CAS implementation in the same file have them. Also, implementations of the same functions for x86_64 have those clobbers.
For example, this is from include/gcc/aarch64/ck_pr.h:
I'm looking at ck_pr_cas_64_2() and ck_pr_cas_64_2_value() implementations in include/gcc/aarch64/ck_pr.h. I think the embedded asm statements in those functions are missing
"memory"
and"cc"
clobbers. Other CAS implementation in the same file have them. Also, implementations of the same functions for x86_64 have those clobbers.For example, this is from include/gcc/aarch64/ck_pr.h:
And this is from include/gcc/x86_64/ck_pr.h:
Shouldn't AArch64 implementations also clobber
"memory"
and"cc"
?