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/ir/translators/z3_ir.py | |
| parent | 27461051227c2e1ff93ecb9c5f7ad89ae3239a24 (diff) | |
| download | miasm-aa9416253ec2bafb50a295335b8e04a839c5632d.tar.gz miasm-aa9416253ec2bafb50a295335b8e04a839c5632d.zip | |
Symbexec: Use simplifier with high level in symbexec
Diffstat (limited to 'miasm2/ir/translators/z3_ir.py')
| -rw-r--r-- | miasm2/ir/translators/z3_ir.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/miasm2/ir/translators/z3_ir.py b/miasm2/ir/translators/z3_ir.py index 887c68d0..1b0578b7 100644 --- a/miasm2/ir/translators/z3_ir.py +++ b/miasm2/ir/translators/z3_ir.py @@ -229,6 +229,12 @@ class TranslatorZ3(Translator): index = - i % size out = size - (index + 1) res = z3.If((src & (1 << index)) != 0, out, res) + elif expr.op.startswith("zeroExt"): + arg, = expr.args + res = z3.ZeroExt(expr.size - arg.size, self.from_expr(arg)) + elif expr.op.startswith("signExt"): + arg, = expr.args + res = z3.SignExt(expr.size - arg.size, self.from_expr(arg)) else: raise NotImplementedError("Unsupported OP yet: %s" % expr.op) |