[webkit-changes] [WebKit/WebKit] f4e684: [JSC] Do not fallback to slow C++ JSBoundFunction ...

Yusuke Suzuki noreply at github.com
Wed Dec 13 14:21:29 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f4e684d4ff33534862ab452e73691e49a36f8ed3
      https://github.com/WebKit/WebKit/commit/f4e684d4ff33534862ab452e73691e49a36f8ed3
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-12-13 (Wed, 13 Dec 2023)

  Changed paths:
    M Source/JavaScriptCore/jit/JITOperations.cpp
    M Source/JavaScriptCore/jit/JITOperations.h
    M Source/JavaScriptCore/jit/ThunkGenerators.cpp
    M Source/JavaScriptCore/runtime/VM.cpp

  Log Message:
  -----------
  [JSC] Do not fallback to slow C++ JSBoundFunction code
https://bugs.webkit.org/show_bug.cgi?id=266311
rdar://119582604

Reviewed by Justin Michaud.

Let's not fallback to slow C++ JSBoundFunction code, which invokes function through interpreter again.
We can just materialize JIT code from JSBoundFunction thunk and continue running from JS world instead of jumping to C++ and jumping back to JS.

* Source/JavaScriptCore/jit/JITOperations.cpp:
(JSC::materializeTargetCode):
(JSC::JSC_DEFINE_JIT_OPERATION):
* Source/JavaScriptCore/jit/JITOperations.h:
* Source/JavaScriptCore/jit/ThunkGenerators.cpp:
(JSC::boundFunctionCallGenerator):
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::thunkGeneratorForIntrinsic):

Canonical link: https://commits.webkit.org/272004@main




More information about the webkit-changes mailing list