[webkit-changes] [WebKit/WebKit] 98bc22: [JSC] Don't clobber argumentGPR0 and argumentGPR1 ...
Yusuke Suzuki
noreply at github.com
Sun Mar 12 18:17:20 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 98bc2206cd1ab283d8500d833ddcba7d0eddc233
https://github.com/WebKit/WebKit/commit/98bc2206cd1ab283d8500d833ddcba7d0eddc233
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-03-12 (Sun, 12 Mar 2023)
Changed paths:
M Source/JavaScriptCore/jit/GPRInfo.h
M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
M Source/JavaScriptCore/wasm/WasmOperations.cpp
M Source/JavaScriptCore/wasm/WasmThunks.cpp
Log Message:
-----------
[JSC] Don't clobber argumentGPR0 and argumentGPR1 for tiering up in wasm
https://bugs.webkit.org/show_bug.cgi?id=253802
rdar://106622369
Reviewed by Justin Michaud.
Tiering up check should just use GPRInfo::nonPreservedNonArgumentGPR0 as a scratch.
As a result, GPRInfo::argumentGPR1 is no longer clobbered. And GPRInfo::argumentGPR0 is
clobbered *only when we definitely tier up*. So in the normal cases (not tiering up),
we no longer clobber both registers. Thus we do not need to say that they are clobbered
for tiering up checks. This avoids always saving these arguments to the stack.
* Source/JavaScriptCore/jit/GPRInfo.h:
* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::ExpressionType>::emitEntryTierUpCheck):
(JSC::Wasm::ExpressionType>::emitLoopTierUpCheck):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::emitEntryTierUpCheck):
(JSC::Wasm::BBQJIT::addTopLevel):
(JSC::Wasm::BBQJIT::emitLoopTierUpCheck):
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::doOSREntry):
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
* Source/JavaScriptCore/wasm/WasmThunks.cpp:
(JSC::Wasm::triggerOMGEntryTierUpThunkGeneratorImpl):
Canonical link: https://commits.webkit.org/261557@main
More information about the webkit-changes
mailing list