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
This commit is contained in:
Gabe Black 2007-04-11 14:02:03 +00:00
parent fcc35a67e0
commit 54abc8b337
2 changed files with 6 additions and 3 deletions

View 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);

View 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);