Fix visual disasm for arm.gnu plugin

This commit is contained in:
pancake 2014-09-17 10:30:24 +02:00
parent effa16c871
commit 92856e0e37

View File

@ -38,11 +38,11 @@ static int op_thumb(RAnal *anal, RAnalOp *op, ut64 addr, const ut8 *data, int le
ut32 ins32 = *_ins32;
struct winedbg_arm_insn *arminsn = arm_new();
arm_set_thumb(arminsn, R_TRUE);
arm_set_input_buffer(arminsn, data);
arm_set_pc(arminsn, addr);
arm_set_thumb (arminsn, R_TRUE);
arm_set_input_buffer (arminsn, data);
arm_set_pc (arminsn, addr);
op->delay = 0;
op->size = arm_disasm_one_insn(arminsn);
op->size = arm_disasm_one_insn (arminsn);
op->jump = arminsn->jmp;
op->fail = arminsn->fail;
arm_free(arminsn);
@ -203,7 +203,8 @@ static int arm_op32(RAnal *anal, RAnalOp *op, ut64 addr, const ut8 *data, int le
case 5:
if ((b[3]&0xf) == 5) {
op->ptr = 8+addr+b[0]+((b[1]&0xf)<<8);
op->refptr = R_TRUE;
// XXX: if set it breaks the visual disasm wtf
// op->refptr = R_TRUE;
}
case 4:
case 6:
@ -211,6 +212,7 @@ static int arm_op32(RAnal *anal, RAnalOp *op, ut64 addr, const ut8 *data, int le
case 8:
case 9:
op->type = R_ANAL_OP_TYPE_LOAD;
break;
}
} else
// 0x000037b8 00:0000 0 800000ef svc 0x00000080
@ -341,7 +343,7 @@ if (
}
//op->jump = arminsn->jmp;
//op->fail = arminsn->fail;
arm_free(arminsn);
arm_free (arminsn);
return op->size;
}