summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/resources/tlb_unit.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/inorder/resources/tlb_unit.cc')
-rw-r--r--src/cpu/inorder/resources/tlb_unit.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cpu/inorder/resources/tlb_unit.cc b/src/cpu/inorder/resources/tlb_unit.cc
index fbc6bc195..dbf799661 100644
--- a/src/cpu/inorder/resources/tlb_unit.cc
+++ b/src/cpu/inorder/resources/tlb_unit.cc
@@ -118,7 +118,7 @@ TLBUnit::execute(int slot_idx)
{
tlb_req->fault =
_tlb->translateAtomic(tlb_req->memReq,
- cpu->thread[tid]->getTC(), false, true);
+ cpu->thread[tid]->getTC(), TheISA::TLB::Execute);
if (tlb_req->fault != NoFault) {
DPRINTF(InOrderTLB, "[tid:%i]: %s encountered while translating "
@@ -142,14 +142,19 @@ TLBUnit::execute(int slot_idx)
}
break;
- case DataLookup:
+ case DataReadLookup:
+ case DataWriteLookup:
{
DPRINTF(InOrderTLB, "[tid:%i]: [sn:%i]: Attempting to translate %08p.\n",
tid, seq_num, tlb_req->memReq->getVaddr());
+
+ TheISA::TLB::Mode tlb_mode = (tlb_req->cmd == DataReadLookup) ?
+ TheISA::TLB::Read : TheISA::TLB::Write;
+
tlb_req->fault =
_tlb->translateAtomic(tlb_req->memReq,
- cpu->thread[tid]->getTC());
+ cpu->thread[tid]->getTC(), tlb_mode);
if (tlb_req->fault != NoFault) {
DPRINTF(InOrderTLB, "[tid:%i]: %s encountered while translating "