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

[JSC] Use more specific zero-clearing pattern in MacroAssembler #15277

Conversation

Constellation
Copy link
Member

@Constellation Constellation commented Jun 25, 2023

dcb1617

[JSC] Use more specific zero-clearing pattern in MacroAssembler
https://bugs.webkit.org/show_bug.cgi?id=258497
rdar://problem/111282793

Reviewed by Keith Miller.

Use the most efficient & CPU friendly instruction for zero-clearing registers.

* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::moveZeroToDouble):
(JSC::MacroAssemblerARM64::moveZeroToFloat):
(JSC::MacroAssemblerARM64::move):
(JSC::MacroAssemblerARM64::moveZeroToVector):

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

c8e238a

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
βœ… πŸ§ͺ ios-wk2-wpt βœ… πŸ§ͺ mac-wk1 βœ… πŸ§ͺ gtk-wk2
βœ… πŸ›  πŸ§ͺ jsc βœ… πŸ§ͺ api-ios βœ… πŸ§ͺ mac-wk2 βœ… πŸ§ͺ api-gtk
βœ… πŸ›  πŸ§ͺ jsc-arm64 βœ… πŸ›  tv βœ… πŸ§ͺ mac-AS-debug-wk2 βœ… πŸ›  jsc-armv7
βœ… πŸ›  tv-sim βœ… πŸ§ͺ jsc-armv7-tests
βœ… πŸ›  watch βœ… πŸ›  jsc-mips
βœ… πŸ›  πŸ§ͺ unsafe-merge βœ… πŸ›  watch-sim βœ… πŸ§ͺ jsc-mips-tests

@Constellation Constellation requested a review from a team as a code owner June 25, 2023 08:33
@Constellation Constellation self-assigned this Jun 25, 2023
@Constellation Constellation added the JavaScriptCore For bugs in JavaScriptCore, the JS engine used by WebKit, other than kxmlcore issues. label Jun 25, 2023
if (src != dest)
m_assembler.mov<64>(dest, src);
if (src != dest) {
if (src == ARM64Registers::zr && dest != ARM64Registers::sp)
Copy link
Contributor

@hyjorc1 hyjorc1 Jun 26, 2023

Choose a reason for hiding this comment

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

Why can we not move 0 to sp?

Copy link
Member Author

Choose a reason for hiding this comment

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

sp is special register, and we cannot use as a target of movz on ARM64.

@Constellation Constellation added the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Jun 26, 2023
https://bugs.webkit.org/show_bug.cgi?id=258497
rdar://problem/111282793

Reviewed by Keith Miller.

Use the most efficient & CPU friendly instruction for zero-clearing registers.

* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::moveZeroToDouble):
(JSC::MacroAssemblerARM64::moveZeroToFloat):
(JSC::MacroAssemblerARM64::move):
(JSC::MacroAssemblerARM64::moveZeroToVector):

Canonical link: https://commits.webkit.org/265522@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/JSC-Use-more-specific-zero-clearing-pattern-in-MacroAssembler branch from c8e238a to dcb1617 Compare June 26, 2023 18:03
@webkit-commit-queue
Copy link
Collaborator

Committed 265522@main (dcb1617): https://commits.webkit.org/265522@main

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

@webkit-commit-queue webkit-commit-queue merged commit dcb1617 into WebKit:main Jun 26, 2023
@webkit-commit-queue webkit-commit-queue removed the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Jun 26, 2023
@Constellation Constellation deleted the eng/JSC-Use-more-specific-zero-clearing-pattern-in-MacroAssembler branch June 26, 2023 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
JavaScriptCore For bugs in JavaScriptCore, the JS engine used by WebKit, other than kxmlcore issues.
Projects
None yet
5 participants