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:
parent
fcc35a67e0
commit
54abc8b337
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue