-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Fix #9197, wrong esil for aarch64 ldr #9442
Conversation
@@ -1022,53 +1022,51 @@ static int analop64_esil(RAnal *a, RAnalOp *op, ut64 addr, const ut8 *buf, int l | |||
default: | |||
break; | |||
} | |||
if ((int)MEMDISP64(1) < 0) { |
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.
I couldn't understand this if: why having a negative offset should result in an direct ESIL translation, while for positive offset you still have to check other things - see below?
Also, resulting expression is something like dst,base,20,-,=[8]
which to my understanding translates to dst = *(20-base)
What I did was moving that check right before the ESIL with the positive offset is generated, and if offset is negative change +
with a -
.
Indentation messed up the diff.
Then rebase :p
… On 20 Feb 2018, at 12:52, Giuseppe ***@***.***> wrote:
@giuscri commented on this pull request.
In libr/anal/p/anal_arm_cs.c:
> @@ -1022,53 +1022,51 @@ static int analop64_esil(RAnal *a, RAnalOp *op, ut64 addr, const ut8 *buf, int l
default:
break;
}
- if ((int)MEMDISP64(1) < 0) {
I couldn't understand this if: why having a negative offset should result in an direct ESIL translation, while for positive offset you still have to check other things - see below?
Also, resulting expression is something like dst,base,20,-,=[8] which to my understanding translates to dst = *(20-base)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
To make the diff cleaner? How? I'm already up to date with master |
Maybe I could split the change in 2, 3 commits to help diff and your review and you're squashing them while merging |
Actually passing
|
See #9197.
Test: https://github.com/radare/radare2-regressions/pull/1186
Diff is messy. Actually, the change is small.