Bug 234333

Summary: [libpas] Implement atomics in inline assembly if compiler is using ARM64
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: New BugsAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED FIXED    
Severity: Normal CC: fpizlo, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Patch fpizlo: review+

Yusuke Suzuki
Reported 2021-12-14 19:50:43 PST
[libpas] Implement atomics in inline assembly if compiler is using ARM64
Attachments
Patch (23.35 KB, patch)
2021-12-14 19:57 PST, Yusuke Suzuki
no flags
Patch (23.35 KB, patch)
2021-12-14 20:16 PST, Yusuke Suzuki
no flags
Patch (23.35 KB, patch)
2021-12-15 04:36 PST, Yusuke Suzuki
fpizlo: review+
Yusuke Suzuki
Comment 1 2021-12-14 19:57:11 PST
Yusuke Suzuki
Comment 2 2021-12-14 20:16:50 PST
Yusuke Suzuki
Comment 3 2021-12-15 04:36:42 PST
Filip Pizlo
Comment 4 2021-12-15 10:02:07 PST
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.
Yusuke Suzuki
Comment 5 2021-12-15 11:29:18 PST
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.
Yusuke Suzuki
Comment 6 2021-12-15 11:46:46 PST
Radar WebKit Bug Importer
Comment 7 2021-12-15 11:47:41 PST
Note You need to log in before you can comment on or make changes to this bug.