Pushed ev5.hh out of the non-alpha code.
authorGabe Black <gblack@eecs.umich.edu>
Tue, 7 Mar 2006 19:08:01 +0000 (14:08 -0500)
committerGabe Black <gblack@eecs.umich.edu>
Tue, 7 Mar 2006 19:08:01 +0000 (14:08 -0500)
arch/SConscript:
    ev5 should now be contained within alpha specific code.
arch/alpha/ev5.cc:
arch/alpha/isa_traits.hh:
    Added getInstAsid and getDataAsid functions. These should be removed when the SimpleScalar cpu model is removed.
arch/sparc/isa_traits.hh:
    Added getInstAsid and getDataAsid functions. These should be removed when the SimpleScalar cpu model is removed. Also made some small fixes.
cpu/o3/alpha_cpu.hh:
    Added typedefs which are required now that there isn't a using namespace EV5.
cpu/o3/alpha_cpu_impl.hh:
    Some small changes so that ev5.hh isn't needed directly.
cpu/o3/cpu.hh:
    Removed including ev5.hh, and pushed retrieving the Asid into the MiscRegFile.
cpu/o3/regfile.hh:
    Removed the include of ev5.hh, using namespace EV5, and the now redundant ipr array.

--HG--
extra : convert_revision : 5ef8f69435a3a888a3f06d0095d89326dafb33fd

arch/SConscript
arch/alpha/ev5.cc
arch/alpha/isa_traits.hh
arch/sparc/isa_traits.hh
cpu/o3/alpha_cpu.hh
cpu/o3/alpha_cpu_impl.hh
cpu/o3/cpu.hh
cpu/o3/regfile.hh

index 380cda30724f0d9a85618164e8c904d80d7ef6f2..0533261a274f724951dda75409f2ad2ddcb5b527 100644 (file)
@@ -52,7 +52,6 @@ isa_switch_hdrs = Split('''
        stacktrace.hh
        vtophys.hh
        faults.hh
-       ev5.hh
         ''')
 
 # Generate the header.  target[0] is the full path of the output
index e313c1a1c1020e90d80bbdb8c05805e61d3c4a6a..47ada6de60a829aff9fc39b42fa0991c2fc7d5e0 100644 (file)
@@ -152,6 +152,18 @@ ExecContext::hwrei()
     return NoFault;
 }
 
