[webkit-changes] [WebKit/WebKit] bc648d: Fix control flow with multiple exits on single-pas...

Commit Queue noreply at github.com
Fri Mar 3 01:03:44 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bc648d25c5aa6be1fffc4794700336f357742a45
      https://github.com/WebKit/WebKit/commit/bc648d25c5aa6be1fffc4794700336f357742a45
  Author: David Degazio <d_degazio at apple.com>
  Date:   2023-03-03 (Fri, 03 Mar 2023)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp

  Log Message:
  -----------
  Fix control flow with multiple exits on single-pass BBQ JIT
https://bugs.webkit.org/show_bug.cgi?id=253298
rdar://106182518

Reviewed by Yusuke Suzuki.

Fixes br_table, func, switch WASM spec tests when using single-pass
BBQ JIT on Intel. Specifically, refactors BBQ JIT's control flow data
to support passing values to multiple distinct exit branches per block.

* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::ControlData::flushAtBlockBoundary):
(JSC::Wasm::BBQJIT::ControlData::addExit):
(JSC::Wasm::BBQJIT::ControlData::finalizeBlock):
(JSC::Wasm::BBQJIT::ControlData::flushAndSingleExit):
(JSC::Wasm::BBQJIT::ControlData::targetLocations const):
(JSC::Wasm::BBQJIT::addBlock):
(JSC::Wasm::BBQJIT::addLoop):
(JSC::Wasm::BBQJIT::addIf):
(JSC::Wasm::BBQJIT::addElse):
(JSC::Wasm::BBQJIT::addTry):
(JSC::Wasm::BBQJIT::addCatch):
(JSC::Wasm::BBQJIT::addCatchAll):
(JSC::Wasm::BBQJIT::addBranch):
(JSC::Wasm::BBQJIT::addSwitch):
(JSC::Wasm::BBQJIT::addEndToUnreachable):
(JSC::Wasm::BBQJIT::ControlData::endBlock): Deleted.

Canonical link: https://commits.webkit.org/261122@main




More information about the webkit-changes mailing list