use Ops in pagereader
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 2 Apr 2020 15:53:05 +0000 (16:53 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 2 Apr 2020 15:53:05 +0000 (16:53 +0100)
src/soc/decoder/isa/__init__.py [new file with mode: 0644]
src/soc/decoder/pseudo/pagereader.py

diff --git a/src/soc/decoder/isa/__init__.py b/src/soc/decoder/isa/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
index 9914a8155ee3cef86683cb603588d2d66840208e..61b7838ff45c846907014792e921f4c6fae04e23 100644 (file)
@@ -49,7 +49,7 @@ from copy import copy
 import os
 
 opfields = ("desc", "form", "opcode", "regs", "pcode", "sregs", "page")
-op = namedtuple("Ops", opfields)
+Ops = namedtuple("Ops", opfields)
 
 
 def get_isa_dir():
@@ -78,7 +78,7 @@ class ISA:
             lines = f.readlines()
         
         # set up dict with current page name
-        d = {'pagename': pagename}
+        d = {'page': pagename}
 
         l = lines.pop(0).rstrip() # get first line
         while lines:
@@ -154,7 +154,7 @@ class ISA:
         op = copy(d)
         op['regs'] = regs
         op['opcode'] = opcode
-        self.instr[opcode] = op
+        self.instr[opcode] = Ops(**op)
 
         # create list of instructions by form
         form = op['form']
@@ -163,11 +163,11 @@ class ISA:
 
     def pprint_ops(self):
         for k, v in self.instr.items():
-            print ("# %s %s" % (v['opcode'], v['desc']))
-            print ("Form: %s Regs: %s" % (v['form'], v['regs']))
-            print ('\n'.join(map(lambda x: "    %s" % x, v['pcode'])))
+            print ("# %s %s" % (v.opcode, v.desc))
+            print ("Form: %s Regs: %s" % (v.form, v.regs))
+            print ('\n'.join(map(lambda x: "    %s" % x, v.pcode)))
             print ("Specials")
-            print ('\n'.join(map(lambda x: "    %s" % x, v['sregs'])))
+            print ('\n'.join(map(lambda x: "    %s" % x, v.sregs)))
             print ()
         for k, v in isa.forms.items():
             print (k, v)