[webkit-changes] [WebKit/WebKit] b61cc9: Support WebAssembly SIMD instructions in BBQ basel...

EWS noreply at github.com
Fri Feb 17 17:13:48 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b61cc9d405cba435a3f44269fe50fa07af4e0fbe
      https://github.com/WebKit/WebKit/commit/b61cc9d405cba435a3f44269fe50fa07af4e0fbe
  Author: David Degazio <d_degazio at apple.com>
  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




More information about the webkit-changes mailing list