[webkit-changes] [WebKit/WebKit] 30b290: [JSC] Implement atomic operations in new wasm base...

Yusuke Suzuki noreply at github.com
Fri Feb 17 12:08:26 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 30b2907267b216913a9e14bfa65ab27d6b1a5b4b
      https://github.com/WebKit/WebKit/commit/30b2907267b216913a9e14bfa65ab27d6b1a5b4b
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-02-17 (Fri, 17 Feb 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/AssemblyComments.h
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
    M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp
    M Source/JavaScriptCore/wasm/generateWasmOpsHeader.py

  Log Message:
  -----------
  [JSC] Implement atomic operations in new wasm baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=252457
rdar://105581013

Reviewed by Justin Michaud.

This patch implements atomics in new wasm baseline JIT. And it also fixes some issues.

1. Implement all wasm atomics in new wasm baseline JIT.
2. We found that new baseline's emitCCall's results are wrong since C-Call and Wasm-Call have difference in calling convention,
   in particular, return values. We, for now, fix the return values. We should decouple Wasm-Call calling convention things from
   emitCCall since this is C-Call.
3. Fix disassembly conditions.
4. Show AssemblyComments when needDisassemblySupport is true.

* Source/JavaScriptCore/assembler/AssemblyComments.h:
(JSC::AssemblyCommentRegistry::registerCodeRange):
(JSC::AssemblyCommentRegistry::unregisterCodeRange):
(JSC::AssemblyCommentRegistry::comment):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::sizeOfLoadOp):
(JSC::Wasm::BBQJIT::typeOfLoadOp):
(JSC::Wasm::BBQJIT::accessWidth):
(JSC::Wasm::BBQJIT::sizeOfAtomicOpMemoryAccess):
(JSC::Wasm::BBQJIT::emitSanitizeAtomicResult):
(JSC::Wasm::BBQJIT::emitAtomicOpGeneric):
(JSC::Wasm::BBQJIT::emitAtomicLoadOp):
(JSC::Wasm::BBQJIT::atomicLoad):
(JSC::Wasm::BBQJIT::emitAtomicStoreOp):
(JSC::Wasm::BBQJIT::atomicStore):
(JSC::Wasm::BBQJIT::emitAtomicBinaryRMWOp):
(JSC::Wasm::BBQJIT::atomicBinaryRMW):
(JSC::Wasm::BBQJIT::emitAtomicCompareExchange):
(JSC::Wasm::BBQJIT::atomicCompareExchange):
(JSC::Wasm::BBQJIT::atomicWait):
(JSC::Wasm::BBQJIT::atomicNotify):
(JSC::Wasm::BBQJIT::atomicFence):
(JSC::Wasm::BBQJIT::emitCCall):
* Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::didCompleteCompilation):

Canonical link: https://commits.webkit.org/260460@main




More information about the webkit-changes mailing list