about summary refs log tree commit diff stats
path: root/miasm2/analysis/machine.py
diff options
context:
space:
mode:
authorCM <devnull@localhost>2014-08-20 15:48:16 +0200
committerCM <devnull@localhost>2014-08-20 15:48:16 +0200
commit852d73e053689bea9babc5621579cf32be18349a (patch)
tree50162ed064636d1fb372a1bcc0f8acc5a0a192cc /miasm2/analysis/machine.py
parent6904a13d082fdf69cd6d428447ea648c473103fb (diff)
downloadmiasm-852d73e053689bea9babc5621579cf32be18349a.tar.gz
miasm-852d73e053689bea9babc5621579cf32be18349a.zip
Machine: add wrapper over jitter
Diffstat (limited to 'miasm2/analysis/machine.py')
-rw-r--r--miasm2/analysis/machine.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/miasm2/analysis/machine.py b/miasm2/analysis/machine.py
index cde04397..c3998e2d 100644
--- a/miasm2/analysis/machine.py
+++ b/miasm2/analysis/machine.py
@@ -8,6 +8,7 @@ class Machine(object):
     __dis_engine = None   # Disassembly engine
     __mn = None           # Machine instance
     __ira = None          # IR analyser
+    __jitter = None       # Jit engine
 
     __available = ["arm", "armt", "sh4", "x86_16", "x86_32", "x86_64", "msp430",
                    "mips32b", "mips32l"]
@@ -15,11 +16,17 @@ class Machine(object):
 
     def __init__(self, machine_name):
 
+        dis_engine = None
+        mn = None
+        ira = None
+        jitter = None
+
         # Import on runtime for performance issue
         if machine_name == "arm":
             from miasm2.arch.arm.disasm import dis_arm as dis_engine
             from miasm2.arch.arm.arch import mn_arm as mn
             from miasm2.arch.arm.ira import ir_a_arm as ira
+            from miasm2.jitter.jitload import jitter_arm as jitter
         elif machine_name == "armt":
             from miasm2.arch.arm.disasm import dis_armt as dis_engine
             from miasm2.arch.arm.arch import mn_armt as mn
@@ -32,18 +39,22 @@ class Machine(object):
             from miasm2.arch.x86.disasm import dis_x86_16 as dis_engine
             from miasm2.arch.x86.arch import mn_x86 as mn
             from miasm2.arch.x86.ira import ir_a_x86_16 as ira
+            from miasm2.jitter.jitload import jitter_x86_16 as jitter
         elif machine_name == "x86_32":
             from miasm2.arch.x86.disasm import dis_x86_32 as dis_engine
             from miasm2.arch.x86.arch import mn_x86 as mn
             from miasm2.arch.x86.ira import ir_a_x86_32 as ira
+            from miasm2.jitter.jitload import jitter_x86_32 as jitter
         elif machine_name == "x86_64":
             from miasm2.arch.x86.disasm import dis_x86_64 as dis_engine
             from miasm2.arch.x86.arch import mn_x86 as mn
             from miasm2.arch.x86.ira import ir_a_x86_64 as ira
+            from miasm2.jitter.jitload import jitter_x86_64 as jitter
         elif machine_name == "msp430":
             from miasm2.arch.msp430.disasm import dis_msp430 as dis_engine
             from miasm2.arch.msp430.arch import mn_msp430 as mn
             from miasm2.arch.msp430.ira import ir_a_msp430 as ira
+            from miasm2.jitter.jitload import jitter_msp430 as jitter
         elif machine_name == "mips32b":
             from miasm2.arch.mips32.disasm import dis_mips32b as dis_engine
             from miasm2.arch.mips32.arch import mn_mips32b as mn
@@ -58,6 +69,7 @@ class Machine(object):
         self.__dis_engine = dis_engine
         self.__mn = mn
         self.__ira = ira
+        self.__jitter = jitter
 
     def get_dis_engine(self):
         return self.__dis_engine
@@ -71,6 +83,10 @@ class Machine(object):
         return self.__ira
     ira = property(get_ira)
 
+    def get_jitter(self):
+        return self.__jitter
+    jitter = property(get_jitter)
+
     @classmethod
     def available_machine(cls):
         "Return a list of supported machines"