From 54abc8b3372287d9b286f5a0dc04d25a916bf889 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 11 Apr 2007 14:02:03 +0000 Subject: [PATCH] Make the itlb set the PHYSICAL flag on a request when it translates it. This gets it out of the cpu. --HG-- extra : convert_revision : 20611263b799b5e835116adbf39d2ecc78701eef --- src/arch/alpha/tlb.cc | 4 ++++ src/cpu/simple/base.cc | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) 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); -- 2.30.2