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

Clobber first two argument GPRs across OMG loop tier-up check in BBQ JIT #11239

Conversation

ddegazio
Copy link
Contributor

@ddegazio ddegazio commented Mar 8, 2023

73c4a75

Clobber first two argument GPRs across OMG loop tier-up check in BBQ JIT
https://bugs.webkit.org/show_bug.cgi?id=253584
rdar://106360294

Reviewed by Justin Michaud and Yusuke Suzuki.

Our current BBQ JIT implementation only clobbers argumentGPR0 and argumentGPR1
across the entry tier-up check, not loop tier-up checks. This patch adds this
clobbering to loop tier-up checks as well, preventing values in these registers
from being overwritten when we return from the tier-up operation.

* JSTests/wasm/stress/live-funcref-across-loop-tier-up.js: Added.
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::emitLoopTierUpCheck):

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

46aa8a2

Misc iOS, tvOS & watchOS macOS Linux Windows
βœ… πŸ§ͺ style βœ… πŸ›  ios βœ… πŸ›  mac βœ… πŸ›  wpe βœ… πŸ›  wincairo
loading πŸ›  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

@ddegazio ddegazio requested a review from a team as a code owner March 8, 2023 18:44
@ddegazio ddegazio self-assigned this Mar 8, 2023
@ddegazio ddegazio added the WebAssembly For bugs in JavaScript WebAssembly label Mar 8, 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

Copy link
Contributor

@justinmichaud justinmichaud 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

@ddegazio ddegazio 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=253584
rdar://106360294

Reviewed by Justin Michaud and Yusuke Suzuki.

Our current BBQ JIT implementation only clobbers argumentGPR0 and argumentGPR1
across the entry tier-up check, not loop tier-up checks. This patch adds this
clobbering to loop tier-up checks as well, preventing values in these registers
from being overwritten when we return from the tier-up operation.

* JSTests/wasm/stress/live-funcref-across-loop-tier-up.js: Added.
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::emitLoopTierUpCheck):

Canonical link: https://commits.webkit.org/261435@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/Clobber-first-two-argument-GPRs-across-OMG-loop-tier-up-check-in-BBQ-JIT branch from 46aa8a2 to 73c4a75 Compare March 9, 2023 16:14
@webkit-commit-queue
Copy link
Collaborator

Committed 261435@main (73c4a75): https://commits.webkit.org/261435@main

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

@webkit-commit-queue webkit-commit-queue merged commit 73c4a75 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
5 participants