diff --git a/src/arch/alpha/tlb.cc b/src/arch/alpha/tlb.cc index 3ab65e664..e9f126f12 100644 --- a/src/arch/alpha/tlb.cc +++ b/src/arch/alpha/tlb.cc @@ -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); diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc index 877dc5bd4..c9d4f4c8f 100644 --- a/src/cpu/simple/base.cc +++ b/src/cpu/simple/base.cc @@ -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);