diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-08-05 20:42:13 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-08-06 18:58:07 +0200 |
| commit | 27461051227c2e1ff93ecb9c5f7ad89ae3239a24 (patch) | |
| tree | 2fd885f673267da66e3795e9cc0caf65a796a311 /miasm2/jitter/codegen.py | |
| parent | f35957e5fccebc6cbc35f9188f980119e2e891e0 (diff) | |
| download | miasm-27461051227c2e1ff93ecb9c5f7ad89ae3239a24.tar.gz miasm-27461051227c2e1ff93ecb9c5f7ad89ae3239a24.zip | |
Codegen: simplify high level op
Diffstat (limited to 'miasm2/jitter/codegen.py')
| -rw-r--r-- | miasm2/jitter/codegen.py | 8 |
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) |