[webkit-changes] [WebKit/WebKit] 9ff5c9: [JSC] Add JIT support for RegExp ignore case Backr...

Michael Saboff noreply at github.com
Tue Mar 26 03:04:49 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9ff5c9b7dce64de5003500c07075f884f0e14a32
      https://github.com/WebKit/WebKit/commit/9ff5c9b7dce64de5003500c07075f884f0e14a32
  Author: Michael Saboff <msaboff at apple.com>
  Date:   2024-03-26 (Tue, 26 Mar 2024)

  Changed paths:
    M Source/JavaScriptCore/yarr/YarrJIT.cpp
    M Source/JavaScriptCore/yarr/YarrJIT.h
    M Source/WTF/wtf/PlatformEnable.h

  Log Message:
  -----------
  [JSC] Add JIT support for RegExp ignore case Backreferences in 16-bit patterns
https://bugs.webkit.org/show_bug.cgi?id=271617
rdar://125333123

Reviewed by Yusuke Suzuki.

Added code to call out to a new operationAreCanonicallyEquivalent() C++ helper, which wraps the inlined areCanonicallyEquivalent().
Given that the Yarr JIT has fixed assigned registers, added a thunk that saves all caller saves, moves the arguments from the
Yarr fixed registers to what operationAreCanonicallyEquivalent() expects and then calls it.  Upon return from the operation, we
restore registers, put the comparison return in a known register and return back to the Yarr JIT code that called out.

This change supports ARM64 and X86_64 (non-Windows) only.  Work should only be needed for the coding of the thunk generator for
other platforms with sufficient registers for general backrefernce processing in the Yarr JIT.

* Source/JavaScriptCore/yarr/YarrJIT.cpp:
(JSC::Yarr::JSC_DEFINE_JIT_OPERATION):
(JSC::Yarr::jitCompileInlinedTest):
* Source/JavaScriptCore/yarr/YarrJIT.h:
* Source/WTF/wtf/PlatformEnable.h:

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list