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

Reply via email to