about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--miasm2/arch/x86/arch.py6
-rw-r--r--miasm2/core/cpu.py6
2 files changed, 8 insertions, 4 deletions
diff --git a/miasm2/arch/x86/arch.py b/miasm2/arch/x86/arch.py
index 29303fdf..be3dbd94 100644
--- a/miasm2/arch/x86/arch.py
+++ b/miasm2/arch/x86/arch.py
@@ -1065,10 +1065,12 @@ class x86_imm_fix_08(imm_noarg):
     def decodeval(self, v):
         return self.ival
 
-    def encodeval(self, v):
+    def encode(self):
+        v = self.expr2int(self.expr)
         if v != self.ival:
             return False
-        return self.ival
+        self.value = 0
+        return True
 
 
 class x86_08(x86_imm):
diff --git a/miasm2/core/cpu.py b/miasm2/core/cpu.py
index ffda5f3a..2d455294 100644
--- a/miasm2/core/cpu.py
+++ b/miasm2/core/cpu.py
@@ -431,13 +431,14 @@ class bs(object):
         self.cls = cls
         self.fname = fname
         self.order = order
-        self.lmask = lmask
         self.fbits = fbits
         self.fmask = fmask
         self.flen = flen
         self.value = value
         self.kargs = kargs
 
+    lmask = property(lambda self:(1 << self.l) - 1)
+
     def __getitem__(self, item):
         return getattr(self, item)
 
@@ -502,7 +503,6 @@ class bsi(object):
         self.cls = cls
         self.fname = fname
         self.order = order
-        self.lmask = lmask
         self.fbits = fbits
         self.fmask = fmask
         self.flen = flen
@@ -510,6 +510,8 @@ class bsi(object):
         self.kargs = kargs
         self.__dict__.update(self.kargs)
 
+    lmask = property(lambda self:(1 << self.l) - 1)
+
     def decode(self, v):
         self.value = v & self.lmask
         return True