-
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
aarch64: incorrect register in regs_access() for bl instruction #2234
Comments
It is incorrectly defined in LLVM:
|
BL is no call and does not read SP
@Rot127 can you help me understand the change you made? I'd like to be able to contribute fixes in the future if I find more issues. I understand removing |
Actually, I just looked at |
You are right. I did the changes in a rush and was sloppy.
The changes in our LLVM repo are the definitions of the architecture. From those definitions we generate our disassembler logic. If we discover a flaw in the definition, we need to change the it in the |
- BL, BLR don't read SP. - Add branch flags.
The TLDR is:
Though, if you are can't spend the time to get into the quirks with updating, better wait until |
Cool, if I spot any other errors I'll report them and also give this process a shot to see if I can contribute. Thanks for all the hard work on this! The recent updates to Capstone are very much appreciated. |
Just tested and it's fixed for me, thanks! |
The regs_access() function returns 'sp' as a read register for the
bl
instruction.Below is a small script that reproduces the issue between version 4.0.2 and the most recent commit as of this comment.
4.0.2:
next branch b9c260e:
The text was updated successfully, but these errors were encountered: