Bug 273556

Summary: [Win] Use SystemV ABI for JIT entrypoints in YarrJIT on Windows
Product: WebKit Reporter: Ian Grunert <ian.grunert>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: Hironori.Fujii, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: PC   
OS: Windows 10   

Description Ian Grunert 2024-05-01 10:49:30 PDT
clang-cl gives us the option of changing a function to use the SystemV ABI:

https://clang.llvm.org/docs/AttributeReference.html#sysv-abi

By using this on functions on the C++ / JIT boundaries, we can use the same codepaths for function calls and the same register mappings between Windows and Linux / Mac / BSD.

Yarr JIT is a good self-contained place to try out this change. We should be able to enable a few disabled features in Yarr JIT on Windows in the process:

YARR_JIT_ALL_PARENS_EXPRESSIONS
YARR_JIT_REGEXP_TEST_INLINE
YARR_JIT_BACKREFERENCES
YARR_JIT_BACKREFERENCES_FOR_16BIT_EXPRS
Comment 1 Radar WebKit Bug Importer 2024-05-08 10:50:16 PDT
<rdar://problem/127751244>
Comment 2 Ian Grunert 2024-06-26 11:05:13 PDT
Pull request: https://github.com/WebKit/WebKit/pull/30197
Comment 3 EWS 2024-06-26 14:52:09 PDT
Committed 280393@main (778df0f67e60): <https://commits.webkit.org/280393@main>

Reviewed commits have been landed. Closing PR #30197 and removing active labels.