about summary refs log tree commit diff stats
path: root/miasm2/arch/mips32/sem.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--miasm2/arch/mips32/sem.py110
1 files changed, 27 insertions, 83 deletions
diff --git a/miasm2/arch/mips32/sem.py b/miasm2/arch/mips32/sem.py
index ca368883..d634c208 100644
--- a/miasm2/arch/mips32/sem.py
+++ b/miasm2/arch/mips32/sem.py
@@ -408,89 +408,33 @@ def ei(a):
 def ehb(a):
     "NOP"
 
-mnemo_func = {
-    "addiu": addiu,
-    "addu": addiu,
-    "lw" : lw,
-    "sw" : sw,
-    "sh" : sh,
-    "sb" : sb,
-    "jalr" : jalr,
-    "jal" : jal,
-    "bal" : bal,
-    "b" : l_b,
-    "lbu" : lbu,
-    "lhu" : lhu,
-    "lb" : lb,
-    "beq" : beq,
-    "bgez" : bgez,
-    "bltz" : bltz,
-    "bgtz" : bgtz,
-    "bne" : bne,
-    "lui" : lui,
-    "nop" : nop,
-    "j" : j,
-    "jr" : j,
-    "ori" : l_or,
-    "or" : l_or,
-    "nor" : nor,
-    "and" : l_and,
-    "andi" : l_and,
-    "ext" : ext,
-    "mul" : mul,
-    "sltu" : sltu,
-    "slt" : slt,
-    "slti" : slt,
-    "sltiu" : sltu,
-    "subu" : l_sub,
-    "movn" : movn,
-    "movz" : movz,
-    "srl" : srl,
-    "sra" : sra,
-    "srav" : srav,
-    "sll" : sll,
-    "srlv" : srlv,
-    "sllv" : sllv,
-    "xori" : l_xor,
-    "xor" : l_xor,
-    "seb" : seb,
-    "seh" : seh,
-    "bltz" : bltz,
-    "blez" : blez,
-    "wsbh" : wsbh,
-    "rotr" : rotr,
-    # "mfc0" : mfc0,
-    # "mfc1" : mfc1,
-    # "mtc0" : mtc0,
-    # "mtc1" : mtc1,
-    "tlbwi" : tlbwi,
-    "tlbp" : tlbp,
-    "ins" : ins,
-
-    "add.d" : add_d,
-    "sub.d" : sub_d,
-    "div.d" : div_d,
-    "mul.d" : mul_d,
-    "mov.d" : mov_d,
-    "lwc1" : lwc1,
-    "swc1" : swc1,
-    "c.lt.d" : c_lt_d,
-    "c.eq.d" : c_eq_d,
-    "c.le.d" : c_le_d,
-    "bc1t" : bc1t,
-    "bc1f" : bc1f,
-    "cvt.d.w":cvt_d_w,
-    "mult" : mult,
-    "multu" : multu,
-
-    "mfhi" : mfhi,
-    "mflo" : mflo,
-
-    "di" : di,
-    "ei" : ei,
-    "ehb" : ehb,
-
-    }
+mnemo_func = sbuild.functions
+mnemo_func.update({
+        'add.d': add_d,
+        'addu': addiu,
+        'and': l_and,
+        'andi': l_and,
+        'b': l_b,
+        'c.eq.d': c_eq_d,
+        'c.le.d': c_le_d,
+        'c.lt.d': c_lt_d,
+        'cvt.d.w': cvt_d_w,
+        'div.d': div_d,
+        'ins': ins,
+        'jr': j,
+        'mov.d': mov_d,
+        'movn': movn,
+        'movz': movz,
+        'mul.d': mul_d,
+        'or': l_or,
+        'ori': l_or,
+        'slti': slt,
+        'sltiu': sltu,
+        'sub.d': sub_d,
+        'subu': l_sub,
+        'xor': l_xor,
+        'xori': l_xor,
+})
 
 def get_mnemo_expr(ir, instr, *args):
     instr, extra_ir = mnemo_func[instr.name.lower()](ir, instr, *args)