about summary refs log tree commit diff stats
path: root/miasm2/core/cpu.py
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/core/cpu.py')
-rw-r--r--miasm2/core/cpu.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/miasm2/core/cpu.py b/miasm2/core/cpu.py
index 8ea96e22..a142ab77 100644
--- a/miasm2/core/cpu.py
+++ b/miasm2/core/cpu.py
@@ -1018,11 +1018,11 @@ class instruction(object):
         args_out = []
         for expr in self.args:
             # try to resolve symbols using symbols (0 for default value)
-            labels = m2_expr.get_expr_labels(expr)
+            loc_keys = m2_expr.get_expr_locs(expr)
             fixed_expr = {}
-            for exprloc in labels:
-                label = symbols.loc_key_to_label(exprloc.loc_key)
-                name = label.name
+            for exprloc in loc_keys:
+                loc_key = exprloc.loc_key
+                name = symbols.loc_key_to_name(loc_key)
                 # special symbols
                 if name == '$':
                     fixed_expr[exprloc] = self.get_asm_offset(exprloc)
@@ -1033,16 +1033,18 @@ class instruction(object):
                 if not name in symbols:
                     raise ValueError('Unresolved symbol: %r' % exprloc)
 
-                if symbols[name].offset is None:
-                    raise ValueError('The offset of label "%s" cannot be '
-                                     'determined' % name)
+                offset = symbols.loc_key_to_offset(loc_key)
+                if offset is None:
+                    raise ValueError(
+                        'The offset of loc_key "%s" cannot be determined' % name
+                    )
                 else:
                     # Fix symbol with its offset
                     size = exprloc.size
                     if size is None:
                         default_size = self.get_symbol_size(exprloc, symbols)
                         size = default_size
-                    value = m2_expr.ExprInt(symbols[name].offset, size)
+                    value = m2_expr.ExprInt(offset, size)
                 fixed_expr[exprloc] = value
 
             expr = expr.replace_expr(fixed_expr)