diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-08-06 15:23:07 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-08-06 18:58:07 +0200 |
| commit | aa9416253ec2bafb50a295335b8e04a839c5632d (patch) | |
| tree | 645e57bf70a03633fd9d9be91fd0fd2d87e75494 /miasm2/arch/arm/jit.py | |
| parent | 27461051227c2e1ff93ecb9c5f7ad89ae3239a24 (diff) | |
| download | miasm-aa9416253ec2bafb50a295335b8e04a839c5632d.tar.gz miasm-aa9416253ec2bafb50a295335b8e04a839c5632d.zip | |
Symbexec: Use simplifier with high level in symbexec
Diffstat (limited to 'miasm2/arch/arm/jit.py')
| -rw-r--r-- | miasm2/arch/arm/jit.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/miasm2/arch/arm/jit.py b/miasm2/arch/arm/jit.py index 267bcea6..716a8826 100644 --- a/miasm2/arch/arm/jit.py +++ b/miasm2/arch/arm/jit.py @@ -8,6 +8,7 @@ from miasm2.jitter.codegen import CGen from miasm2.expression.expression import ExprId, ExprAff, ExprCond from miasm2.ir.ir import IRBlock, AssignBlock from miasm2.ir.translators.C import TranslatorC +from miasm2.expression.simplifications import expr_simp_high_to_explicit log = logging.getLogger('jit_arm') hnd = logging.StreamHandler() @@ -45,6 +46,15 @@ class arm_CGen(CGen): 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_high_to_explicit)[1] + out.append(new_irblock) + irblocks = out + + for irblock in irblocks: assert irblock.dst is not None irblocks_list.append(irblocks) |