Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6b5726910bebf6f653b5822ce8a3695498092162
      
https://github.com/WebKit/WebKit/commit/6b5726910bebf6f653b5822ce8a3695498092162
  Author: Keith Miller <[email protected]>
  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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to