diff options
| author | serpilliere <devnull@localhost> | 2011-08-09 15:13:55 +0200 |
|---|---|---|
| committer | serpilliere <devnull@localhost> | 2011-08-09 15:13:55 +0200 |
| commit | aba3f7b9b637ebb1ce0463053e9185d6c0fca1fc (patch) | |
| tree | eb033395f1914e2b982aba4ad233a52b7b3b2dcd /miasm/expression/expression.py | |
| parent | 9aa45f265e33cb7397c78470b7d1680f192c92df (diff) | |
| download | focaccia-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.py | 9 |
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): |