summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-03-19 17:13:23 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-03-19 17:13:23 +0000
commit4df9411e598933d40fae661dd5d5ca0c5bd6b4f1 (patch)
treeb457a00d25c9d21ab88628e91b5fdd67cb38bd1c
parentbe3550dfe0cf8b1781d11652167e5616acfee3b8 (diff)
parent7c0825ccf91bcf32a128c985d4c1cfbc2dad633f (diff)
downloadgem5-4df9411e598933d40fae661dd5d5ca0c5bd6b4f1.tar.xz
Merge zizzer.eecs.umich.edu:/bk/newmem
into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86 --HG-- extra : convert_revision : a6ae6ce183aaa4d1a9434f9ddd64cc30878d2147
-rw-r--r--src/arch/alpha/predecoder.hh1
-rw-r--r--src/arch/sparc/predecoder.hh1
-rw-r--r--src/cpu/exetrace.cc10
3 files changed, 10 insertions, 2 deletions
diff --git a/src/arch/alpha/predecoder.hh b/src/arch/alpha/predecoder.hh
index 4e89f53a6..650f2bfa2 100644
--- a/src/arch/alpha/predecoder.hh
+++ b/src/arch/alpha/predecoder.hh
@@ -33,6 +33,7 @@
#include "arch/alpha/types.hh"
#include "base/misc.hh"
+#include "config/full_system.hh"
#include "sim/host.hh"
class ThreadContext;
diff --git a/src/arch/sparc/predecoder.hh b/src/arch/sparc/predecoder.hh
index 71b14b020..4a8c9dc4a 100644
--- a/src/arch/sparc/predecoder.hh
+++ b/src/arch/sparc/predecoder.hh
@@ -33,6 +33,7 @@
#include "arch/sparc/types.hh"
#include "base/misc.hh"
+#include "cpu/thread_context.hh"
#include "sim/host.hh"
class ThreadContext;
diff --git a/src/cpu/exetrace.cc b/src/cpu/exetrace.cc
index 54d8c68fa..20694b38f 100644
--- a/src/cpu/exetrace.cc
+++ b/src/cpu/exetrace.cc
@@ -36,6 +36,7 @@
#include <sys/ipc.h>
#include <sys/shm.h>
+#include "arch/predecoder.hh"
#include "arch/regfile.hh"
#include "arch/utility.hh"
#include "base/loader/symtab.hh"
@@ -302,6 +303,7 @@ Trace::InstRecord::dump()
outs << endl;
}
#if THE_ISA == SPARC_ISA && FULL_SYSTEM
+ static TheISA::Predecoder predecoder(NULL);
// Compare
if (IsOn(ExecLegion))
{
@@ -556,9 +558,13 @@ Trace::InstRecord::dump()
<< staticInst->disassemble(m5Pc, debugSymbolTable)
<< endl;
+ predecoder.setTC(thread);
+ predecoder.moreBytes(m5Pc, 0, shared_data->instruction);
+
+ assert(predecoder.extMachInstRead());
+
StaticInstPtr legionInst =
- StaticInst::decode(makeExtMI(shared_data->instruction,
- thread));
+ StaticInst::decode(predecoder.getExtMachInst());
outs << setfill(' ') << setw(15)
<< " Legion Inst: "
<< "0x" << setw(8) << setfill('0') << hex