[libpas] Implement atomics in inline assembly if compiler is using ARM64
Created attachment 447194 [details] Patch
Created attachment 447197 [details] Patch
Created attachment 447222 [details] Patch
Comment on attachment 447222 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=447222&action=review I'm not sure how much I care, but it would be nice if store_atomic was a pas_utils thing. > Source/bmalloc/libpas/src/libpas/pas_lock.h:116 > #if PAS_COMPILER(CLANG) > +#if PAS_COMPILER(CLANG_ARM64_ATOMICS_DEPENDENCY) > + asm volatile ( > + "stlrb wzr, [%x[ptr]]\t\n" > + /* outputs */ : > + /* inputs */ : [ptr]"r"(&lock->lock) > + /* clobbers */ : "memory" > + ); > +#else > __c11_atomic_store((_Atomic bool*)&lock->lock, false, __ATOMIC_SEQ_CST); > +#endif > #else > __atomic_store_n((bool*)&lock->lock, false, __ATOMIC_SEQ_CST); > #endif I think it would be way better if this atomic store thing was factored out into pas_utils.h.
Comment on attachment 447222 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=447222&action=review >> Source/bmalloc/libpas/src/libpas/pas_lock.h:116 >> #endif > > I think it would be way better if this atomic store thing was factored out into pas_utils.h. OK! Extracted atomic part.
Committed r287092 (245284@trunk): <https://commits.webkit.org/245284@trunk>
<rdar://problem/86535186>