[webkit-changes] [WebKit/WebKit] da370a: [JSC] Make all slow-path calls for IC thunk in Bas...

Yusuke Suzuki noreply at github.com
Wed Sep 13 17:43:26 PDT 2023


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

  Changed paths:
    M Source/JavaScriptCore/jit/JIT.h
    M Source/JavaScriptCore/jit/JITCall.cpp
    M Source/JavaScriptCore/jit/JITInlines.h
    M Source/JavaScriptCore/jit/JITOpcodes.cpp

  Log Message:
  -----------
  [JSC] Make all slow-path calls for IC thunk in BaselineJIT DataIC
https://bugs.webkit.org/show_bug.cgi?id=261480
rdar://115392198

Reviewed by Mark Lam.

Now we aligned all register usage in BaselineJIT DataIC. So we can just use DataIC
slow path thunk in all places including more complicated opcodes.

1. instanceof should have slow path thunk in the same way to the other IC. Just doing it.
2. iterator_next / iterator_open includes some complicated get_by_id ops inside it.
   Let's use get_by_id's slow path thunk in the slow path of them. This is totally OK since
   they are using the same registers to get_by_id.

* Source/JavaScriptCore/jit/JIT.h:
* Source/JavaScriptCore/jit/JITCall.cpp:
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emitSlow_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
(JSC::JIT::emitSlow_op_iterator_next):
* Source/JavaScriptCore/jit/JITInlines.h:
(JSC::JIT::emitValueProfilingSite):
* Source/JavaScriptCore/jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::slow_op_instanceof_callSlowOperationThenCheckExceptionGenerator):

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




More information about the webkit-changes mailing list