about summary refs log tree commit diff stats
path: root/miasm/core/cpu.py
diff options
context:
space:
mode:
Diffstat (limited to 'miasm/core/cpu.py')
-rw-r--r--miasm/core/cpu.py13
1 files changed, 4 insertions, 9 deletions
diff --git a/miasm/core/cpu.py b/miasm/core/cpu.py
index 6c73c4c1..d9c1955b 100644
--- a/miasm/core/cpu.py
+++ b/miasm/core/cpu.py
@@ -737,10 +737,6 @@ class reg_noarg(object):
             log.debug("cannot encode reg %r", self.expr)
             return False
         self.value = self.reg_info.expr.index(self.expr)
-        if self.value > self.lmask:
-            log.debug("cannot encode field value %x %x",
-                      self.value, self.lmask)
-            return False
         return True
 
     def check_fbits(self, v):
@@ -1456,7 +1452,10 @@ class cls_mn(with_metaclass(metamn, object)):
                     break
 
                 if f.value is not None and f.l:
-                    assert f.value <= f.lmask
+                    if f.value > f.lmask:
+                        log.debug('cannot encode %r', f)
+                        can_encode = False
+                        break
                     cur_len += f.l
                 index += 1
                 if ret is True:
@@ -1595,8 +1594,6 @@ class imm_noarg(object):
         return v
 
     def encodeval(self, v):
-        if v > self.lmask:
-            return False
         return v
 
     def decode(self, v):
@@ -1615,8 +1612,6 @@ class imm_noarg(object):
         v = self.encodeval(v)
         if v is False:
             return False
-        if v > self.lmask:
-            return False
         self.value = v
         return True