Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WebAssembly] Fix tests and build on x86-64 Linux with BBQJIT #11268

Conversation

takikawa
Copy link
Contributor

@takikawa takikawa commented Mar 9, 2023

361c5fb

[WebAssembly] Fix tests and build on x86-64 Linux with BBQJIT
https://bugs.webkit.org/show_bug.cgi?id=253618

Reviewed by Yusuke Suzuki.

This patch first enables building of the BBQJIT on x86-64 Linux
platforms by adding a line in WebKitFeatures.cmake.

The rest of the patch fixes build issues with GCC.

  - GCC doesn't support std::fabsf so use std::fabs instead.
    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79700)
  - GCC doesn't support explicit specialization in class scope so
    this patch uses a `if constexpr` workaround.
    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85282)
  - Add RELEASE_ASSERT_NOT_REACHED to suppress warnings.

* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::Location::fromArgumentLocation):
(JSC::Wasm::BBQJIT::loadOpForTypeKind):
(JSC::Wasm::BBQJIT::storeOpForTypeKind):
(JSC::Wasm::BBQJIT::addF32Copysign):
(JSC::Wasm::BBQJIT::fromJSCReg):
(JSC::Wasm::BBQJIT::fromJSCReg<RegisterID>): Deleted.
(JSC::Wasm::BBQJIT::fromJSCReg<FPRegisterID>): Deleted.
* Source/cmake/WebKitFeatures.cmake:

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

d54e299

Misc iOS, tvOS & watchOS macOS Linux Windows
βœ… πŸ§ͺ style βœ… πŸ›  ios βœ… πŸ›  mac βœ… πŸ›  wpe   πŸ›  wincairo
βœ… πŸ›  ios-sim βœ… πŸ›  mac-AS-debug   πŸ§ͺ wpe-wk2
βœ… πŸ§ͺ webkitperl   πŸ§ͺ ios-wk2 βœ… πŸ§ͺ api-mac   πŸ›  gtk
  πŸ§ͺ api-ios   πŸ§ͺ mac-wk1 ❌ πŸ§ͺ gtk-wk2
βœ… πŸ›  πŸ§ͺ jsc βœ… πŸ›  tv βœ… πŸ§ͺ mac-wk2   πŸ§ͺ api-gtk
βœ… πŸ›  πŸ§ͺ jsc-arm64 βœ… πŸ›  tv-sim   πŸ§ͺ mac-AS-debug-wk2 βœ… πŸ›  jsc-armv7
βœ… πŸ›  watch βœ… πŸ§ͺ mac-wk2-stress βœ… πŸ§ͺ jsc-armv7-tests
βœ… πŸ›  πŸ§ͺ merge βœ… πŸ›  watch-sim βœ… πŸ›  jsc-mips
βœ… πŸ§ͺ jsc-mips-tests

@takikawa takikawa requested review from mcatanzaro and a team as code owners March 9, 2023 02:07
@takikawa takikawa self-assigned this Mar 9, 2023
@takikawa takikawa added the WebAssembly For bugs in JavaScript WebAssembly label Mar 9, 2023
Copy link
Member

@Constellation Constellation left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me with comments.

Source/JavaScriptCore/wasm/WasmBBQJIT.cpp Show resolved Hide resolved
Source/JavaScriptCore/wasm/WasmBBQJIT.cpp Outdated Show resolved Hide resolved
Source/JavaScriptCore/wasm/WasmBBQJIT.cpp Outdated Show resolved Hide resolved
@takikawa takikawa force-pushed the eng/WebAssembly-Fix-tests-and-build-on-x86-64-Linux-with-BBQJIT branch from a0516ba to d54e299 Compare March 9, 2023 07:46
@takikawa takikawa added the merge-queue Applied to send a pull request to merge-queue label Mar 9, 2023
https://bugs.webkit.org/show_bug.cgi?id=253618

Reviewed by Yusuke Suzuki.

This patch first enables building of the BBQJIT on x86-64 Linux
platforms by adding a line in WebKitFeatures.cmake.

The rest of the patch fixes build issues with GCC.

  - GCC doesn't support std::fabsf so use std::fabs instead.
    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79700)
  - GCC doesn't support explicit specialization in class scope so
    this patch uses a `if constexpr` workaround.
    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85282)
  - Add RELEASE_ASSERT_NOT_REACHED to suppress warnings.

* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::Location::fromArgumentLocation):
(JSC::Wasm::BBQJIT::loadOpForTypeKind):
(JSC::Wasm::BBQJIT::storeOpForTypeKind):
(JSC::Wasm::BBQJIT::addF32Copysign):
(JSC::Wasm::BBQJIT::fromJSCReg):
(JSC::Wasm::BBQJIT::fromJSCReg<RegisterID>): Deleted.
(JSC::Wasm::BBQJIT::fromJSCReg<FPRegisterID>): Deleted.
* Source/cmake/WebKitFeatures.cmake:

Canonical link: https://commits.webkit.org/261417@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/WebAssembly-Fix-tests-and-build-on-x86-64-Linux-with-BBQJIT branch from d54e299 to 361c5fb Compare March 9, 2023 09:33
@webkit-commit-queue
Copy link
Collaborator

Committed 261417@main (361c5fb): https://commits.webkit.org/261417@main

Reviewed commits have been landed. Closing PR #11268 and removing active labels.

@webkit-commit-queue webkit-commit-queue merged commit 361c5fb into WebKit:main Mar 9, 2023
@webkit-commit-queue webkit-commit-queue removed the merge-queue Applied to send a pull request to merge-queue label Mar 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WebAssembly For bugs in JavaScript WebAssembly
Projects
None yet
4 participants