about summary refs log tree commit diff stats
path: root/miasm2/expression/simplifications_common.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2019-02-25 11:09:54 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2019-03-05 16:52:49 +0100
commit02bbb30efea4980c9d133947cbbf69fb599071ad (patch)
tree3fea6826fcc5354840a27cb1dc99ff31eef81896 /miasm2/expression/simplifications_common.py
parenteab809932871f91d6f4aa770fc321af9e156e0f5 (diff)
downloadmiasm-02bbb30efea4980c9d133947cbbf69fb599071ad.tar.gz
miasm-02bbb30efea4980c9d133947cbbf69fb599071ad.zip
Support python2/python3
Diffstat (limited to 'miasm2/expression/simplifications_common.py')
-rw-r--r--miasm2/expression/simplifications_common.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/miasm2/expression/simplifications_common.py b/miasm2/expression/simplifications_common.py
index a4b7c61e..ddcfc668 100644
--- a/miasm2/expression/simplifications_common.py
+++ b/miasm2/expression/simplifications_common.py
@@ -2,6 +2,7 @@
 # Common simplifications passes #
 # ----------------------------- #
 
+from future.utils import viewitems
 
 from miasm2.expression.modint import mod_size2int, mod_size2uint
 from miasm2.expression.expression import ExprInt, ExprSlice, ExprMem, \
@@ -70,14 +71,14 @@ def simp_cst_propagation(e_s, expr):
                 shifter = int2.arg % int2.size
                 out = (int1.arg << shifter) | (int1.arg >> (int2.size - shifter))
             elif op_name == '/':
-                out = int1.arg / int2.arg
+                out = int1.arg // int2.arg
             elif op_name == '%':
                 out = int1.arg % int2.arg
             elif op_name == 'sdiv':
                 assert int2.arg.arg
                 tmp1 = mod_size2int[int1.arg.size](int1.arg)
                 tmp2 = mod_size2int[int2.arg.size](int2.arg)
-                out = mod_size2uint[int1.arg.size](tmp1 / tmp2)
+                out = mod_size2uint[int1.arg.size](tmp1 // tmp2)
             elif op_name == 'smod':
                 assert int2.arg.arg
                 tmp1 = mod_size2int[int1.arg.size](int1.arg)
@@ -92,7 +93,7 @@ def simp_cst_propagation(e_s, expr):
                 assert int2.arg.arg
                 tmp1 = mod_size2uint[int1.arg.size](int1.arg)
                 tmp2 = mod_size2uint[int2.arg.size](int2.arg)
-                out = mod_size2uint[int1.arg.size](tmp1 / tmp2)
+                out = mod_size2uint[int1.arg.size](tmp1 // tmp2)
 
 
 
@@ -151,7 +152,8 @@ def simp_cst_propagation(e_s, expr):
         if len(args) > 2:
             raise ValueError(
                 'sanity check fail on expr -: should have one or 2 args ' +
-                '%r %s' % (expr, expr))
+                '%r %s' % (expr, expr)
+            )
         return ExprOp('+', args[0], -args[1])
 
     # A op 0 => 0
@@ -445,7 +447,7 @@ def simp_cond_factor(e_s, expr):
 
     # Rebuild the new expression
     c_out = not_conds
-    for cond, vals in conds.items():
+    for cond, vals in viewitems(conds):
         new_src1 = [x.src1 for x in vals]
         new_src2 = [x.src2 for x in vals]
         src1 = e_s.expr_simp_wrapper(ExprOp(expr.op, *new_src1))
@@ -583,7 +585,7 @@ def simp_compose(e_s, expr):
         nxt = args[i + 1]
         if arg.is_mem() and nxt.is_mem():
             gap = e_s(nxt.ptr - arg.ptr)
-            if gap.is_int() and arg.size % 8 == 0 and int(gap) == arg.size / 8:
+            if gap.is_int() and arg.size % 8 == 0 and int(gap) == arg.size // 8:
                 args = args[:i] + [ExprMem(arg.ptr,
                                           arg.size + nxt.size)] + args[i + 2:]
                 return ExprCompose(*args)
@@ -1520,7 +1522,7 @@ def simp_add_multiple(_, expr):
     modified = True
     while modified:
         modified = False
-        for arg, count in operands.iteritems():
+        for arg, count in list(viewitems(operands)):
             if not arg.is_op('+'):
                 continue
             components = arg.args
@@ -1536,7 +1538,7 @@ def simp_add_multiple(_, expr):
             modified = True
             break
 
-    for arg, count in operands.iteritems():
+    for arg, count in viewitems(operands):
         if count == 0:
             continue
         if count == 1: