[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