[webkit-changes] [WebKit/WebKit] c6d7e1: Fix SIMD global get and set in BBQ JIT
EWS
noreply at github.com
Mon Mar 6 17:03:10 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c6d7e1b115e0f3ca2fa5509102eaf21b8369c108
https://github.com/WebKit/WebKit/commit/c6d7e1b115e0f3ca2fa5509102eaf21b8369c108
Author: David Degazio <d_degazio at 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
More information about the webkit-changes
mailing list