diff options
| author | Camille Mougey <commial@gmail.com> | 2018-10-21 11:53:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-21 11:53:46 +0200 |
| commit | 794a2ef09a55eb040aff6a5408433c71ccb93729 (patch) | |
| tree | 2c8cd3e06b7ad205d5fab18fc2b4a81dae722643 /miasm2/expression/simplifications_common.py | |
| parent | 90593a668c64b396b0c8254a55878fb91925415d (diff) | |
| parent | 9503c250c5524a6c388aba032be4e34517b358f9 (diff) | |
| download | miasm-794a2ef09a55eb040aff6a5408433c71ccb93729.tar.gz miasm-794a2ef09a55eb040aff6a5408433c71ccb93729.zip | |
Merge pull request #870 from serpilliere/expr_mem_ptr
Expression: replace arg by ptr in ExprMem
Diffstat (limited to 'miasm2/expression/simplifications_common.py')
| -rw-r--r-- | miasm2/expression/simplifications_common.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/miasm2/expression/simplifications_common.py b/miasm2/expression/simplifications_common.py index e7dacc91..9a59fbd4 100644 --- a/miasm2/expression/simplifications_common.py +++ b/miasm2/expression/simplifications_common.py @@ -509,7 +509,7 @@ def simp_slice(e_s, expr): if (expr.arg.is_mem() and expr.start == 0 and expr.arg.size > expr.stop and expr.stop % 8 == 0): - return ExprMem(expr.arg.arg, size=expr.stop) + return ExprMem(expr.arg.ptr, size=expr.stop) # distributivity of slice and & # (a & int)[x:y] => 0 if int[x:y] == 0 if expr.arg.is_op("&") and expr.arg.args[-1].is_int(): @@ -576,9 +576,9 @@ def simp_compose(e_s, expr): for i, arg in enumerate(args[:-1]): nxt = args[i + 1] if arg.is_mem() and nxt.is_mem(): - gap = e_s(nxt.arg - arg.arg) + gap = e_s(nxt.ptr - arg.ptr) if gap.is_int() and arg.size % 8 == 0 and int(gap) == arg.size / 8: - args = args[:i] + [ExprMem(arg.arg, + args = args[:i] + [ExprMem(arg.ptr, arg.size + nxt.size)] + args[i + 2:] return ExprCompose(*args) @@ -664,8 +664,8 @@ def simp_mem(e_s, expr): "Common simplifications on ExprMem" # @32[x?a:b] => x?@32[a]:@32[b] - if expr.arg.is_cond(): - cond = expr.arg + if expr.ptr.is_cond(): + cond = expr.ptr ret = ExprCond(cond.cond, ExprMem(cond.src1, expr.size), ExprMem(cond.src2, expr.size)) |