about summary refs log tree commit diff stats
path: root/miasm2/expression
diff options
context:
space:
mode:
authorAjax <commial@gmail.com>2017-03-29 15:44:15 +0200
committerAjax <commial@gmail.com>2017-03-30 16:04:40 +0200
commitf81c3e4b42d0ce487101b8e0802e43b32b261b1d (patch)
tree91fcd0b4317685bc4685acbb17affc3ec0f78afc /miasm2/expression
parentfd76e24c84825072ce18cab33fbcc496bd4d8d65 (diff)
downloadmiasm-f81c3e4b42d0ce487101b8e0802e43b32b261b1d.tar.gz
miasm-f81c3e4b42d0ce487101b8e0802e43b32b261b1d.zip
Replace ExprInt[num](x) -> ExprInt(x, num)
Diffstat (limited to 'miasm2/expression')
-rw-r--r--miasm2/expression/expression.py5
-rw-r--r--miasm2/expression/expression_helper.py2
-rw-r--r--miasm2/expression/modint.py2
-rw-r--r--miasm2/expression/simplifications_common.py6
-rw-r--r--miasm2/expression/simplifications_cond.py10
5 files changed, 13 insertions, 12 deletions
diff --git a/miasm2/expression/expression.py b/miasm2/expression/expression.py
index ead881ee..85471e05 100644
--- a/miasm2/expression/expression.py
+++ b/miasm2/expression/expression.py
@@ -30,7 +30,8 @@
 
 import itertools
 from operator import itemgetter
-from miasm2.expression.modint import mod_size2uint, is_modint, size2mask
+from miasm2.expression.modint import mod_size2uint, is_modint, size2mask, \
+    define_uint
 from miasm2.core.graph import DiGraph
 import warnings
 
@@ -462,7 +463,7 @@ class ExprInt(Expr):
         return self
 
     def copy(self):
-        return ExprInt(self.__arg)
+        return ExprInt(self.__arg, self.__size)
 
     def depth(self):
         return 1
diff --git a/miasm2/expression/expression_helper.py b/miasm2/expression/expression_helper.py
index 36e5f1d5..1e718faa 100644
--- a/miasm2/expression/expression_helper.py
+++ b/miasm2/expression/expression_helper.py
@@ -521,7 +521,7 @@ class CondConstraintNotZero(CondConstraint):
     operator = "!="
 
     def to_constraint(self):
-        cst1, cst2 = m2_expr.ExprInt1(0), m2_expr.ExprInt1(1)
+        cst1, cst2 = m2_expr.ExprInt(0, 1), m2_expr.ExprInt(1, 1)
         return m2_expr.ExprAff(cst1, m2_expr.ExprCond(self.expr, cst1, cst2))
 
 
diff --git a/miasm2/expression/modint.py b/miasm2/expression/modint.py
index b6a0e4ee..51a2620e 100644
--- a/miasm2/expression/modint.py
+++ b/miasm2/expression/modint.py
@@ -224,7 +224,7 @@ def define_uint(size):
     return cls
 
 def define_common_int():
-    "Define common int: ExprInt1, ExprInt2, .."
+    "Define common int"
     common_int = xrange(1, 257)
 
     for i in common_int:
diff --git a/miasm2/expression/simplifications_common.py b/miasm2/expression/simplifications_common.py
index c9b7932a..01db7597 100644
--- a/miasm2/expression/simplifications_common.py
+++ b/miasm2/expression/simplifications_common.py
@@ -238,7 +238,7 @@ def simp_cst_propagation(e_s, e):
 
     # parity(int) => int
     if op == 'parity' and args[0].is_int():
-        return ExprInt1(parity(int(args[0])))
+        return ExprInt(parity(int(args[0])), 1)
 
     # (-a) * b * (-c) * (-d) => (-a) * b * c * d
     if op == "*" and len(args) > 1:
@@ -581,8 +581,8 @@ def simp_cond(e_s, e):
     # eval exprcond src1/src2 with satifiable/unsatisfiable condition
     # propagation
     if (not e.cond.is_int()) and e.cond.size == 1:
-        src1 = e.src1.replace_expr({e.cond: ExprInt1(1)})
-        src2 = e.src2.replace_expr({e.cond: ExprInt1(0)})
+        src1 = e.src1.replace_expr({e.cond: ExprInt(1, 1)})
+        src2 = e.src2.replace_expr({e.cond: ExprInt(0, 1)})
         if src1 != e.src1 or src2 != e.src2:
             return ExprCond(e.cond, src1, src2)
 
diff --git a/miasm2/expression/simplifications_cond.py b/miasm2/expression/simplifications_cond.py
index 03bf6166..0d194d9a 100644
--- a/miasm2/expression/simplifications_cond.py
+++ b/miasm2/expression/simplifications_cond.py
@@ -169,7 +169,7 @@ def expr_simp_inverse(expr_simp, e):
 def expr_simp_equal(expr_simp, e):
     """(x - y)?(0:1) == (x == y)"""
 
-    to_match = m2_expr.ExprCond(jok1 + jok2, m2_expr.ExprInt1(0), m2_expr.ExprInt1(1))
+    to_match = m2_expr.ExprCond(jok1 + jok2, m2_expr.ExprInt(0, 1), m2_expr.ExprInt(1, 1))
     r = __MatchExprWrap(e,
                         to_match,
                         [jok1, jok2])
@@ -188,13 +188,13 @@ def exec_inf_unsigned(expr_simp, e):
     arg1, arg2 = e.args
 
     if isinstance(arg1, m2_expr.ExprInt) and isinstance(arg2, m2_expr.ExprInt):
-        return m2_expr.ExprInt1(1) if (arg1.arg < arg2.arg) else m2_expr.ExprInt1(0)
+        return m2_expr.ExprInt(1, 1) if (arg1.arg < arg2.arg) else m2_expr.ExprInt(0, 1)
     else:
         return e
 
 
 def __comp_signed(arg1, arg2):
-    """Return ExprInt1(1) if arg1 <s arg2 else ExprInt1(0)
+    """Return ExprInt(1, 1) if arg1 <s arg2 else ExprInt(0, 1)
     @arg1, @arg2: ExprInt"""
 
     val1 = int(arg1)
@@ -205,7 +205,7 @@ def __comp_signed(arg1, arg2):
     if val2 >> (arg2.size - 1) == 1:
         val2 = - ((int(arg2.mask) ^ val2) + 1)
 
-    return m2_expr.ExprInt1(1) if (val1 < val2) else m2_expr.ExprInt1(0)
+    return m2_expr.ExprInt(1, 1) if (val1 < val2) else m2_expr.ExprInt(0, 1)
 
 def exec_inf_signed(expr_simp, e):
     "Compute x <s y"
@@ -228,6 +228,6 @@ def exec_equal(expr_simp, e):
 
     arg1, arg2 = e.args
     if isinstance(arg1, m2_expr.ExprInt) and isinstance(arg2, m2_expr.ExprInt):
-        return m2_expr.ExprInt1(1) if (arg1.arg == arg2.arg) else m2_expr.ExprInt1(0)
+        return m2_expr.ExprInt(1, 1) if (arg1.arg == arg2.arg) else m2_expr.ExprInt(0, 1)
     else:
         return e