[webkit-changes] [WebKit/WebKit] 31ae64: [JSC] Use SlowPathFrameTracer and fix most of wasm...

Yusuke Suzuki noreply at github.com
Thu Jan 12 04:08:39 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 31ae64f178ab4378cd7eacf3976990fee13e0874
      https://github.com/WebKit/WebKit/commit/31ae64f178ab4378cd7eacf3976990fee13e0874
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-01-12 (Thu, 12 Jan 2023)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmInstance.h
    M Source/JavaScriptCore/wasm/WasmOperations.cpp
    M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp

  Log Message:
  -----------
  [JSC] Use SlowPathFrameTracer and fix most of wasm GC operations
https://bugs.webkit.org/show_bug.cgi?id=250502
rdar://104156324

Reviewed by Mark Lam.

Use SlowPathFrameTracer to configure topCallFrame in Wasm LLInt SlowPathes.
And remove storeTopCallFrame since it is no longer used: it was originally
introduced to make VM separate from Wasm::Instance etc. while keeping the
functionality of setting a CallFrame* to VM. But now we wiped this abstraction,
so this SlowPathFrameTracer change cleans up things.

We also fix bugs of wasm GC operations where they do not set topCallFrame correctly.
They need to set it since they do GC allocation, which can cause ShadowChicken processing,
and it requires topCallFrame. This patch fixes them.

* Source/JavaScriptCore/wasm/WasmInstance.h:
(JSC::Wasm::Instance::storeTopCallFrame): Deleted.
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::WASM_SLOW_PATH_DECL):
(JSC::LLInt::slow_path_wasm_throw_exception):

Canonical link: https://commits.webkit.org/258824@main




More information about the webkit-changes mailing list