add support for *_flag global variables needed by bfp_* functions
[openpower-isa.git] / src / openpower / decoder / pseudo / pyfnwriter.py
index 001c0f0a600dbb634eeee5799dd6962fe0ce1a5c..3560f782d39ceaa68341079e5e1be9cbf2e63ea1 100644 (file)
@@ -4,8 +4,9 @@ import os
 import sys
 import shutil
 import subprocess
-from openpower.decoder.pseudo.functionreader import ISAFunctions
-from openpower.decoder.power_pseudo import convert_to_pure_python
+from openpower.decoder.pseudo.functionreader import ISAFunctions, get_isafn_dir
+from openpower.decoder.power_pseudo import (convert_to_pure_python,
+                                            check_in_gitignore)
 
 
 def get_isafn_src_dir():
@@ -19,7 +20,7 @@ header = """\
 
 from openpower.decoder.helpers import (ISACallerHelper,
                                  ne, eq, gt, ge, lt, le, ltu, gtu, length,
-                                 trunc_divs, trunc_rems,
+                                 trunc_divs, trunc_rems, copy_assign_rhs,
                                 )
 from openpower.decoder.selectable_int import SelectableInt
 from openpower.decoder.selectable_int import selectconcat as concat
@@ -40,6 +41,7 @@ class PyISAFnWriter(ISAFunctions):
         os.makedirs(isadir, exist_ok=True)
         fname = os.path.join(isadir, "%s.py" % pagename)
         sourcecache = dict()
+        check_in_gitignore(fname)
         with open(fname, "w") as f:
             f.write(header % function['desc'])  # write out header
             # go through all instructions
@@ -50,7 +52,8 @@ class PyISAFnWriter(ISAFunctions):
             if phash in sourcecache:
                 pycode = sourcecache[phash]
             else:
-                pycode = convert_to_pure_python(pcode, True)
+                filename = os.path.join(get_isafn_dir(), pagename + ".mdwn")
+                pycode = convert_to_pure_python(pcode, True, filename=filename)
                 sourcecache[phash] = pycode
             f.write(pycode)