From 0f8e380dacd1d44c90bc6da2e97735d1ea378037 Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:46:58 +0300 Subject: [PATCH] skip even more 16 bit crap --- genc.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/genc.py b/genc.py index fa9174f..99e454d 100644 --- a/genc.py +++ b/genc.py @@ -21,8 +21,12 @@ class OpCode: return f"\topcode {self.opcode} args {self.args} op_enc {self.operand_encoding}" class Instruction: - SKIP_16BIT_REALMODE = ["rel16", "ptr16:16"] + SKIP_16BIT_REALMODE = ["rel16", "imm16", "ptr16:16"] + def contains_16bit_mode(args): + for needle in Instruction.SKIP_16BIT_REALMODE: + if needle in args: + return True def __init__(self, common): self.brief = common.find("brief").text @@ -44,7 +48,7 @@ class Instruction: self.opcodes.append(OpCode(ins, operand_encodings)) # remove 16 bit real mode displacement value opcodes - self.opcodes = list(filter(lambda op: op.args not in Instruction.SKIP_16BIT_REALMODE, self.opcodes)) + self.opcodes = list(filter(lambda op: not Instruction.contains_16bit_mode(op.args), self.opcodes)) def parse_file(path):