diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-04-11 14:02:03 +0000 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-04-11 14:02:03 +0000 |
commit | 54abc8b3372287d9b286f5a0dc04d25a916bf889 (patch) | |
tree | 6659d2b086b1c6b4fe046ba94d25f8869c3d50eb /src | |
parent | fcc35a67e0cfa2e627ebba3fca0252bfb18f03c6 (diff) | |
download | gem5-54abc8b3372287d9b286f5a0dc04d25a916bf889.tar.xz |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/alpha/tlb.cc | 4 | ||||
-rw-r--r-- | 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); |