[webkit-changes] [WebKit/WebKit] 0c931c: [JSC] Fix wasm SetGlobal

Yusuke Suzuki noreply at github.com
Fri Feb 17 21:20:48 PST 2023


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

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp

  Log Message:
  -----------
  [JSC] Fix wasm SetGlobal
https://bugs.webkit.org/show_bug.cgi?id=252513
rdar://105619803

Reviewed by Mark Lam.

Fix emitWriteBarrier code.

1. It is passing cellState to operation, this is not correct
2. Portable Global should pass JSWebAssemblyGlobal, not JSWebAssemblyInstance
3. emitWriteBarrier code was jumping over emitCCall. This is wrong since flush can happen only one path.

To fix it, we introduce flushRegisters and DFG like semantics. So, we first flush everything for this emitWriteBarrier,
and then just call a function with callOperation.

* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::emitWriteBarrier):
(JSC::Wasm::BBQJIT::setGlobal):
(JSC::Wasm::BBQJIT::emitWriteBarrierForJSWrapper): Deleted.

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




More information about the webkit-changes mailing list