[webkit-changes] [WebKit/WebKit] 6b5726: try-table should work with v128 values
Keith Miller
noreply at github.com
Fri Oct 18 08:00:27 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6b5726910bebf6f653b5822ce8a3695498092162
https://github.com/WebKit/WebKit/commit/6b5726910bebf6f653b5822ce8a3695498092162
Author: Keith Miller <keith_miller at apple.com>
Date: 2024-10-18 (Fri, 18 Oct 2024)
Changed paths:
M JSTests/wasm/stress/try-table-malformed-catch-label.js
A JSTests/wasm/stress/try-table-simd.js
M Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp
M Source/JavaScriptCore/wasm/WasmFunctionParser.h
Log Message:
-----------
try-table should work with v128 values
https://bugs.webkit.org/show_bug.cgi?id=281683
rdar://138133826
Reviewed by Justin Michaud.
Right now we fail to parse try-tables that have a v128 in the exception tag as the LLInt
doesn't directly support SIMD. This is semantically wrong, we should instead emit a crash
and force tier up instead. This patch also fixes a bug where BBQ assumed v128s were in
GPRs and not FPRs.
Also, clean up some of the catch block code:
1) Use `WASM_PASER_FAIL_IF` by moving the lambda to a loop.
2) Compare to the enum values directly rather than magic numbers to improve readability.
Lastly, try-table-malformed-catch-label.js had other preceeding errors that were getting
dropped before. Updated the expectations and wrote a new test that replicates the original
crash.
* JSTests/wasm/stress/try-table-malformed-catch-label.js:
(catch):
* JSTests/wasm/stress/try-table-simd.js: Added.
* Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::emitCatchTableImpl):
* Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
Canonical link: https://commits.webkit.org/285404@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list