just commit what i need for dumping traces compatible with intel's casper
authorLisa Hsu <hsul@eecs.umich.edu>
Wed, 9 Nov 2005 21:42:36 +0000 (16:42 -0500)
committerLisa Hsu <hsul@eecs.umich.edu>
Wed, 9 Nov 2005 21:42:36 +0000 (16:42 -0500)
--HG--
extra : convert_revision : a0c4a68a576fa771fd553eaedd6a07255a04dca2

cpu/exetrace.cc
cpu/exetrace.hh

index 8e200f1e070f34d6447b8eea276e90c095afa317..3b9853655a6ee6ff6a68a22586396569533c99a5 100644 (file)
@@ -52,14 +52,17 @@ void
 Trace::InstRecord::dump(ostream &outs)
 {
     if (flags[INTEL_FORMAT]) {
-        ccprintf(outs, "%7d ) ", cycle);
-        outs << "0x" << hex << PC << ":\t";
-        if (staticInst->isLoad()) {
-            outs << "<RD 0x" << hex << addr;
-            outs << ">";
-        } else if (staticInst->isStore()) {
-            outs << "<WR 0x" << hex << addr;
-            outs << ">";
+        if (cpu->system->name() == trace_system) {
+            ccprintf(outs, "%7d ) ", cycle);
+            outs << "0x" << hex << PC << ":\t";
+            if (staticInst->isLoad()) {
+                outs << "<RD 0x" << hex << addr;
+                outs << ">";
+            } else if (staticInst->isStore()) {
+                outs << "<WR 0x" << hex << addr;
+                outs << ">";
+            }
+            outs << endl;
         }
     } else {
         if (flags[PRINT_CYCLE])
@@ -135,15 +138,17 @@ Trace::InstRecord::dump(ostream &outs)
 
         if (flags[PRINT_CP_SEQ] && cp_seq_valid)
             outs << "  CPSeq=" << dec << cp_seq;
+
+        //
+        //  End of line...
+        //
+        outs << endl;
     }
-    //
-    //  End of line...
-    //
-    outs << endl;
 }
 
 
 vector<bool> Trace::InstRecord::flags(NUM_BITS);
+string Trace::InstRecord::trace_system;
 
 ////////////////////////////////////////////////////////////////////////
 //
@@ -184,6 +189,9 @@ Param<bool> exe_trace_print_cp_seq(&exeTraceParams, "print_cpseq",
                                   "print correct-path sequence number", false);
 Param<bool> exe_trace_intel_format(&exeTraceParams, "intel_format",
                                    "print trace in intel compatible format", false);
+Param<string> exe_trace_system(&exeTraceParams, "trace_system",
+                                   "print trace of which system (client or server)",
+                                   "client");
 
 
 //
@@ -204,6 +212,7 @@ Trace::InstRecord::setParams()
     flags[PRINT_FETCH_SEQ]   = exe_trace_print_fetchseq;
     flags[PRINT_CP_SEQ]      = exe_trace_print_cp_seq;
     flags[INTEL_FORMAT]      = exe_trace_intel_format;
+    trace_system            = exe_trace_system;
 }
 
 void
index 1515869ad3aa552e0be73b21f553d3fe56de9184..48d8966d8d44bbfe846ff4c02680d533b07695b7 100644 (file)
@@ -148,6 +148,7 @@ class InstRecord : public Record
     };
 
     static std::vector<bool> flags;
+    static std::string trace_system;
 
     static void setParams();