summaryrefslogtreecommitdiff
path: root/arch/mips/arch_mips.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/arch_mips.cpp')
-rw-r--r--arch/mips/arch_mips.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/mips/arch_mips.cpp b/arch/mips/arch_mips.cpp
index 6150e578..51a5d411 100644
--- a/arch/mips/arch_mips.cpp
+++ b/arch/mips/arch_mips.cpp
@@ -332,10 +332,12 @@ protected:
result.AddBranch(CallDestination, instr.operands[0].immediate, nullptr, hasBranchDelay);
break;
- //Jmp to register register value is unknown
case MIPS_JALR:
case MIPS_JALR_HB:
- result.delaySlots = 1;
+ if (instr.operands[0].reg == REG_ZERO && instr.operands[1].reg == REG_RA)
+ result.AddBranch(FunctionReturn, 0, nullptr, hasBranchDelay);
+ else
+ result.AddBranch(UnresolvedBranch, 0, nullptr, hasBranchDelay);
break;
case MIPS_BGEZAL: