diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-08-19 14:43:14 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-08-29 17:54:10 +0200 |
| commit | ccee69ba3b27f298c6d2cd5daa4b8976a571582e (patch) | |
| tree | 1b15cc027e93ccd5cfebaf0276af8bfa9ea5da99 /miasm2/expression/simplifications_common.py | |
| parent | c1f576e342b083caf6e3ca5a02143a402a49f6d4 (diff) | |
| download | miasm-ccee69ba3b27f298c6d2cd5daa4b8976a571582e.tar.gz miasm-ccee69ba3b27f298c6d2cd5daa4b8976a571582e.zip | |
Expression: add simp cond
Diffstat (limited to '')
| -rw-r--r-- | miasm2/expression/simplifications_common.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/miasm2/expression/simplifications_common.py b/miasm2/expression/simplifications_common.py index b01b1d1d..2bdccdbd 100644 --- a/miasm2/expression/simplifications_common.py +++ b/miasm2/expression/simplifications_common.py @@ -1021,3 +1021,15 @@ def simp_zeroext_eq_cst(expr_s, expr): # Always false return ExprInt(0, 1) return ExprOp("==", src, ExprInt(int(arg2), src.size)) + + +def simp_cond_eq_zero(expr_s, expr): + # (X == 0)?(A:B) => X?(B:A) + cond = expr.cond + if not cond.is_op('=='): + return expr + arg1, arg2 = cond.args + if not arg2.is_int(0): + return expr + new_expr = ExprCond(arg1, expr.src2, expr.src1) + return new_expr |