Add ESIL support for MicroMIPS jraddiusp instruction

This commit is contained in:
pancake 2015-02-13 18:15:06 +01:00
parent 540644dbe5
commit 36ecbc21ff
2 changed files with 5 additions and 0 deletions

View File

@ -104,6 +104,10 @@ static int analop_esil(RAnal *a, RAnalOp *op, ut64 addr, const ut8 *buf, int len
case MIPS_INS_BLTZAL: // Branch on less than zero and link
r_strbuf_appendf (&op->esil, "pc,8,+,ra,=,%s,pc,=", ARG(0));
break;
case MIPS_INS_JRADDIUSP:
// increment stackpointer in X and jump to %ra
r_strbuf_appendf (&op->esil, "%d,sp,+=,ra,pc,=", ARG(0));
break;
case MIPS_INS_JR:
case MIPS_INS_JRC:
case MIPS_INS_J:

View File

@ -39,4 +39,5 @@ beq=beq $s,$t,C, goes to the instruction at the specified address if two registe
bneq=goes to the instruction at the specified address if two registers are not equal.
j=unconditionally jumps to the instruction at the specified address
jr=jumps to the address contained in the specified register
jraddiusp=increment stackpointer and jump to ra register
jal=used to call a subroutine, $31 holds the return address; returning from a subroutine is done by: jr $31. Return address is PC + 8, not PC + 4 due to the use of a branch delay slot which forces the instruction after the jump to be executed