[webkit-changes] [WebKit/WebKit] bb9624: [JSC] Simplify wasm to import function call
Yusuke Suzuki
noreply at github.com
Tue Jan 24 18:50:03 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bb96241cb10a9cff4dccb36c3c7f8a7a2299dc23
https://github.com/WebKit/WebKit/commit/bb96241cb10a9cff4dccb36c3c7f8a7a2299dc23
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-01-24 (Tue, 24 Jan 2023)
Changed paths:
M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
M Source/JavaScriptCore/wasm/WasmInstance.h
M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp
M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp
M Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h
M Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.cpp
Log Message:
-----------
[JSC] Simplify wasm to import function call
https://bugs.webkit.org/show_bug.cgi?id=251068
rdar://104588822
Reviewed by Justin Michaud.
We are unnecessarily complicating code generation for wasm to import function calls: we are having two cases, one for Wasm->JS and one for Wasm->Wasm.
We can just make Wasm->Wasm trampoline the same signature to Wasm->JS so that we can just call a thunk in one callsite, and which can handle both Wasm->JS
and Wasm->Wasm. This patch removes Wasm->Wasm special handling. We rename WasmToEmbedderStub to ImportFunctionStub and we set either Wasm->JS or Wasm->Wasm
trampoline to this slot.
* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::ExpressionType>::addCall):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addCall):
* Source/JavaScriptCore/wasm/WasmInstance.h:
(JSC::Wasm::Instance::offsetOfImportFunctionStub):
(JSC::Wasm::Instance::offsetOfWasmToEmbedderStub): Deleted.
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::doWasmCall):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::finalizeCreation):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::create):
Canonical link: https://commits.webkit.org/259329@main
More information about the webkit-changes
mailing list