Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 47d91b3b9badc4625d8b324ad29fa64f952cb5e7
https://github.com/WebKit/WebKit/commit/47d91b3b9badc4625d8b324ad29fa64f952cb5e7
Author: Yusuke Suzuki <[email protected]>
Date: 2023-01-23 (Mon, 23 Jan 2023)
Changed paths:
M Source/JavaScriptCore/llint/LowLevelInterpreter.asm
M Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
M Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
M Source/JavaScriptCore/llint/WebAssembly.asm
M Source/JavaScriptCore/runtime/VM.h
M Source/JavaScriptCore/wasm/WasmIRGeneratorHelpers.h
M Source/JavaScriptCore/wasm/WasmOperations.cpp
M Source/JavaScriptCore/wasm/WasmOperationsInlines.h
M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp
Log Message:
-----------
[JSC] Always use Wasm::Callee for wasm function callee
https://bugs.webkit.org/show_bug.cgi?id=251026
rdar://104563575
Reviewed by Tadeu Zagallo.
This patch removes hack for wasm catch. Previously we are setting JSCell on
callee when throwing an error from wasm because
LLInt catch code etc. strongly assumes JSCell on callee slot and retrieving VM
from that. And to allow this rewrite, we had
a side table VM::calleeForWasmCatch which holds true Wasm::Callee and then we
needed to replace it later.
But we can now get VM easily even in wasm frame because we strongly guarantee
that CodeBlock slot now holds Wasm::Instance*
if a frame is wasm frame. This patch fixes the code so that VM retrieval
becomes as follows.
if (callee is wasm)
get VM from wasmInstance in codeBlock slot
else
get VM from callee cell
This removes the hack for wasm exception, and we can remove
VM::calleeForWasmCatch.
* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:
* Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:
* Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:
* Source/JavaScriptCore/llint/WebAssembly.asm:
* Source/JavaScriptCore/runtime/VM.h:
(JSC::VM::calleeForWasmCatchOffset): Deleted.
* Source/JavaScriptCore/wasm/WasmIRGeneratorHelpers.h:
(JSC::Wasm::emitCatchPrologueShared):
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
* Source/JavaScriptCore/wasm/WasmOperationsInlines.h:
(JSC::Wasm::throwWasmToJSException):
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::WASM_SLOW_PATH_DECL):
Canonical link: https://commits.webkit.org/259229@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes