[webkit-changes] [WebKit/WebKit] dde2af: [JSC] Always claim bounds-checking-size register a...
Yusuke Suzuki
noreply at github.com
Fri Feb 17 15:49:10 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: dde2af69c8970f8ac8f77b16cd17571b8dc0bed5
https://github.com/WebKit/WebKit/commit/dde2af69c8970f8ac8f77b16cd17571b8dc0bed5
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-02-17 (Fri, 17 Feb 2023)
Changed paths:
M Source/JavaScriptCore/jit/RegisterSet.cpp
M Source/JavaScriptCore/jit/RegisterSet.h
M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
M Source/JavaScriptCore/wasm/js/JSToWasm.cpp
M Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp
Log Message:
-----------
[JSC] Always claim bounds-checking-size register as pinned
https://bugs.webkit.org/show_bug.cgi?id=252508
rdar://105614733
Reviewed by Justin Michaud.
Except only one place, every place passes BoundChecking mode to wasmPinnedRegisters.
Eventually tail-call also clobbers it, and wasm LLInt / new Baseline clobber it.
So, let's alwasy include boundsCheckingSizeRegister as a part of wasmPinnedRegisters.
This difference only affects on JSToWasm code, which is slow code so it doesn't matter (this is not fast IC path).
This fixes many crashes with new wasm baseline JIT.
* Source/JavaScriptCore/jit/RegisterSet.cpp:
(JSC::RegisterSetBuilder::wasmPinnedRegisters):
* Source/JavaScriptCore/jit/RegisterSet.h:
* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::ExpressionType>::addCall):
(JSC::Wasm::ExpressionType>::emitIndirectCall):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::addCall):
* Source/JavaScriptCore/wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
* Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::calleeSaves const):
Canonical link: https://commits.webkit.org/260477@main
More information about the webkit-changes
mailing list