AArch64 Capstone Update / SME2 support#429
Merged
FinnWilkinson merged 34 commits intodevfrom Dec 20, 2024
Merged
Conversation
ce8e138 to
4921682
Compare
e3f2486 to
8ea3727
Compare
ABenC377
requested changes
Sep 23, 2024
Closed
jj16791
requested changes
Oct 27, 2024
Contributor
jj16791
left a comment
There was a problem hiding this comment.
A fair few comments but there's a lot of work done here so expected. Great job on this, a significant amount of effort done!
2 tasks
dANW34V3R
reviewed
Oct 29, 2024
Contributor
dANW34V3R
left a comment
There was a problem hiding this comment.
Not much to add on top of the others' comments. Will approve once theirs have been resolved
ec02455 to
e7d34e1
Compare
dANW34V3R
previously approved these changes
Nov 11, 2024
ABenC377
previously approved these changes
Nov 11, 2024
97fb519
dANW34V3R
previously approved these changes
Dec 4, 2024
ABenC377
previously approved these changes
Dec 5, 2024
bc91dcd
ABenC377
previously approved these changes
Dec 10, 2024
JosephMoore25
previously approved these changes
Dec 12, 2024
Contributor
JosephMoore25
left a comment
There was a problem hiding this comment.
Great work, and clean implementation. Couldn't find anything of note!
jj16791
previously approved these changes
Dec 14, 2024
fc308db
bc91dcd to
fc308db
Compare
ABenC377
previously approved these changes
Dec 18, 2024
JosephMoore25
previously approved these changes
Dec 18, 2024
dANW34V3R
reviewed
Dec 18, 2024
1f0084f
dANW34V3R
approved these changes
Dec 18, 2024
JosephMoore25
approved these changes
Dec 18, 2024
jj16791
approved these changes
Dec 19, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR updates SimEng to work with a newer release of Capstone who's AArch64 engine is based on LLVM18, hence allowing SME2 support.
The reccommended version of LLVM has also been changed to 18.1.8 and the test suite has been updated to work with this version in order to dissassemble new AArch64 instructions.
Closes Issue #349
There have been large changes to Capstone internally for AArch64, some of the main ones which effect our current development / usage include:
A writeback from a pre/post index load/store is now included as an implicit destination. Hence, in instruction_execute the updated base address register is
resuts[0]rather thanresults[1](for example).Post index immediate operands are now included as part of the memory operand in
mem.disp. Post indexing with a register however is added as an additional operand.Aliasing can be dissabled for auto-sync architectures, and has been done for AArch64. This means expected registers for the operand are now correct and allows us to remove
revertalias()from instruction_metadata completely! The only oddity is themnemonicandoperandStrare still that of the alias. This means exceptions or debugging print statements may be confusing. To indicate aliases better, anisAliasbool has been added to the metadata and exception print out.Get automatic LLVM download and install working for version 18.1.8
Add AArch64 multi-vector operand enum decoding logic to instruction_decode