Files
video/libs/wpewebkit/patches/134-JavaScriptCore-Options-keep-BBQJIT-on-RISCV64.patch
T
Daniel Golle df0b899123 wpewebkit: update to version 2.52.3
Update WPEWebKit to the 2.52 stable major release branch.

Includes a pending patchset to get WASM BBQJIT working on RISCV64,
upstream PR https://github.com/WebKit/WebKit/pull/65621

Alltogether this brings acceptable performance (even with LLVMPipe
Mesa software renderer) on RISCV64.

Link: https://wpewebkit.org/release/wpewebkit-2.52.0.html
Link: https://wpewebkit.org/release/wpewebkit-2.52.1.html
Link: https://wpewebkit.org/release/wpewebkit-2.52.2.html
Link: https://wpewebkit.org/release/wpewebkit-2.52.3.html
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-05-27 19:27:26 +01:00

36 lines
1.5 KiB
Diff

From: Daniel Golle <daniel@makrotopia.org>
Subject: [PATCH] JavaScriptCore: do not force useBBQJIT() off on RISCV64
Options.cpp force-disables a number of JIT-tier and wasm options on any
CPU other than X86_64 / ARM64. For RISCV64 these defaults remain correct
- there is no concurrent GC, no wasm SIMD codegen, and no IPInt tier
yet - except for useBBQJIT(): RISCV64 enables WEBASSEMBLY_BBQJIT in
PlatformEnable.h and BBQJIT is the only wasm execution tier available
on this architecture.
Add RISCV64 to the carve-out so useBBQJIT() retains its (true) default,
matching what is already done for ARM_THUMB2.
With ARM_THUMB2 and RISCV64 carved out, the resulting wasm tier matrix
on RISCV64 is:
useWasmIPInt = false (no IPInt port)
useWasmSIMD = false (no SIMD codegen)
useBBQJIT = true (this change)
useOMGJIT = false (no OMGJIT port)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/Source/JavaScriptCore/runtime/Options.cpp
+++ b/Source/JavaScriptCore/runtime/Options.cpp
@@ -796,7 +796,10 @@ void Options::notifyOptionsChanged()
Options::forceUnlinkedDFG() = false;
Options::useWasmSIMD() = false;
Options::useWasmIPInt() = false;
-#if !CPU(ARM_THUMB2)
+#if !CPU(ARM_THUMB2) && !CPU(RISCV64)
+ // RISCV64 has BBQJIT (WEBASSEMBLY_BBQJIT enabled in PlatformEnable.h);
+ // wasm SIMD and IPInt are still off above, so BBQJIT is the only wasm
+ // tier on this architecture.
Options::useBBQJIT() = false;
#endif
#endif