diff --git a/parseinstrs.py b/parseinstrs.py index 33e4ae1..4ed9714 100644 --- a/parseinstrs.py +++ b/parseinstrs.py @@ -25,6 +25,7 @@ def bitstruct(name, fields): return __class InstrFlags = bitstruct("InstrFlags", [ + "mnemonic:16", "modrm_idx:2", "modreg_idx:2", "vexreg_idx:2", @@ -129,9 +130,10 @@ class InstrDesc(namedtuple("InstrDesc", "mnemonic,flags,encoding")): if "VSIB" in desc[6:]: flags.vsib = 1 if "MUSTMEM" in desc[6:]: flags.reg_types |= 15 << 4*(flags.modrm_idx^3) - return cls(desc[5], frozenset(desc[6:]), flags._encode(6)) + return cls(desc[5], frozenset(desc[6:]), flags) def encode(self, mnemonics_lut): - return struct.pack("