about summary refs log tree commit diff stats
path: root/miasm2/arch/mips32/arch.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--miasm2/arch/mips32/arch.py17
1 files changed, 5 insertions, 12 deletions
diff --git a/miasm2/arch/mips32/arch.py b/miasm2/arch/mips32/arch.py
index b3bbc3ff..ac22f7c9 100644
--- a/miasm2/arch/mips32/arch.py
+++ b/miasm2/arch/mips32/arch.py
@@ -50,10 +50,9 @@ deref = deref_off | deref_nooff
 class additional_info:
     def __init__(self):
         self.except_on_instr = False
-br_flt = ['BC1F']
 
-br_0 = ['B', 'JR', 'BAL', 'JAL', 'JALR']
-br_1 = ['BGEZ', 'BLTZ', 'BGTZ', 'BLEZ', 'BC1T', 'BC1F'] + br_flt
+br_0 = ['B', 'J', 'JR', 'BAL', 'JAL', 'JALR']
+br_1 = ['BGEZ', 'BLTZ', 'BGTZ', 'BLEZ', 'BC1T', 'BC1F']
 br_2 = ['BEQ', 'BEQL', 'BNE']
 
 
@@ -78,9 +77,7 @@ class instruction_mips32(instruction):
     def dstflow(self):
         if self.name == 'BREAK':
             return False
-        if self.name.startswith('B'):
-            return True
-        if self.name in ['JAL', 'JALR', 'JR', 'J']:
+        if self.name in br_0 + br_1 + br_2:
             return True
         return False
 
@@ -116,19 +113,15 @@ class instruction_mips32(instruction):
     def breakflow(self):
         if self.name == 'BREAK':
             return False
-        if self.name.startswith('B') or self.name in ['JR', 'J', 'JAL', 'JALR']:
+        if self.name in br_0 + br_1 + br_2:
             return True
         return False
 
     def is_subcall(self):
-        if self.name in ['JAL', 'JALR']:
+        if self.name in ['JAL', 'JALR', 'BAL']:
             return True
         return False
 
-        if self.name == 'BLX':
-            return True
-        return self.additional_info.lnk
-
     def getdstflow(self, symbol_pool):
         if self.name in br_0:
             return [self.args[0]]