Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/openpower/decoder/power_table.py b/src/openpower/decoder/power_table.py
- index da35cdb8..1f1d6cb3 100644
- --- a/src/openpower/decoder/power_table.py
- +++ b/src/openpower/decoder/power_table.py
- @@ -3,7 +3,8 @@ from openpower.decoder.power_enums import find_wiki_dir
- from openpower.decoder.power_insn import (Database, MarkdownDatabase,
- FieldsDatabase, PPCDatabase,
- IntegerOpcode, PatternOpcode,
- - parse, Section)
- + parse, Section, BitSel,
- + FieldsOpcode)
- root = find_wiki_dir()
- root = pathlib.Path(root)
- mdwndb = MarkdownDatabase()
- @@ -48,11 +49,18 @@ def do_table(insns, section):
- print ("search", i, hex(key))
- # start hunting
- for insn in insns:
- - opcode = insn.opcode
- + fields = []
- + if insn.section.opcode:
- + fields += [(insn.section.opcode.value, BitSel((0, 5)))]
- + fields += [(insn.ppc.opcode.value, insn.section.bitsel)]
- + else:
- + fields += [(insn.ppc.opcode.value, insn.section.bitsel)]
- + opcode = FieldsOpcode(fields)
- if not isinstance(opcode, list):
- opcode = [opcode]
- for op in opcode:
- - if ((op.value & op.mask & xomask) == (key & op.mask & xomask)):
- + if ((opcode.value & opcode.mask) ==
- + (key & opcode.mask)):
- print ("match", i, hex(key), insn.name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement