about summary refs log tree commit diff stats
path: root/miasm2/ir/translators
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/ir/translators')
-rw-r--r--miasm2/ir/translators/C.py3
-rw-r--r--miasm2/ir/translators/smt2.py17
-rw-r--r--miasm2/ir/translators/z3_ir.py22
3 files changed, 14 insertions, 28 deletions
diff --git a/miasm2/ir/translators/C.py b/miasm2/ir/translators/C.py
index a8e3a254..2f354d47 100644
--- a/miasm2/ir/translators/C.py
+++ b/miasm2/ir/translators/C.py
@@ -39,8 +39,6 @@ class TranslatorC(Translator):
         return "0x%x" % mask
 
     def from_ExprId(self, expr):
-        if isinstance(expr.name, asmblock.AsmLabel):
-            return "0x%x" % expr.name.offset
         return str(expr)
 
     def from_ExprInt(self, expr):
@@ -56,6 +54,7 @@ class TranslatorC(Translator):
         loc_key = expr.loc_key
         if self.symbol_pool is None:
             return str(loc_key)
+
         offset = self.symbol_pool.loc_key_to_offset(loc_key)
         name = self.symbol_pool.loc_key_to_name(loc_key)
 
diff --git a/miasm2/ir/translators/smt2.py b/miasm2/ir/translators/smt2.py
index 6a6fec16..f5d633e0 100644
--- a/miasm2/ir/translators/smt2.py
+++ b/miasm2/ir/translators/smt2.py
@@ -1,7 +1,6 @@
 import logging
 import operator
 
-from miasm2.core.asmblock import AsmLabel
 from miasm2.ir.translators.translator import Translator
 from miasm2.expression.smt2_helper import *
 
@@ -136,19 +135,9 @@ class TranslatorSMT2(Translator):
         return bit_vec_val(expr.arg.arg, expr.size)
 
     def from_ExprId(self, expr):
-        if isinstance(expr.name, AsmLabel):
-            if expr.name.offset is not None:
-                return bit_vec_val(str(expr.name.offset), expr.size)
-            else:
-                # SMT2-escape expression name
-                name = "|{}|".format(str(expr.name))
-                if name not in self._bitvectors:
-                    self._bitvectors[name] = expr.size
-                return name
-        else:
-            if str(expr) not in self._bitvectors:
-                self._bitvectors[str(expr)] = expr.size
-            return str(expr)
+        if str(expr) not in self._bitvectors:
+            self._bitvectors[str(expr)] = expr.size
+        return str(expr)
 
     def from_ExprLoc(self, expr):
         loc_key = expr.loc_key
diff --git a/miasm2/ir/translators/z3_ir.py b/miasm2/ir/translators/z3_ir.py
index 544dd26f..d01b73fa 100644
--- a/miasm2/ir/translators/z3_ir.py
+++ b/miasm2/ir/translators/z3_ir.py
@@ -5,7 +5,6 @@ import operator
 # Raise an ImportError if z3 is not available WITHOUT actually importing it
 imp.find_module("z3")
 
-from miasm2.core.asmblock import AsmLabel
 from miasm2.ir.translators.translator import Translator
 
 log = logging.getLogger("translator_z3")
@@ -133,22 +132,21 @@ class TranslatorZ3(Translator):
         return z3.BitVecVal(expr.arg.arg, expr.size)
 
     def from_ExprId(self, expr):
-        if isinstance(expr.name, AsmLabel) and expr.name.offset is not None:
-            return z3.BitVecVal(expr.name.offset, expr.size)
-        else:
-            return z3.BitVec(str(expr), expr.size)
+        return z3.BitVec(str(expr), expr.size)
 
     def from_ExprLoc(self, expr):
         if self.symbol_pool is None:
             # No symbol_pool, fallback to default name
             return z3.BitVec(str(expr), expr.size)
-        label = self.symbol_pool.loc_key_to_label(expr.loc_key)
-        if label is None:
-            # No symbol_pool, fallback to default name
-            return z3.BitVec(str(expr), expr.size)
-        elif label.offset is None:
-            return z3.BitVec(label.name, expr.size)
-        return z3.BitVecVal(label.offset, expr.size)
+        loc_key = expr.loc_key
+        offset = self.symbol_pool.loc_key_to_offset(loc_key)
+        name = self.symbol_pool.loc_key_to_name(loc_key)
+        if offset is not None:
+            return z3.BitVecVal(offset, expr.size)
+        if name is not None:
+            return z3.BitVec(name, expr.size)
+        # fallback to default name
+        return z3.BitVec(str(loc_key), expr.size)
 
     def from_ExprMem(self, expr):
         addr = self.from_expr(expr.arg)