Make the itlb set the PHYSICAL flag on a request when it translates it. This gets...
authorGabe Black <gblack@eecs.umich.edu>
Wed, 11 Apr 2007 14:02:03 +0000 (14:02 +0000)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 11 Apr 2007 14:02:03 +0000 (14:02 +0000)
--HG--
extra : convert_revision : 20611263b799b5e835116adbf39d2ecc78701eef

src/arch/alpha/tlb.cc
src/cpu/simple/base.cc

index 3ab65e66458f354a236371193ca47d36d141f1e4..e9f126f121196b92919b1f42b608ebbf0d0dbe5b 100644 (file)
@@ -292,6 +292,10 @@ ITB::regStats()
 Fault
 ITB::translate(RequestPtr &req, ThreadContext *tc) const
 {
+    //If this is a pal pc, then set PHYSICAL
+    if(FULL_SYSTEM && PcPAL(req->getPC()))
+        req->setFlags(req->getFlags() | PHYSICAL);
+
     if (PcPAL(req->getPC())) {
         // strip off PAL PC marker (lsb is 1)
         req->setPaddr((req->getVaddr() & ~3) & PAddrImplMask);
index 877dc5bd494cb9a1204f1ea996ef7c6fd3e12016..c9d4f4c8f87d42f881d2d4c853df36e136754196 100644 (file)
@@ -335,9 +335,8 @@ BaseSimpleCPU::setupFetchRequest(Request *req)
             thread->readNextPC());
 #endif
 
-    req->setVirt(0, thread->readPC() & ~3, sizeof(MachInst),
-                 (FULL_SYSTEM && (thread->readPC() & 1)) ? PHYSICAL : 0,
-                 thread->readPC());
+    req->setVirt(0, thread->readPC() & ~3, sizeof(MachInst), 0,
+            thread->readPC());
 
     Fault fault = thread->translateInstReq(req);