From da683d850a8bffd4a446ed422106917aba25dcdf Mon Sep 17 00:00:00 2001 From: Alexis Engelke Date: Sat, 23 Feb 2019 12:10:30 +0100 Subject: [PATCH] Simplify storing of opcode to description mapping --- parseinstrs.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/parseinstrs.py b/parseinstrs.py index 1654b56..211d018 100644 --- a/parseinstrs.py +++ b/parseinstrs.py @@ -299,25 +299,25 @@ template = """// Auto-generated file -- do not modify! """ if __name__ == "__main__": - entries = defaultdict(list) + entries = [] with open(sys.argv[1], "r") as f: for line in f.read().splitlines(): if line and line[0] != "#": opcode_string, desc = tuple(line.split(maxsplit=1)) for opcode in parse_opcode(opcode_string): - entries[opcode].append(InstrDesc.parse(desc)) + entries.append((opcode, InstrDesc.parse(desc))) - mnemonics = sorted({desc.mnemonic for descs in entries.values() for desc in descs}) + mnemonics = sorted({desc.mnemonic for _, desc in entries}) mnemonics_lut = {name: mnemonics.index(name) for name in mnemonics} + table32 = Table() table64 = Table() masks = "ONLY64", "ONLY32" - for opcode, descs in entries.items(): - for desc in descs: - if "ONLY64" not in desc.flags: - table32.add_opcode(opcode, desc.encode(mnemonics_lut)) - if "ONLY32" not in desc.flags: - table64.add_opcode(opcode, desc.encode(mnemonics_lut)) + for opcode, desc in entries: + if "ONLY64" not in desc.flags: + table32.add_opcode(opcode, desc.encode(mnemonics_lut)) + if "ONLY32" not in desc.flags: + table64.add_opcode(opcode, desc.encode(mnemonics_lut)) table32.deduplicate() table64.deduplicate()