about summary refs log tree commit diff stats
path: root/miasm2/analysis/machine.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2016-11-03 23:04:20 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2016-11-03 23:04:20 +0100
commitc2c45794e2c1d432c50e1844c5424fdb4ee77883 (patch)
tree770862129a667c7e218516422bb9894106916428 /miasm2/analysis/machine.py
parent4bffc1140aecaf4d6e6f3ae2a049e326d6f4bb6f (diff)
downloadmiasm-c2c45794e2c1d432c50e1844c5424fdb4ee77883.tar.gz
miasm-c2c45794e2c1d432c50e1844c5424fdb4ee77883.zip
Machine: fix jit dependencies
Diffstat (limited to 'miasm2/analysis/machine.py')
-rw-r--r--miasm2/analysis/machine.py90
1 files changed, 68 insertions, 22 deletions
diff --git a/miasm2/analysis/machine.py b/miasm2/analysis/machine.py
index 6af403ff..6215a21b 100644
--- a/miasm2/analysis/machine.py
+++ b/miasm2/analysis/machine.py
@@ -32,30 +32,46 @@ class Machine(object):
         # Import on runtime for performance issue
         if machine_name == "arml":
             from miasm2.arch.arm.disasm import dis_arml as dis_engine
-            from miasm2.arch.arm import arch, jit
+            from miasm2.arch.arm import arch
+            try:
+                from miasm2.arch.arm import jit
+                jitter = jit.jitter_arml
+            except ImportError:
+                pass
             mn = arch.mn_arm
-            jitter = jit.jitter_arml
             from miasm2.arch.arm.ira import ir_a_arml as ira
             from miasm2.arch.arm.sem import ir_arml as ir
         elif machine_name == "armb":
             from miasm2.arch.arm.disasm import dis_armb as dis_engine
-            from miasm2.arch.arm import arch, jit
+            from miasm2.arch.arm import arch
+            try:
+                from miasm2.arch.arm import jit
+                jitter = jit.jitter_armb
+            except ImportError:
+                pass
             mn = arch.mn_arm
-            jitter = jit.jitter_armb
             from miasm2.arch.arm.ira import ir_a_armb as ira
             from miasm2.arch.arm.sem import ir_armb as ir
         elif machine_name == "aarch64l":
             from miasm2.arch.aarch64.disasm import dis_aarch64l as dis_engine
-            from miasm2.arch.aarch64 import arch, jit
+            from miasm2.arch.aarch64 import arch
+            try:
+                from miasm2.arch.aarch64 import jit
+                jitter = jit.jitter_aarch64l
+            except ImportError:
+                pass
             mn = arch.mn_aarch64
-            jitter = jit.jitter_aarch64l
             from miasm2.arch.aarch64.ira import ir_a_aarch64l as ira
             from miasm2.arch.aarch64.sem import ir_aarch64l as ir
         elif machine_name == "aarch64b":
             from miasm2.arch.aarch64.disasm import dis_aarch64b as dis_engine
-            from miasm2.arch.aarch64 import arch, jit
+            from miasm2.arch.aarch64 import arch
+            try:
+                from miasm2.arch.aarch64 import jit
+                jitter = jit.jitter_aarch64b
+            except ImportError:
+                pass
             mn = arch.mn_aarch64
-            jitter = jit.jitter_aarch64b
             from miasm2.arch.aarch64.ira import ir_a_aarch64b as ira
             from miasm2.arch.aarch64.sem import ir_aarch64b as ir
         elif machine_name == "armtl":
@@ -75,46 +91,76 @@ class Machine(object):
             mn = arch.mn_sh4
         elif machine_name == "x86_16":
             from miasm2.arch.x86.disasm import dis_x86_16 as dis_engine
-            from miasm2.arch.x86 import arch, jit
+            from miasm2.arch.x86 import arch
+            try:
+                from miasm2.arch.x86 import jit
+                jitter = jit.jitter_x86_16
+            except ImportError:
+                pass
             mn = arch.mn_x86
-            jitter = jit.jitter_x86_16
             from miasm2.arch.x86.ira import ir_a_x86_16 as ira
             from miasm2.arch.x86.sem import ir_x86_16 as ir
         elif machine_name == "x86_32":
             from miasm2.arch.x86.disasm import dis_x86_32 as dis_engine
-            from miasm2.arch.x86 import arch, jit
+            from miasm2.arch.x86 import arch
+            try:
+                from miasm2.arch.x86 import jit
+                jitter = jit.jitter_x86_32
+            except ImportError:
+                pass
             mn = arch.mn_x86
-            jitter = jit.jitter_x86_32
             from miasm2.arch.x86.ira import ir_a_x86_32 as ira
             from miasm2.arch.x86.sem import ir_x86_32 as ir
-            from miasm2.analysis.gdbserver import GdbServer_x86_32 as gdbserver
+            try:
+                from miasm2.analysis.gdbserver import GdbServer_x86_32 as gdbserver
+            except ImportError:
+                pass
         elif machine_name == "x86_64":
             from miasm2.arch.x86.disasm import dis_x86_64 as dis_engine
-            from miasm2.arch.x86 import arch, jit
+            from miasm2.arch.x86 import arch
+            try:
+                from miasm2.arch.x86 import jit
+                jitter = jit.jitter_x86_64
+            except ImportError:
+                pass
             mn = arch.mn_x86
-            jitter = jit.jitter_x86_64
             from miasm2.arch.x86.ira import ir_a_x86_64 as ira
             from miasm2.arch.x86.sem import ir_x86_64 as ir
         elif machine_name == "msp430":
             from miasm2.arch.msp430.disasm import dis_msp430 as dis_engine
-            from miasm2.arch.msp430 import arch, jit
+            from miasm2.arch.msp430 import arch
+            try:
+                from miasm2.arch.msp430 import jit
+                jitter = jit.jitter_msp430
+            except ImportError:
+                pass
             mn = arch.mn_msp430
-            jitter = jit.jitter_msp430
             from miasm2.arch.msp430.ira import ir_a_msp430 as ira
             from miasm2.arch.msp430.sem import ir_msp430 as ir
-            from miasm2.analysis.gdbserver import GdbServer_msp430 as gdbserver
+            try:
+                from miasm2.analysis.gdbserver import GdbServer_msp430 as gdbserver
+            except ImportError:
+                pass
         elif machine_name == "mips32b":
             from miasm2.arch.mips32.disasm import dis_mips32b as dis_engine
-            from miasm2.arch.mips32 import arch, jit
+            from miasm2.arch.mips32 import arch
+            try:
+                from miasm2.arch.mips32 import jit
+                jitter = jit.jitter_mips32b
+            except ImportError:
+                pass
             mn = arch.mn_mips32
-            jitter = jit.jitter_mips32b
             from miasm2.arch.mips32.ira import ir_a_mips32b as ira
             from miasm2.arch.mips32.sem import ir_mips32b as ir
         elif machine_name == "mips32l":
             from miasm2.arch.mips32.disasm import dis_mips32l as dis_engine
-            from miasm2.arch.mips32 import arch, jit
+            from miasm2.arch.mips32 import arch
+            try:
+                from miasm2.arch.mips32 import jit
+                jitter = jit.jitter_mips32l
+            except ImportError:
+                pass
             mn = arch.mn_mips32
-            jitter = jit.jitter_mips32l
             from miasm2.arch.mips32.ira import ir_a_mips32l as ira
             from miasm2.arch.mips32.sem import ir_mips32l as ir
         else: