Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0c931c35ab1cb17db30e286a67c6e75fd625c8e0
      
https://github.com/WebKit/WebKit/commit/0c931c35ab1cb17db30e286a67c6e75fd625c8e0
  Author: Yusuke Suzuki <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to