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>2018-10-08 23:30:01 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2018-10-09 08:17:50 +0200
commita11964b49954c7bba71264b5b27e31cec01e8481 (patch)
tree6e5ceb05924e9ab154648983df0e9b9d8f2dda64 /miasm2/expression/simplifications_common.py
parent3cd3675165cd96c030401fbb1e6392898507a71b (diff)
downloadmiasm-a11964b49954c7bba71264b5b27e31cec01e8481.tar.gz
miasm-a11964b49954c7bba71264b5b27e31cec01e8481.zip
Simplifications: fix bad simplifications
Diffstat (limited to 'miasm2/expression/simplifications_common.py')
-rw-r--r--miasm2/expression/simplifications_common.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/miasm2/expression/simplifications_common.py b/miasm2/expression/simplifications_common.py
index e7dacc91..2eeabd9b 100644
--- a/miasm2/expression/simplifications_common.py
+++ b/miasm2/expression/simplifications_common.py
@@ -885,6 +885,8 @@ def simp_cond_flag(expr_simp, expr):
 
 
 def simp_cond_int(expr_simp, expr):
+    # ({X, 0} == int) => X == int[:]
+    # X + int1 == int2 => X == int2-int1
     if (expr.cond.is_op(TOK_EQUAL) and
           expr.cond.args[1].is_int() and
           expr.cond.args[0].is_compose() and
@@ -903,15 +905,15 @@ def simp_cond_int(expr_simp, expr):
     elif (expr.cond.is_op() and
           expr.cond.op in [
               TOK_EQUAL,
-              TOK_INF_SIGNED,
-              TOK_INF_EQUAL_SIGNED,
-              TOK_INF_UNSIGNED,
-              TOK_INF_EQUAL_UNSIGNED
           ] and
           expr.cond.args[1].is_int() and
           expr.cond.args[0].is_op("+") and
           expr.cond.args[0].args[-1].is_int()):
         # X + int1 == int2 => X == int2-int1
+        # WARNING:
+        # X - 0x10 <=u 0x20 gives X in [0x10 0x30]
+        # which is not equivalet to A <=u 0x10
+
         left, right = expr.cond.args
         left, int_diff = left.args[:-1], left.args[-1]
         if len(left) == 1: