-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
arm64: Instructions added in ARMv8.1/2 #1011
arm64: Instructions added in ARMv8.1/2 #1011
Conversation
This commit adds handling of system registers added in ARMv8.2. Those registers are accessed by mrs and msr instructions. Changes based on https://static.docs.arm.com/ddi0487/b/DDI0487B_a_armv8_arm.pdf, chapters D7.2-5. List of added registers: id_mmfr4_el1 id_aa64mmfr2_el1 sctlr_el12 cpacr_el12 ttbr0_el12 ttbr1_el12 ttbr1_el2 tcr_el12 spsr_el12 elr_el12 afsr0_el12 afsr1_el12 esr_el12 far_el12 mair_el12 amair_el12 vbar_el12 cntkctl_el12 cnthv_ctl_el2 cnthv_cval_el2 cnthv_tval_el2 cntp_tval_el02 cntp_cval_el02 cntv_ctl_el02 ntv_cval_el02 cntv_tval_el02 lorid_el1 lorc_el1 lorea_el1 lorn_el1 lorsa_el1 contextidr_el12 sign-of: Michalina Oleksy (https://github.com/layika)
v8.1: PAN (https://static.docs.arm.com/ddi0487/b/DDI0487B_a_armv8_arm.pdf, page 358) PAN (as pstate field) contextdir_el2 v8.2: UAO (https://static.docs.arm.com/ddi0487/b/DDI0487B_a_armv8_arm.pdf, page 403) UAO (as pstate field)
Added handling of system registers for statistical profiling extension based on https://static.docs.arm.com/ddi0586/a/DDI0586A_Statistical_Profiling_Extension.pdf
The list might be incomplete for now, also the changes don't work yet as there are autogenerated files missing and some mappings.
great work!
for the record, can you provide hex input for the instructions you added?
--
Thanks,
Quynh
http://www.keystone-engine.org
http://www.capstone-engine.org
http://www.unicorn-engine.org
|
Sure I can. Do you mean something like |
no, what i mean is that you can paste some sample instructions you added with hexcode here.
|
btw, there is a conflict with another thing: this PR is for the master branch. can you redo this by making a PR for the "next" branch instead? |
Any news on the instruction updates? I didn't see any of the new names in the current master code. Also, is there support for Neon or SVE instruction in AARCH64? |
@semihalf-oleksy-michalina ping? can you please update your PR? Would be awesome to have it in the 2.7.0 r2 release. |
Ping? |
Please also add support for ARMv8.3 instructions too https://community.arm.com/processors/b/blog/posts/armv8-a-architecture-2016-additions |
And also ARMv8.4 https://reviews.llvm.org/D48625 |
it's pretty sad that this PR was open a year ago and there are still no ways to get in sync with latest llvm, or even was merged. How long should we wait if the project can't keep in sync with llvm and hasnt been any release in more than 3 years to consider Capstone dead? |
And also ARMv8.5 - https://community.arm.com/processors/b/blog/posts/arm-a-profile-architecture-2018-developments-armv85a I ❤️ Capstone |
It may very well be that @aquynh has tired being the lone maintainer of this great but free project. |
On 21 Oct 2018, at 17:20, E:V:A ***@***.***> wrote:
@radare
it's pretty sad that this PR was open a year ago and there are still no ways to get in sync with latest llvm, or even was merged. How long should we wait if the project can't keep in sync with llvm and hasnt been any release in more than 3 years to consider Capstone dead?
It may very well be that @aquynh has tired being the lone maintainer of this great but free project.
Perhaps he should add a BIG tag in the GitHub README asking for maintenance help?
Do you use telegram or irc? Can we chat somewhere?
… —
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Let's get this shizz merged in ya'll. Please see this #1287 |
@blacktop beware that it makes sense to add 8.4 and 8.5 while you are on it: https://github.com/llvm-mirror/llvm/search?q=%5BAArch64%5D%5Bv8.5A%5D&type=Commits |
i cleaned up this to solve some conflicts, and merged into the https://github.com/aquynh/capstone/tree/arm64 branch. look closer, i think something is not right: this adds some new instructions, but also all the variations. for example, perhaps some of the below instructions can map into one, reducing number of instructions we will support?
also, this removes ARM64_INS_NEGS & ARM64_INS_NGCS? |
this adds some new instructions, but does not update the core logic to handle them, so i doubt that this is a complete work. |
supported now in the next branch, thanks. |
PR as truafe asked.