[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