+int
+AlphaISA::MiscRegFile::getInstAsid()
+{
+    return EV5::ITB_ASN_ASN(ipr[IPR_ITB_ASN]);
+}
+
+int
+AlphaISA::MiscRegFile::getDataAsid()
+{
+    return EV5::DTB_ASN_ASN(ipr[IPR_DTB_ASN]);
+}
+
 void
 AlphaISA::MiscRegFile::clearIprs()
 {
index 742539e8979d0e65220021a7095ff6c7d7640f3a..be6d5111d52b6fe44e388c18a819ffbd0e9f057a 100644 (file)
@@ -166,6 +166,11 @@ extern const int reg_redir[NumIntRegs];
       public:
         MiscReg readReg(int misc_reg);
 
+        //These functions should be removed once the simplescalar cpu model
+        //has been replaced.
+        int getInstAsid();
+        int getDataAsid();
+
         MiscReg readRegWithEffect(int misc_reg, Fault &fault, ExecContext *xc);
 
         Fault setReg(int misc_reg, const MiscReg &val);
index 0fdac16620c460c62fc7f7ad9eee5017de2498bf..73daae8a9f109163d437d2202fb543d13046f7d0 100644 (file)
@@ -57,7 +57,7 @@ class StaticInstPtr;
 namespace SparcISA
 {
     typedef uint32_t MachInst;
-    typedef uint64_t Addr;
+    typedef uint64_t ExtMachInst;
     typedef uint8_t  RegIndex;
 
     enum
@@ -179,7 +179,7 @@ namespace SparcISA
     // The control registers, broken out into fields
     class MiscRegFile
     {
-      public:
+      private:
         union
         {
             uint16_t pstate;           // Process State Register
@@ -365,6 +365,16 @@ namespace SparcISA
             } fprsFields;
         };
 
+      public:
+        MiscReg readReg(int misc_reg);
+
+        MiscReg readRegWithEffect(int misc_reg, Fault &fault, ExecContext *xc);
+
+        Fault setReg(int misc_reg, const MiscReg &val);
+
+        Fault setRegWithEffect(int misc_reg, const MiscReg &val,
+                               ExecContext *xc);
+
         void serialize(std::ostream & os);
 
         void unserialize(Checkpoint * cp, std::string & section);
index 38c00a3a9aec133341a100dc4247dc3ad371d55c..55fde1f1d22449ad1f06b648570f3d00685426cd 100644 (file)
@@ -42,6 +42,8 @@ class AlphaFullCPU : public FullO3CPU<Impl>
   protected:
     typedef TheISA::IntReg IntReg;
     typedef TheISA::MiscReg MiscReg;
+    typedef TheISA::RegFile RegFile;
+    typedef TheISA::MiscRegFile MiscRegFile;
 
   public:
     typedef typename Impl::Params Params;
index a1c659b51f783d413b8c116f4f8913bb328633b7..5ab9e6e75d2e24e6a200f39f5e70a146bcd3e781 100644 (file)
@@ -26,6 +26,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include "arch/alpha/faults.hh"
 #include "base/cprintf.hh"
 #include "base/statistics.hh"
 #include "base/timebuf.hh"
@@ -257,7 +258,7 @@ Fault
 AlphaFullCPU<Impl>::hwrei()
 {
     if (!inPalMode())
-        return new UnimplementedOpcodeFault;
+        return new AlphaISA::UnimplementedOpcodeFault;
 
     this->setNextPC(this->regFile.miscRegs.readReg(AlphaISA::IPR_EXC_ADDR));
 
index 02908887e96201fef37420323d93d8ff7f2ac253..31a1b604baf21cdf8c978f30b147065020b144a6 100644 (file)
 #include "cpu/exec_context.hh"
 #include "sim/process.hh"
 
-#if FULL_SYSTEM
-#include "arch/ev5.hh"
-using namespace EV5;
-#endif
-
 class FunctionalMemory;
 class Process;
 
@@ -152,11 +147,11 @@ class FullO3CPU : public BaseFullCPU
 
     /** Get instruction asid. */
     int getInstAsid()
-    { return ITB_ASN_ASN(regFile.miscRegs.readReg(TheISA::IPR_ITB_ASN)); }
+    { return regFile.miscRegs.getInstAsid(); }
 
     /** Get data asid. */
     int getDataAsid()
-    { return DTB_ASN_ASN(regFile.miscRegs.readReg(TheISA::IPR_DTB_ASN)); }
+    { return regFile.miscRegs.getDataAsid(); }
 #else
     bool validInstAddr(Addr addr)
     { return thread[0]->validInstAddr(addr); }
index 03ad2da46721d5d75c65387a6c24739dbf27101a..1e6e10f29c1b67b1b1abbc56349ce7212e1dab49 100644 (file)
 #include "cpu/o3/comm.hh"
 
 #if FULL_SYSTEM
-#include "arch/ev5.hh"
 #include "kern/kernel_stats.hh"
 
-using namespace EV5;
 #endif
 
 // This really only depends on the ISA, and not the Impl.  It might be nicer
@@ -237,7 +235,6 @@ class PhysRegFile
   private:
     // This is ISA specifc stuff; remove it eventually once ISAImpl is used
 //    IntReg palregs[NumIntRegs];      // PAL shadow registers
-    InternalProcReg ipr[NumInternalProcRegs]; // internal processor regs
     int intrflag;                      // interrupt flag
     bool pal_shadow;           // using pal_shadow registers
 #endif