]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
rose: dump support for delay programs
authorJustin Viiret <justin.viiret@intel.com>
Thu, 16 Feb 2017 04:39:11 +0000 (15:39 +1100)
committerMatthew Barr <matthew.barr@intel.com>
Wed, 26 Apr 2017 05:04:31 +0000 (15:04 +1000)
src/rose/rose_build_dump.cpp

index b28bdbd65fe622307e4665b5d77ee7958bcfb452..af8c96a7bd06846020a576a9d276813d8bcebc68 100644 (file)
@@ -1232,6 +1232,32 @@ void dumpRoseAnchoredPrograms(const RoseEngine *t, const string &filename) {
         } else {
             os << "<No Program>" << endl;
         }
+        os << endl;
+    }
+
+    os.close();
+}
+
+static
+void dumpRoseDelayPrograms(const RoseEngine *t, const string &filename) {
+    ofstream os(filename);
+
+    const u32 *programs =
+        (const u32 *)loadFromByteCodeOffset(t, t->delayProgramOffset);
+
+    for (u32 i = 0; i < t->delay_count; i++) {
+        os << "Delay entry " << i << endl;
+        os << "---------------" << endl;
+
+        if (programs[i]) {
+            os << "Program @ " << programs[i] << ":" << endl;
+            const char *prog =
+                (const char *)loadFromByteCodeOffset(t, programs[i]);
+            dumpProgram(os, t, prog);
+        } else {
+            os << "<No Program>" << endl;
+        }
+        os << endl;
     }
 
     os.close();
@@ -1872,6 +1898,7 @@ void roseDumpPrograms(const RoseBuildImpl &build, const RoseEngine *t,
     dumpRoseEodPrograms(t, base + "/rose_eod_programs.txt");
     dumpRoseReportPrograms(t, base + "/rose_report_programs.txt");
     dumpRoseAnchoredPrograms(t, base + "/rose_anchored_programs.txt");
+    dumpRoseDelayPrograms(t, base + "/rose_delay_programs.txt");
 }
 
 void dumpRose(const RoseBuild &build_base, const RoseEngine *t,