[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