Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b61cc9d405cba435a3f44269fe50fa07af4e0fbe
https://github.com/WebKit/WebKit/commit/b61cc9d405cba435a3f44269fe50fa07af4e0fbe
Author: David Degazio <[email protected]>
Date: 2023-02-17 (Fri, 17 Feb 2023)
Changed paths:
M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
Log Message:
-----------
Support WebAssembly SIMD instructions in BBQ baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=252433
rdar://105465507
Reviewed by Justin Michaud.
Adds support for WebAssembly SIMD instructions to the new single-pass BBQ
baseline JIT.
Mostly mimics the Air implementation, but does the Air lowering macros inline
since we
directly call out to the macro assembler.
The new baseline JIT is still disabled by default, since it fails quite a few
of our
stress tests. It's not yet ready for typical usage. But with this patch, we at
least
expect that the SIMD (and core) spec tests will pass on ARM64 and x86_64.
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::Value::isFloat const):
(JSC::Wasm::BBQJIT::ControlData::endBlock):
(JSC::Wasm::BBQJIT::logInstruction):
(JSC::Wasm::BBQJIT::loadOpForTypeKind):
(JSC::Wasm::BBQJIT::storeOpForTypeKind):
(JSC::Wasm::BBQJIT::materializePointer):
(JSC::Wasm::BBQJIT::emitLoadOp):
(JSC::Wasm::BBQJIT::emitStoreOp):
(JSC::Wasm::BBQJIT::addSelect):
(JSC::Wasm::BBQJIT::binary):
(JSC::Wasm::BBQJIT::unary):
(JSC::Wasm::BBQJIT::addTopLevel):
(JSC::Wasm::BBQJIT::returnValuesFromCall):
(JSC::Wasm::BBQJIT::addCrash):
(JSC::Wasm::BBQJIT::addSIMDLoad):
(JSC::Wasm::BBQJIT::addSIMDStore):
(JSC::Wasm::BBQJIT::addSIMDSplat):
(JSC::Wasm::BBQJIT::addSIMDShuffle):
(JSC::Wasm::BBQJIT::addSIMDShift):
(JSC::Wasm::BBQJIT::addSIMDExtmul):
(JSC::Wasm::BBQJIT::addSIMDLoadSplat):
(JSC::Wasm::BBQJIT::addSIMDLoadLane):
(JSC::Wasm::BBQJIT::addSIMDStoreLane):
(JSC::Wasm::BBQJIT::addSIMDLoadExtend):
(JSC::Wasm::BBQJIT::addSIMDLoadPad):
(JSC::Wasm::BBQJIT::materializeVectorConstant):
(JSC::Wasm::BBQJIT::addConstant):
(JSC::Wasm::BBQJIT::addExtractLane):
(JSC::Wasm::BBQJIT::addReplaceLane):
(JSC::Wasm::BBQJIT::addSIMDI_V):
(JSC::Wasm::BBQJIT::addSIMDV_V):
(JSC::Wasm::BBQJIT::addSIMDBitwiseSelect):
(JSC::Wasm::BBQJIT::addSIMDRelOp):
(JSC::Wasm::BBQJIT::emitVectorMul):
(JSC::Wasm::BBQJIT::fixupOutOfBoundsIndicesForSwizzle):
(JSC::Wasm::BBQJIT::addSIMDV_VV):
(JSC::Wasm::BBQJIT::dump):
(JSC::Wasm::BBQJIT::emitStore):
(JSC::Wasm::BBQJIT::emitMoveMemory):
(JSC::Wasm::BBQJIT::emitMoveRegister):
(JSC::Wasm::BBQJIT::emitLoad):
(JSC::Wasm::BBQJIT::allocateWithHint):
(JSC::Wasm::BBQJIT::allocateRegister):
(JSC::Wasm::BBQJIT::bind):
(JSC::Wasm::BBQJIT::unbind):
(JSC::Wasm::BBQJIT::evictFPR):
(JSC::Wasm::BBQJIT::clobber):
(JSC::Wasm::BBQJIT::ScratchScope::bindFPRToScratch):
(JSC::Wasm::BBQJIT::ScratchScope::unbindFPRFromScratch):
(JSC::Wasm::BBQJIT::ScratchScope::initializedPreservedSet):
Canonical link: https://commits.webkit.org/260481@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes