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: | 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.