about summary refs log tree commit diff stats
path: root/miasm2/expression/simplifications.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2018-10-09 07:40:52 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2018-10-09 08:17:50 +0200
commite5c439d3b4ee7120fae3d15ae7106cce8d0dcbde (patch)
tree4cd9776c937960779dd213f20a002a8a8880b92a /miasm2/expression/simplifications.py
parenta11964b49954c7bba71264b5b27e31cec01e8481 (diff)
downloadmiasm-e5c439d3b4ee7120fae3d15ae7106cce8d0dcbde.tar.gz
miasm-e5c439d3b4ee7120fae3d15ae7106cce8d0dcbde.zip
Simplifications: simplify by default high level op
Simplifify by default high level operators (<u, ...) with pure cst as arguments
Diffstat (limited to 'miasm2/expression/simplifications.py')
-rw-r--r--miasm2/expression/simplifications.py28
1 files changed, 19 insertions, 9 deletions
diff --git a/miasm2/expression/simplifications.py b/miasm2/expression/simplifications.py
index e090d806..2807b4b3 100644
--- a/miasm2/expression/simplifications.py
+++ b/miasm2/expression/simplifications.py
@@ -46,9 +46,15 @@ class ExpressionSimplifier(object):
             simplifications_common.simp_double_signext,
             simplifications_common.simp_zeroext_eq_cst,
 
+            simplifications_common.simp_cmp_int_int,
+            simplifications_common.simp_ext_cst,
+
         ],
 
-        m2_expr.ExprSlice: [simplifications_common.simp_slice],
+        m2_expr.ExprSlice: [
+            simplifications_common.simp_slice,
+            simplifications_common.simp_slice_of_ext,
+        ],
         m2_expr.ExprCompose: [simplifications_common.simp_compose],
         m2_expr.ExprCond: [
             simplifications_common.simp_cond,
@@ -68,14 +74,18 @@ class ExpressionSimplifier(object):
     PASS_HEAVY = {}
 
     # Cond passes
-    PASS_COND = {m2_expr.ExprSlice: [simplifications_cond.expr_simp_inf_signed,
-                                     simplifications_cond.expr_simp_inf_unsigned_inversed],
-                 m2_expr.ExprOp: [simplifications_cond.exec_inf_unsigned,
-                                  simplifications_cond.exec_inf_signed,
-                                  simplifications_cond.expr_simp_inverse,
-                                  simplifications_cond.exec_equal],
-                 m2_expr.ExprCond: [simplifications_cond.expr_simp_equal]
-                 }
+    PASS_COND = {
+        m2_expr.ExprSlice: [
+            simplifications_cond.expr_simp_inf_signed,
+            simplifications_cond.expr_simp_inf_unsigned_inversed
+        ],
+        m2_expr.ExprOp: [
+            simplifications_cond.expr_simp_inverse,
+        ],
+        m2_expr.ExprCond: [
+            simplifications_cond.expr_simp_equal
+        ]
+    }
 
 
     # Available passes lists are: