diff options
Diffstat (limited to 'miasm/expression/expression.py')
| -rw-r--r-- | miasm/expression/expression.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/miasm/expression/expression.py b/miasm/expression/expression.py index d6813cec..18fcb77a 100644 --- a/miasm/expression/expression.py +++ b/miasm/expression/expression.py @@ -166,6 +166,23 @@ def is_mem_segm(expr): """Returns True if is ExprMem and ptr is_op_segm""" return expr.is_mem() and is_op_segm(expr.ptr) +def canonize_to_exprloc(locdb, expr): + """ + If expr is ExprInt, return ExprLoc with corresponding loc_key + Else, return expr + + @expr: Expr instance + """ + if expr.is_int(): + loc_key = locdb.get_or_create_offset_location(int(expr)) + ret = ExprLoc(loc_key, expr.size) + return ret + return expr + +def is_function_call(expr): + """Returns true if the considered Expr is a function call + """ + return expr.is_op() and expr.op.startswith('call') @total_ordering class LocKey(object): |