Fixes to get ALPHA_FS and ALPHA_SE to compile again.
authorGabe Black <gblack@eecs.umich.edu>
Thu, 21 Dec 2006 01:44:06 +0000 (20:44 -0500)
committerGabe Black <gblack@eecs.umich.edu>
Thu, 21 Dec 2006 01:44:06 +0000 (20:44 -0500)
--HG--
extra : convert_revision : 6e0913903d4cbda6f31bec3b5d725b9c08dc1419

src/arch/alpha/remote_gdb.cc
src/arch/alpha/utility.hh
src/cpu/o3/alpha/dyn_inst.hh
src/cpu/o3/alpha/dyn_inst_impl.hh
src/cpu/o3/fetch_impl.hh

index f23fc32054915b54f89b099b68b848321db04886..4637bd7a6198576f0e9e04a835f64d5e6973ac4a 100644 (file)
 #include <string>
 #include <unistd.h>
 
+#include "config/full_system.hh"
+#if FULL_SYSTEM
+#include "arch/alpha/vtophys.hh"
+#endif
+
 #include "arch/alpha/kgdb.h"
+#include "arch/alpha/utility.hh"
 #include "arch/alpha/remote_gdb.hh"
-#include "arch/vtophys.hh"
 #include "base/intmath.hh"
 #include "base/remote_gdb.hh"
 #include "base/socket.hh"
 #include "base/trace.hh"
-#include "config/full_system.hh"
 #include "cpu/thread_context.hh"
 #include "cpu/static_inst.hh"
 #include "mem/physical.hh"
@@ -152,6 +156,9 @@ RemoteGDB::RemoteGDB(System *_system, ThreadContext *c)
 bool
 RemoteGDB::acc(Addr va, size_t len)
 {
+#if !FULL_SYSTEM
+    panic("acc function needs to be rewritten for SE mode\n");
+#else
     Addr last_va;
 
     va = TheISA::TruncPage(va);
@@ -191,6 +198,7 @@ RemoteGDB::acc(Addr va, size_t len)
 
     DPRINTF(GDBAcc, "acc:   %#x mapping is valid\n", va);
     return true;
+#endif
 }
 
 ///////////////////////////////////////////////////////////
index 100736555081327d5730083ea4e942bcdbbbea1f..9a06cc2a4a6d8ba5b9ef45b9147f670e46461d4e 100644 (file)
@@ -121,9 +121,9 @@ namespace AlphaISA
     template <class TC>
     void zeroRegisters(TC *tc);
 
-#if FULL_SYSTEM
     // Alpha IPR register accessors
-    inline bool PcPAL(Addr addr) { return addr & 0x1; }
+    inline bool PcPAL(Addr addr) { return addr & 0x3; }
+#if FULL_SYSTEM
 
     ////////////////////////////////////////////////////////////////////////
     //
index ee895d77c5701de2a3b9ed30639fa875b91991e2..603a1b52dce262e02622ed2f40084ceee8559f25 100644 (file)
@@ -73,8 +73,9 @@ class AlphaDynInst : public BaseDynInst<Impl>
 
   public:
     /** BaseDynInst constructor given a binary instruction. */
-    AlphaDynInst(ExtMachInst inst, Addr PC, Addr Pred_PC, InstSeqNum seq_num,
-                 O3CPU *cpu);
+    AlphaDynInst(ExtMachInst inst, Addr PC, Addr NPC,
+                 Addr Pred_PC, Addr Pred_NPC,
+                 InstSeqNum seq_num, O3CPU *cpu);
 
     /** BaseDynInst constructor given a static inst pointer. */
     AlphaDynInst(StaticInstPtr &_staticInst);
index 02432f721fb238dd87d6cbb763ab7779dc93cde8..50cdec408de6bd348358da0b9e2de4ece0c50de3 100644 (file)
 #include "cpu/o3/alpha/dyn_inst.hh"
 
 template <class Impl>
-AlphaDynInst<Impl>::AlphaDynInst(ExtMachInst inst, Addr PC, Addr Pred_PC,
+AlphaDynInst<Impl>::AlphaDynInst(ExtMachInst inst, Addr PC, Addr NPC,
+                                 Addr Pred_PC, Addr Pred_NPC,
                                  InstSeqNum seq_num, O3CPU *cpu)
-    : BaseDynInst<Impl>(inst, PC, Pred_PC, seq_num, cpu)
+    : BaseDynInst<Impl>(inst, PC, NPC, Pred_PC, Pred_NPC, seq_num, cpu)
 {
     initVars();
 }
index 815935db321b19e3ba037ee3418b0dc18b203f8a..07d02b20b9eb67dfa5d97f6e3b4a1c28d65199f6 100644 (file)
@@ -1256,10 +1256,11 @@ DefaultFetch<Impl>::fetch(bool &status_change)
         ext_inst = TheISA::NoopMachInst;
 
         // Create a new DynInst from the dummy nop.
-        DynInstPtr instruction = new DynInst(ext_inst, fetch_PC,
-                                             next_PC,
+        DynInstPtr instruction = new DynInst(ext_inst,
+                                             fetch_PC, fetch_NPC,
+                                             next_PC, next_NPC,
                                              inst_seq, cpu);
-        instruction->setPredTarg(next_PC + instSize);
+        instruction->setPredTarg(next_PC, next_NPC);
         instruction->setTid(tid);
 
         instruction->setASID(tid);