From 43910a6227b77c7ee982dab94c0a7f22027f2364 Mon Sep 17 00:00:00 2001 From: Alexis Engelke Date: Sat, 23 Jan 2021 10:27:50 +0100 Subject: [PATCH] parseinstrs: Avoid redundant encoding of InstrDesc --- parseinstrs.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/parseinstrs.py b/parseinstrs.py index 59fa70f..7528f2e 100644 --- a/parseinstrs.py +++ b/parseinstrs.py @@ -611,19 +611,19 @@ if __name__ == "__main__": decode_mnems_lines = [f"FD_MNEMONIC({m},{i})\n" for i, m in enumerate(mnemonics)] args.decode_mnems.write("".join(decode_mnems_lines)) - modes = [32, 64] table = Table(root_count=len(args.modes)) weak_opcodes = [] for weak, opcode, desc in entries: + ign66 = opcode.prefix in ("NP", "66", "F2", "F3") + modrm = opcode.modreg or opcode.opcext + descenc = desc.encode(ign66, modrm) for i, mode in enumerate(args.modes): if "ONLY%d"%(96-mode) not in desc.flags: - ign66 = opcode.prefix in ("NP", "66", "F2", "F3") - modrm = opcode.modreg or opcode.opcext for opcode_path in opcode.for_trie(): if weak: - weak_opcodes.append((opcode_path, desc.encode(ign66, modrm), i)) + weak_opcodes.append((opcode_path, descenc, i)) else: - table.add_opcode(opcode_path, desc.encode(ign66, modrm), i) + table.add_opcode(opcode_path, descenc, i) for k in weak_opcodes: table.fill_free(*k)