-
Notifications
You must be signed in to change notification settings - Fork 478
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: fix ldrb size #1433
AArch64: fix ldrb size #1433
Conversation
Discovered due to 'ldrb w11, [x9]' failing in symbolic mode.
d4eba39
to
d308f3f
Compare
Force-pushed after changing the test constant to a more suitable value. |
On AArch64, the symbolic tests work by setting a register to a symbolic value. For load instructions, this register is the stack pointer. Turns out, it's not enough as the memory can also be symbolic. This PR adds a test for one pair of store/load instructions and fixes a related bug (incorrect load due to a size mismatch between the loaded value and target register). |
BTW, you can trigger the bug by reverting the top commit and running the new test:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Appreciate you adding a test for this.
* master: (28 commits) AArch64: fix ldrb size (#1433) System Call Audit (#1384) ManticoreBase refactor (#1385) Add missing checks for ARM boundaries (#1429) aarch64: add instruction tests: T-U (#1423) aarch64: add instruction tests: M-S (#1422) aarch64: add instruction tests: C-L (#1421) aarch64: add instruction tests: A-B (#1420) aarch64: add everything except instructions (#1418) fixup: support ARM64 in '_reg_name' Revert "fixup: remove x86-specific code from '_reg_name'" review: avoid wildcard imports review: rename the file fixup: remove x86-specific code from '_reg_name' fixup: do not use relative imports Generates a more sensible symbolic default for constructor arguments (#1414) aarch64: add instructions aarch64: add everything except instructions Switches the Travis-CI badge from .org to .com (#1416) Performance optimization : use set instead of list (#1415) ...
This change is