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

Re-express some ARM64E emitters using a NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS parameter in ARM64Assembler #13314

Conversation

MenloDorian
Copy link

@MenloDorian MenloDorian commented Apr 30, 2023

87b83b0

Re-express some ARM64E emitters using a NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS parameter in ARM64Assembler
https://bugs.webkit.org/show_bug.cgi?id=256146
rdar://108708885

Reviewed by Justin Michaud.

The only difference between the ARM64 and ARM64E versions of these emitters is due to the
NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS.  By making the ARM64 emitters aware of
NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS, we can remove the redundant code in ARM64EAssembler.

NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS is set differently for CPU(ARM64E) vs just CPU(ARM64).

* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/ARM64EAssembler.h:
(JSC::ARM64EAssembler::eretab):
(JSC::ARM64EAssembler::linkPointer): Deleted.
(JSC::ARM64EAssembler::repatchPointer): Deleted.
(JSC::ARM64EAssembler::setPointer): Deleted.
(JSC::ARM64EAssembler::readPointer): Deleted.
(JSC::ARM64EAssembler::readCallTarget): Deleted.
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::moveWithFixedWidth):

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

511d40d

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

@MenloDorian MenloDorian requested a review from a team as a code owner April 30, 2023 09:12
@MenloDorian MenloDorian self-assigned this Apr 30, 2023
@MenloDorian MenloDorian added the JavaScriptCore For bugs in JavaScriptCore, the JS engine used by WebKit, other than kxmlcore issues. label Apr 30, 2023
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

@MenloDorian MenloDorian added the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label May 2, 2023
…STRUCTIONS parameter in ARM64Assembler

https://bugs.webkit.org/show_bug.cgi?id=256146
rdar://108708885

Reviewed by Justin Michaud.

The only difference between the ARM64 and ARM64E versions of these emitters is due to the
NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS.  By making the ARM64 emitters aware of
NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS, we can remove the redundant code in ARM64EAssembler.

NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS is set differently for CPU(ARM64E) vs just CPU(ARM64).

* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/ARM64EAssembler.h:
(JSC::ARM64EAssembler::eretab):
(JSC::ARM64EAssembler::linkPointer): Deleted.
(JSC::ARM64EAssembler::repatchPointer): Deleted.
(JSC::ARM64EAssembler::setPointer): Deleted.
(JSC::ARM64EAssembler::readPointer): Deleted.
(JSC::ARM64EAssembler::readCallTarget): Deleted.
* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::moveWithFixedWidth):

Canonical link: https://commits.webkit.org/263563@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/Re-express-some-ARM64E-emitters-using-a-NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS-parameter-in-ARM64Assembler- branch from 511d40d to 87b83b0 Compare May 2, 2023 00:08
@webkit-commit-queue
Copy link
Collaborator

Committed 263563@main (87b83b0): https://commits.webkit.org/263563@main

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

@webkit-commit-queue webkit-commit-queue merged commit 87b83b0 into WebKit:main May 2, 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 May 2, 2023
@MenloDorian MenloDorian deleted the eng/Re-express-some-ARM64E-emitters-using-a-NUMBER_OF_ADDRESS_ENCODING_INSTRUCTIONS-parameter-in-ARM64Assembler- branch May 2, 2023 01:57
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
4 participants