diff options
| author | pengc <pengchang@live.cn> | 2021-09-03 11:24:17 +0800 |
|---|---|---|
| committer | pengc <pengchang@live.cn> | 2021-09-03 11:26:15 +0800 |
| commit | f3196da7dfff2df09e9840431ab9f71e52d989a2 (patch) | |
| tree | 9fc97e0ae0a0154960561b2012b3a44c064e3d82 /miasm/core/cpu.py | |
| parent | a7f9f78b67ab50050172be151b324789f96ac43d (diff) | |
| download | focaccia-miasm-f3196da7dfff2df09e9840431ab9f71e52d989a2.tar.gz focaccia-miasm-f3196da7dfff2df09e9840431ab9f71e52d989a2.zip | |
Clean encode's value check
Seems we can do it in one pleace in cpu.py. it simple than check value and mask in every encode().
Diffstat (limited to 'miasm/core/cpu.py')
| -rw-r--r-- | miasm/core/cpu.py | 13 |
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 |