Enable FTL on Windows#30580
Conversation
|
EWS run on previous version of this PR (hash b31a80e) Details |
There was a problem hiding this comment.
We should make countLeadingZero work on Windows too.
There was a problem hiding this comment.
And we should explore why this is not correctly working on Windows.
There was a problem hiding this comment.
The countLeadingZero implementation for testClz* tests had an off-by-one
error on Windows - using builtin __lzcnt64 and __lzcnt instead.
Using __lzcnt64 etc. is not right. We should know why this does not work on Windows, and we need to fix it.
There was a problem hiding this comment.
Fixed - inside countLeadingZero we were left shifting a long (1L) instead of an unsigned long long (1ull) by the bitcount.
On debug builds this was using a 32 bit signed long, on release builds a 64 bit signed long. That gave us the off-by-one on release builds.
b31a80e to
0f4852f
Compare
|
EWS run on previous version of this PR (hash 0f4852f) Details |
0f4852f to
1f59e73
Compare
|
EWS run on current version of this PR (hash 1f59e73) Details |
https://bugs.webkit.org/show_bug.cgi?id=145366 Reviewed by Yusuke Suzuki. Disabling BBQ and OMG JIT for now, there's some edge cases which are currently broken. Fixes to testmasm, broken by previous sysv abi work. B3 float mod tests were broken on Windows due to differences between fmod(double, double) used within MathCommon fmodDouble, and the fmod(float, float) used within the tests. Using fmodl in the tests so they match behaviour with compiled B3. The countLeadingZero implementation for testClz* tests had an off-by-one error on Windows - using builtin __lzcnt64 and __lzcnt instead. Had to precommit stack memory for testCallFunctionWithHellaArguments3 to avoid accessing stack memory past the stack guard page. * Source/JavaScriptCore/assembler/ProbeContext.cpp: (JSC::Probe::flushDirtyStackPages): * Source/JavaScriptCore/assembler/ProbeContext.h: * Source/JavaScriptCore/assembler/testmasm.cpp: (JSC::invoke): (JSC::testStoreBaseIndex): * Source/JavaScriptCore/b3/B3LowerToAir.cpp: * Source/JavaScriptCore/b3/B3Validate.cpp: * Source/JavaScriptCore/b3/air/opcode_generator.rb: * Source/JavaScriptCore/b3/air/testair.cpp: * Source/JavaScriptCore/b3/testb3.h: (invoke): * Source/JavaScriptCore/b3/testb3_2.cpp: (testModArgFloat): (testModArgsFloat): (testModArgImmFloat): (testModImmArgFloat): (testModImmsFloat): * Source/JavaScriptCore/b3/testb3_3.cpp: (countLeadingZero): * Source/JavaScriptCore/b3/testb3_4.cpp: (testLoadFromFramePointer): * Source/JavaScriptCore/b3/testb3_5.cpp: (preCommitStackMemory): (testCallFunctionWithHellaArguments3): * Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq): * Source/JavaScriptCore/jit/RegisterSet.cpp: (JSC::RegisterSetBuilder::ftlCalleeSaveRegisters): * Source/JavaScriptCore/llint/LowLevelInterpreter.asm: * Source/JavaScriptCore/runtime/Options.cpp: (JSC::Options::notifyOptionsChanged): * Source/JavaScriptCore/wasm/WasmBBQJIT.cpp: (JSC::Wasm::BBQJITImpl::RegisterBinding::none): * Source/JavaScriptCore/wasm/WasmBBQJIT.h: * Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp: (JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDV_V): * Source/JavaScriptCore/wasm/WasmIRGeneratorHelpers.h: (JSC::Wasm::buildEntryBufferForCatchSIMD): (JSC::Wasm::buildEntryBufferForCatchNoSIMD): * Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp: * Source/cmake/OptionsJSCOnly.cmake: * Source/cmake/OptionsWin.cmake: Canonical link: https://commits.webkit.org/280777@main
1f59e73 to
dc849c8
Compare
|
Committed 280777@main (dc849c8): https://commits.webkit.org/280777@main Reviewed commits have been landed. Closing PR #30580 and removing active labels. |
dc849c8
1f59e73
🧪 mac-AS-debug-wk2