Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c6d7e1b115e0f3ca2fa5509102eaf21b8369c108 https://github.com/WebKit/WebKit/commit/c6d7e1b115e0f3ca2fa5509102eaf21b8369c108 Author: David Degazio <d_dega...@apple.com> Date: 2023-03-06 (Mon, 06 Mar 2023)
Changed paths: A JSTests/wasm/stress/simd-global-get.js A JSTests/wasm/stress/simd-global-set.js M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp Log Message: ----------- Fix SIMD global get and set in BBQ JIT https://bugs.webkit.org/show_bug.cgi?id=253455 rdar://106293111 Reviewed by Yusuke Suzuki and Justin Michaud. The current implementation for global.get and global.set in BBQ JIT uses the same helper to emit type-correct load and store instructions as the rest of the WASM load and store ops. SIMD load ops aren't included in these instructions though, so whenever we try to get or set a v128 global with portable binding mode, we hit an ASSERT_NOT_REACHED. This patch adds a simple check for v128 globals to both of these instruction implementations, and emits a loadVector/storeVector instruction directly instead of calling out to the helper. * JSTests/wasm/stress/simd-global-get.js: Added. * JSTests/wasm/stress/simd-global-set.js: Added. * Source/JavaScriptCore/wasm/WasmBBQJIT.cpp: (JSC::Wasm::BBQJIT::getGlobal): (JSC::Wasm::BBQJIT::setGlobal): (JSC::Wasm::BBQJIT::emitLoad): Canonical link: https://commits.webkit.org/261299@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes