mem: Make the XBar responsible for tracking response routing
[gem5.git] / src / cpu / legiontrace.cc
index 5e4c978a69c06d61d8bf549c44249beda5879f14..b94b8f5fef7abfded6415696162cbb1df7b632f8 100644 (file)
 #include <cstdio>
 #include <iomanip>
 
-#include "arch/sparc/predecoder.hh"
+#include "arch/sparc/decoder.hh"
 #include "arch/sparc/registers.hh"
 #include "arch/sparc/utility.hh"
 #include "arch/tlb.hh"
 #include "base/socket.hh"
 #include "cpu/base.hh"
-#include "cpu/decode.hh"
 #include "cpu/legiontrace.hh"
 #include "cpu/static_inst.hh"
 #include "cpu/thread_context.hh"
@@ -146,7 +145,6 @@ Trace::LegionTraceRecord::dump()
 {
     ostream &outs = Trace::output();
 
-    static TheISA::Predecoder predecoder(NULL);
     // Compare
     bool compared = false;
     bool diffPC   = false;
@@ -158,7 +156,7 @@ Trace::LegionTraceRecord::dump()
     bool diffTnpc = false;
     bool diffTstate = false;
     bool diffTt = false;
-    bool diffTba = false;
+    bool diffTba M5_VAR_USED = false;
     bool diffHpstate = false;
     bool diffHtstate = false;
     bool diffHtba = false;
@@ -423,15 +421,13 @@ Trace::LegionTraceRecord::dump()
                          << staticInst->disassemble(m5Pc, debugSymbolTable)
                          << endl;
 
-                    predecoder.setTC(thread);
-                    predecoder.moreBytes(m5Pc, m5Pc, shared_data->instruction);
+                    TheISA::Decoder *decoder = thread->getDecoderPtr();
+                    decoder->moreBytes(m5Pc, m5Pc, shared_data->instruction);
 
-                    assert(predecoder.extMachInstReady());
+                    assert(decoder->instReady());
 
                     PCState tempPC = pc;
-                    StaticInstPtr legionInst =
-                        thread->getDecoderPtr()->decode(
-                                predecoder.getExtMachInst(tempPC), lgnPc);
+                    StaticInstPtr legionInst = decoder->decode(tempPC);
                     outs << setfill(' ') << setw(15)
                          << " Legion Inst: "
                          << "0x" << setw(8) << setfill('0') << hex
@@ -539,7 +535,7 @@ Trace::LegionTraceRecord::dump()
                     }
                     if (diffTlb) {
                         printColumnLabels(outs);
-                        char label[8];
+                        char label[9];
                         for (int x = 0; x < 64; x++) {
                             if (shared_data->itb[x] !=
                                     ULL(0xFFFFFFFFFFFFFFFF) ||