[[!table data="""
CSV | opcode | asm | form |
minor_19.csv | 0b0000000000 | mcrf | XL-Form |
-minor_31.csv | 0b1000000000 | mcrxr | X-Form |
-minor_31.csv | 0b1001000000 | mcrxrx | X-Form |
minor_63l.csv | 0b000000010 | 2/0=mcrfs | -Form |
minor_63l.csv | 0b011000001 | 1/6=mtfsb1 | -Form |
minor_63l.csv | 0b011000010 | 2/6=mtfsb0 | -Form |
[[!table data="""
insn | Ptype | Etype | 0 | 1 | 2 | 3 |
mcrf | 2P | EXTRA3 | d:BF | s:BFA | | | NONE | NONE | NONE | NONE | BFA | BF |
-mcrxr | 2P | EXTRA3 | TODO | | | | | | | | | |
-mcrxrx | 2P | EXTRA3 | TODO | | | | | | | | | |
2/0=mcrfs | 2P | EXTRA3 | TODO | | | | NONE | NONE | NONE | NONE | 0 | 1 |
1/6=mtfsb1 | 2P | EXTRA3 | TODO | | | | NONE | NONE | NONE | NONE | 0 | 0 |
2/6=mtfsb0 | 2P | EXTRA3 | TODO | | | | NONE | NONE | NONE | NONE | 0 | 0 |
for row in csv:
if blank_key(row):
continue
- insns[row['comment']] = row # accumulate csv data by instruction
+ insn_name = row['comment']
+ # skip instructions that are not suitable
+ if insn_name in ['mcrxr', 'mcrxrx']:
+ continue
+ insns[insn_name] = row # accumulate csv data by instruction
dkey = create_key(row)
key = tuple(dkey.values())
# print("key=", key)
primarykeys.add(key)
if key not in bykey:
bykey[key] = []
- bykey[key].append((csvname, row['opcode'], row['comment'],
+ bykey[key].append((csvname, row['opcode'], insn_name,
row['form'].upper() + '-Form'))
# detect immediates, collate them (useful info)