about summary refs log tree commit diff stats
path: root/miasm2/jitter/codegen.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2018-08-05 20:42:13 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2018-08-06 18:58:07 +0200
commit27461051227c2e1ff93ecb9c5f7ad89ae3239a24 (patch)
tree2fd885f673267da66e3795e9cc0caf65a796a311 /miasm2/jitter/codegen.py
parentf35957e5fccebc6cbc35f9188f980119e2e891e0 (diff)
downloadmiasm-27461051227c2e1ff93ecb9c5f7ad89ae3239a24.tar.gz
miasm-27461051227c2e1ff93ecb9c5f7ad89ae3239a24.zip
Codegen: simplify high level op
Diffstat (limited to 'miasm2/jitter/codegen.py')
-rw-r--r--miasm2/jitter/codegen.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/miasm2/jitter/codegen.py b/miasm2/jitter/codegen.py
index abba9843..fec10f41 100644
--- a/miasm2/jitter/codegen.py
+++ b/miasm2/jitter/codegen.py
@@ -8,6 +8,7 @@ from miasm2.ir.ir import IRBlock, AssignBlock
 
 from miasm2.ir.translators.C import TranslatorC, int_size_to_bn
 from miasm2.core.asmblock import AsmBlockBad
+from miasm2.expression.simplifications_high_level import expr_simp
 
 TRANSLATOR_NO_SYMBOL = TranslatorC(loc_db=None)
 
@@ -166,6 +167,13 @@ class CGen(object):
             irblock_head = self.assignblk_to_irbloc(instr, assignblk_head)
             irblocks = [irblock_head] + assignblks_extra
 
+            # Simplify high level operators
+            out = []
+            for irblock in irblocks:
+                new_irblock = irblock.simplify(expr_simp)[1]
+                out.append(new_irblock)
+            irblocks = out
+
             for irblock in irblocks:
                 assert irblock.dst is not None
             irblocks_list.append(irblocks)