about summary refs log tree commit diff stats
path: root/miasm/expression/expression.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2020-04-03 14:47:55 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2020-04-03 15:07:36 +0200
commit3644ef26b43014dccf3937769d644202a78c218b (patch)
treef83bb9bf25bbe346f2b0a834e4a5da7d9e535dca /miasm/expression/expression.py
parente47d3f973bae44a504b8f8dc9df3b32ea6298178 (diff)
downloadfocaccia-miasm-3644ef26b43014dccf3937769d644202a78c218b.tar.gz
focaccia-miasm-3644ef26b43014dccf3937769d644202a78c218b.zip
Fix int(expr)
Diffstat (limited to 'miasm/expression/expression.py')
-rw-r--r--miasm/expression/expression.py17
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):