Bug 273556
Summary: | [Win] Use SystemV ABI for JIT entrypoints in YarrJIT on Windows | ||
---|---|---|---|
Product: | WebKit | Reporter: | Ian Grunert <ian.grunert> |
Component: | JavaScriptCore | Assignee: | 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 |
Ian Grunert
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
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/127751244>
Ian Grunert
Pull request: https://github.com/WebKit/WebKit/pull/30197
EWS
Committed 280393@main (778df0f67e60): <https://commits.webkit.org/280393@main>
Reviewed commits have been landed. Closing PR #30197 and removing active labels.