about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorserpilliere <devnull@localhost>2012-06-22 11:11:28 +0200
committerserpilliere <devnull@localhost>2012-06-22 11:11:28 +0200
commitb35f0f2217f4ffe27d46f6618d54689746f50af0 (patch)
tree463d9550f6c9ff23ef796f5fc6c5ab29cc64a7bb
parent19fe36322489198269f449d653fff71195af9805 (diff)
downloadmiasm-b35f0f2217f4ffe27d46f6618d54689746f50af0.tar.gz
miasm-b35f0f2217f4ffe27d46f6618d54689746f50af0.zip
expression eval abs: fix missing uint1
-rw-r--r--miasm/expression/expression.py4
-rw-r--r--miasm/expression/expression_eval_abstract.py6
-rw-r--r--miasm/expression/expression_helper.py8
3 files changed, 12 insertions, 6 deletions
diff --git a/miasm/expression/expression.py b/miasm/expression/expression.py
index 921b1166..6e8d25e9 100644
--- a/miasm/expression/expression.py
+++ b/miasm/expression/expression.py
@@ -766,8 +766,8 @@ tab_uintsize ={1:uint1,
                64:uint64
                }
 
-def ExprInt08(i):
-    return ExprInt(uint08(i))
+def ExprInt8(i):
+    return ExprInt(uint8(i))
 def ExprInt16(i):
     return ExprInt(uint16(i))
 def ExprInt32(i):
diff --git a/miasm/expression/expression_eval_abstract.py b/miasm/expression/expression_eval_abstract.py
index 43feb031..9fc20c4f 100644
--- a/miasm/expression/expression_eval_abstract.py
+++ b/miasm/expression/expression_eval_abstract.py
@@ -33,7 +33,8 @@ mymaxuint = {8:0xFFL,
 
 #expression evaluation in integer domain
 
-tab_int_size = {uint8:8,
+tab_int_size = {uint1:1,
+                uint8:8,
                 uint16:16,
                 uint32:32,
                 uint64:64
@@ -44,7 +45,8 @@ tab_intsize = {8:int8,
                32:int32,
                64:int64
                }
-tab_uintsize ={8:uint8,
+tab_uintsize ={1:uint1,
+               8:uint8,
                16:uint16,
                32:uint32,
                64:uint64
diff --git a/miasm/expression/expression_helper.py b/miasm/expression/expression_helper.py
index ffa8cbd3..39f643f1 100644
--- a/miasm/expression/expression_helper.py
+++ b/miasm/expression/expression_helper.py
@@ -17,7 +17,8 @@
 #
 from miasm.expression.expression import *
 
-tab_size_int = {8:uint8,
+tab_size_int = {1:uint1,
+                8:uint8,
                 16:uint16,
                 32:uint32,
                 64:uint64,
@@ -154,7 +155,9 @@ def _expr_simp(e):
                 i1 = args.pop()
                 i2 = args.pop()
                 if i1.get_size() != i2.get_size():
-                    raise ValueError("diff size! %s"%(str(e)))
+                    raise ValueError("diff size! %s %r %r"%(str(e),
+                                                            i1.get_size(),
+                                                            i2.get_size()))
                 if op == '+':
                     o = i1.arg + i2.arg
                 elif op == '*':
@@ -286,6 +289,7 @@ def _expr_simp(e):
             if total_bit in tab_size_int:
                 return ExprInt(tab_size_int[total_bit]((uint64((e.arg.arg)>>e.start)) & mask))
             else:
+                fds
                 return ExprInt(type(e.arg.arg)((uint64((e.arg.arg)>>e.start)) & mask))
         # Slice(Slice(A, x), y) => Slice(A, z)
         elif isinstance(e.arg, ExprSlice):