about summary refs log tree commit diff stats
path: root/miasm2/arch/mips32/arch.py
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/arch/mips32/arch.py')
-rw-r--r--miasm2/arch/mips32/arch.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/miasm2/arch/mips32/arch.py b/miasm2/arch/mips32/arch.py
index c6c5a55d..447669ef 100644
--- a/miasm2/arch/mips32/arch.py
+++ b/miasm2/arch/mips32/arch.py
@@ -52,7 +52,7 @@ class additional_info:
         self.except_on_instr = False
 br_flt = ['BC1F']
 
-br_0 = ['B', 'JR', 'BAL', 'JALR']
+br_0 = ['B', 'JR', 'BAL', 'JAL', 'JALR']
 br_1 = ['BGEZ', 'BLTZ', 'BGTZ', 'BLEZ', 'BC1T', 'BC1F'] + br_flt
 br_2 = ['BEQ', 'BEQL', 'BNE']
 
@@ -116,7 +116,7 @@ class instruction_mips32(instruction):
     def breakflow(self):
         if self.name == 'BREAK':
             return False
-        if self.name.startswith('B') or self.name in ['JR', 'J', 'JALR']:
+        if self.name.startswith('B') or self.name in ['JR', 'J', 'JAL', 'JALR']:
             return True
         return False
 
@@ -542,6 +542,7 @@ bs_arith = bs_name(l=6, name={'ADDU':0b100001,
                               'SUBU':0b100011,
                               'NOR':0b100111,
                               'MOVN':0b001011,
+                              'MOVZ':0b001010,
                               })
 
 bs_shift = bs_name(l=6, name={'SLL':0b000000,
@@ -643,6 +644,7 @@ mips32op("sltiu",   [bs('001011'), rs, rt, s16imm], [rt, rs, s16imm])
 
 
 mips32op("j",       [bs('000010'), instr_index])
+mips32op("jal",     [bs('000011'), instr_index])
 mips32op("jalr",    [bs('000000'), rs, bs('00000'), rd, hint, bs('001001')])
 mips32op("jr",      [bs('000000'), rs, bs('0000000000'), hint, bs('001000')])