diff options
Diffstat (limited to 'miasm/expression/simplifications_common.py')
| -rw-r--r-- | miasm/expression/simplifications_common.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/miasm/expression/simplifications_common.py b/miasm/expression/simplifications_common.py index af409286..2ceb507c 100644 --- a/miasm/expression/simplifications_common.py +++ b/miasm/expression/simplifications_common.py @@ -965,6 +965,18 @@ def simp_cond_cc_flag(expr_simp, expr): return ExprCond(arg, expr.src2, expr.src1) return expr +def simp_cond_sub_cf(expr_simp, expr): + """ + ExprCond(FLAG_SUB_CF(A, B), X, Y) => ExprCond(A <u B, X, Y) + """ + if not expr.is_cond(): + return expr + if not expr.cond.is_op("FLAG_SUB_CF"): + return expr + cond = ExprOp(TOK_INF_UNSIGNED, *expr.cond.args) + return ExprCond(cond, expr.src1, expr.src2) + + def simp_cmp_int(expr_simp, expr): """ ({X, 0} == int) => X == int[:] |