diff options
Diffstat (limited to 'miasm2/core')
| -rw-r--r-- | miasm2/core/asmblock.py | 4 | ||||
| -rw-r--r-- | miasm2/core/cpu.py | 2 | ||||
| -rw-r--r-- | miasm2/core/parse_asm.py | 26 |
3 files changed, 3 insertions, 29 deletions
diff --git a/miasm2/core/asmblock.py b/miasm2/core/asmblock.py index 35b7e1db..08ff25e9 100644 --- a/miasm2/core/asmblock.py +++ b/miasm2/core/asmblock.py @@ -521,7 +521,7 @@ class AsmSymbolPool(object): return "".join("%s\n" % loc_key for loc_key in self._loc_keys) def __getitem__(self, item): - warnings.warn('DEPRECATION WARNING: use "offset_to_loc_key" or "name_to_loc_key"') + warnings.warn('DEPRECATION WARNING: use "getby_name" or "getby_offset"') if item in self._name_to_loc_key: return self._name_to_loc_key[item] if item in self._offset_to_loc_key: @@ -529,7 +529,7 @@ class AsmSymbolPool(object): raise KeyError('unknown symbol %r' % item) def __contains__(self, item): - warnings.warn('DEPRECATION WARNING: use "offset_to_loc_key" or "name_to_loc_key"') + warnings.warn('DEPRECATION WARNING: use "getby_name" or "getby_offset"') return item in self._name_to_loc_key or item in self._offset_to_loc_key def merge(self, symbol_pool): diff --git a/miasm2/core/cpu.py b/miasm2/core/cpu.py index a142ab77..80f81aff 100644 --- a/miasm2/core/cpu.py +++ b/miasm2/core/cpu.py @@ -1030,7 +1030,7 @@ class instruction(object): if name == '_': fixed_expr[exprloc] = self.get_asm_next_offset(exprloc) continue - if not name in symbols: + if symbols.getby_name(name) is None: raise ValueError('Unresolved symbol: %r' % exprloc) offset = symbols.loc_key_to_offset(loc_key) diff --git a/miasm2/core/parse_asm.py b/miasm2/core/parse_asm.py index 86871c37..3b97cbb6 100644 --- a/miasm2/core/parse_asm.py +++ b/miasm2/core/parse_asm.py @@ -73,30 +73,6 @@ def guess_next_new_label(symbol_pool): i += 1 -def replace_expr_labels(expr, symbol_pool, replace_id): - """Create LocKey of the expression @expr in the @symbol_pool - Update @replace_id""" - - if not expr.is_loc(): - return expr - - old_name = symbol_pool.loc_key_to_name(expr.loc_key) - new_lbl = symbol_pool.getby_name_create(old_name) - replace_id[expr] = ExprLoc(new_lbl, expr.size) - return replace_id[expr] - - -def replace_orphan_labels(instr, symbol_pool): - """Link orphan labels used by @instr to the @symbol_pool""" - - for i, arg in enumerate(instr.args): - replace_id = {} - arg.visit(lambda e: replace_expr_labels(e, - symbol_pool, - replace_id)) - instr.args[i] = instr.args[i].replace_expr(replace_id) - - STATE_NO_BLOC = 0 STATE_IN_BLOC = 1 @@ -224,8 +200,6 @@ def parse_txt(mnemo, attrib, txt, symbol_pool=None): line = line.strip(' ').strip('\t') instr = mnemo.fromstring(line, symbol_pool, attrib) - replace_orphan_labels(instr, symbol_pool) - if instr.dstflow(): instr.dstflow2label(symbol_pool) lines.append(instr) |