about summary refs log tree commit diff stats
path: root/miasm/expression/expression.py
diff options
context:
space:
mode:
authorserpilliere <devnull@localhost>2011-08-09 15:13:55 +0200
committerserpilliere <devnull@localhost>2011-08-09 15:13:55 +0200
commitaba3f7b9b637ebb1ce0463053e9185d6c0fca1fc (patch)
treeeb033395f1914e2b982aba4ad233a52b7b3b2dcd /miasm/expression/expression.py
parent9aa45f265e33cb7397c78470b7d1680f192c92df (diff)
downloadfocaccia-miasm-aba3f7b9b637ebb1ce0463053e9185d6c0fca1fc.tar.gz
focaccia-miasm-aba3f7b9b637ebb1ce0463053e9185d6c0fca1fc.zip
fix emulation on 64 bit
Diffstat (limited to 'miasm/expression/expression.py')
-rw-r--r--miasm/expression/expression.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/miasm/expression/expression.py b/miasm/expression/expression.py
index 4e4563c7..e472fb48 100644
--- a/miasm/expression/expression.py
+++ b/miasm/expression/expression.py
@@ -46,6 +46,12 @@ tab_int_size = {int8:8,
 my_size_mask = {1:1, 8:0xFF, 16:0xFFFF, 32:0xFFFFFFFF,  64:0xFFFFFFFFFFFFFFFFL}
 
 
+def is_int(a):
+    t = [int8, int16, int32, int64,
+         uint8, uint16, uint32, uint64]
+    return any([isinstance(a, x) for x in t])
+
+
 
 def get_missing_interval(all_intervals, i_min = 0, i_max = 32):
     my_intervals = all_intervals[:]
@@ -136,7 +142,7 @@ class ExprTop(Expr):
 
 class ExprInt(Expr):
     def __init__(self, arg):
-        if not type(arg) in tab_int_size:
+        if not is_int(arg):
             raise 'arg must by numpy int! %s'%str(arg)
         self.arg = arg
     def __str__(self):
@@ -370,6 +376,7 @@ class ExprMem(Expr):
 
     def toC(self):
         return "MEM_LOOKUP_%.2d(%s)"%(self.size, self.arg.toC())
+        
 
     
 class ExprOp(Expr):