add fpcvt.mdwn pseudocode which calls new auto-generated function
[openpower-isa.git] / src / openpower / decoder / pseudo / pywriter.py
index d2b6882af7faf0b7e3685999ca14422970c09afa..0ba05007be1b6d3439ac0fe4a9f351020c5e983e 100644 (file)
@@ -21,14 +21,28 @@ header = """\
 
 from openpower.decoder.isa.caller import inject, instruction_info
 from openpower.decoder.helpers import (EXTS, EXTS64, EXTZ64, ROTL64, ROTL32,
-                                 MASK, ne, eq, gt, ge, lt, le, ltu, gtu, length,
+                                 MASK, MASK32,
+                                 ne, eq, gt, ge, lt, le, ltu, gtu, length,
                                  trunc_divs, trunc_rems, MULS, DIVS, MODS,
-                                 EXTS128, undefined)
+                                 EXTS128, undefined,
+                                 DOUBLE, SINGLE,
+                                 FPADD32, FPSUB32, FPMUL32, FPDIV32,
+                                 FPADD64, FPSUB64, FPMUL64, FPDIV64,
+                                )
 from openpower.decoder.selectable_int import SelectableInt
 from openpower.decoder.selectable_int import selectconcat as concat
 from openpower.decoder.orderedset import OrderedSet
 
-class %s:
+"""
+
+fpheader = """
+from openpower.decoder.helpers import (
+                                 DOUBLE, SINGLE,
+                                 FPADD32, FPSUB32, FPMUL32, FPDIV32,
+                                 FPADD64, FPSUB64, FPMUL64, FPDIV64,
+                                )
+from openpower.decoder.isafunctions.fpfromint import INT2FP
+
 
 """
 
@@ -52,7 +66,12 @@ class PyISAWriter(ISA):
         fname = os.path.join(isadir, "%s.py" % pagename)
         with open(fname, "w") as f:
             iinf = ''
-            f.write(header % pagename)  # write out header
+            # write headers: FP gets extra imports
+            f.write(header)  # write out header
+            if pagename.startswith("fp"):
+                f.write(fpheader)
+            f.write("class %s:\n" % pagename)
+
             # go through all instructions
             for page in instrs:
                 d = self.instr[page]