mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-18 13:19:29 +00:00
Fix 1351567
This commit is contained in:
parent
0973759a8c
commit
1b9658f2b7
@ -290,18 +290,20 @@ static int v810_op(RAnal *anal, RAnalOp *op, ut64 addr, const ut8 *buf, int len)
|
||||
break;
|
||||
case V810_JAL:
|
||||
case V810_JR:
|
||||
jumpdisp = DISP26(word1, word2);
|
||||
op->jump = addr + jumpdisp;
|
||||
op->fail = addr + 4;
|
||||
if (op->size == 4) {
|
||||
// word2 undetermined for 2-byte instructions
|
||||
jumpdisp = DISP26(word1, word2);
|
||||
op->jump = addr + jumpdisp;
|
||||
op->fail = addr + 4;
|
||||
|
||||
if (opcode == V810_JAL) {
|
||||
op->type = R_ANAL_OP_TYPE_CALL;
|
||||
r_strbuf_appendf (&op->esil, "$$,4,+,r31,=,", jumpdisp);
|
||||
} else {
|
||||
op->type = R_ANAL_OP_TYPE_JMP;
|
||||
if (opcode == V810_JAL) {
|
||||
op->type = R_ANAL_OP_TYPE_CALL;
|
||||
r_strbuf_appendf (&op->esil, "$$,4,+,r31,=,", jumpdisp);
|
||||
} else {
|
||||
op->type = R_ANAL_OP_TYPE_JMP;
|
||||
}
|
||||
r_strbuf_appendf (&op->esil, "$$,%d,+,pc,=", jumpdisp);
|
||||
}
|
||||
|
||||
r_strbuf_appendf (&op->esil, "$$,%d,+,pc,=", jumpdisp);
|
||||
break;
|
||||
case V810_BCOND:
|
||||
cond = COND(word1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user