mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-10 08:14:35 +00:00
Fix /re and aae for Thumb and ARM32
This commit is contained in:
parent
245617e952
commit
ecfe83e4b2
@ -3801,6 +3801,7 @@ R_API void r_core_anal_esil(RCore *core, const char *str, const char *target) {
|
||||
cur -= (cur % opalign);
|
||||
}
|
||||
r_anal_op_fini (&op);
|
||||
r_asm_set_pc (core->assembler, cur);
|
||||
if (!r_anal_op (core->anal, &op, cur, buf + i, iend - i, R_ANAL_OP_MASK_ALL)) {
|
||||
i += minopsize - 1;
|
||||
}
|
||||
@ -3809,7 +3810,6 @@ R_API void r_core_anal_esil(RCore *core, const char *str, const char *target) {
|
||||
// i +=2;
|
||||
continue;
|
||||
}
|
||||
r_asm_set_pc (core->assembler, cur);
|
||||
//we need to check again i because buf+i may goes beyond its boundaries
|
||||
//because of i+= minopsize - 1
|
||||
if (i > iend) {
|
||||
@ -3865,7 +3865,8 @@ R_API void r_core_anal_esil(RCore *core, const char *str, const char *target) {
|
||||
break;
|
||||
case R_ANAL_OP_TYPE_ADD:
|
||||
/* TODO: test if this is valid for other archs too */
|
||||
if (core->anal->bits == 64 && core->anal->cur && !strcmp (core->anal->cur->arch, "arm")) {
|
||||
if (core->anal->cur && !strcmp (core->anal->cur->arch, "arm")) {
|
||||
/* This code is known to work on Thumb, ARM and ARM64 */
|
||||
ut64 dst = ESIL->cur;
|
||||
if ((target && dst == ntarget) || !target) {
|
||||
if (CHECKREF (dst)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user