table_walker.cc (7946:7c58c106d28d) table_walker.cc (8067:21f14583aa6a)
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 127 unchanged lines hidden (view full) ---

136
137 currState->isFetch = (currState->mode == TLB::Execute);
138 currState->isWrite = (currState->mode == TLB::Write);
139
140
141 if (!currState->timing)
142 return processWalk();
143
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 127 unchanged lines hidden (view full) ---

136
137 currState->isFetch = (currState->mode == TLB::Execute);
138 currState->isWrite = (currState->mode == TLB::Write);
139
140
141 if (!currState->timing)
142 return processWalk();
143
144 if (pending) {
144 if (pending || pendingQueue.size()) {
145 pendingQueue.push_back(currState);
146 currState = NULL;
147 } else {
148 pending = true;
145 pendingQueue.push_back(currState);
146 currState = NULL;
147 } else {
148 pending = true;
149 processWalk();
149 return processWalk();
150 }
151
152 return NoFault;
153}
154
155void
156TableWalker::processWalkWrapper()
157{

--- 31 unchanged lines hidden (view full) ---

189 DPRINTF(TLB, " - Descriptor at address %#x\n", l1desc_addr);
190
191
192 // Trickbox address check
193 Fault f;
194 f = tlb->walkTrickBoxCheck(l1desc_addr, currState->vaddr, sizeof(uint32_t),
195 currState->isFetch, currState->isWrite, 0, true);
196 if (f) {
150 }
151
152 return NoFault;
153}
154
155void
156TableWalker::processWalkWrapper()
157{

--- 31 unchanged lines hidden (view full) ---

189 DPRINTF(TLB, " - Descriptor at address %#x\n", l1desc_addr);
190
191
192 // Trickbox address check
193 Fault f;
194 f = tlb->walkTrickBoxCheck(l1desc_addr, currState->vaddr, sizeof(uint32_t),
195 currState->isFetch, currState->isWrite, 0, true);
196 if (f) {
197 DPRINTF(TLB, "Trickbox check caused fault on %#x\n", currState->vaddr);
197 if (currState->timing) {
198 if (currState->timing) {
198 currState->transState->finish(f, currState->req,
199 currState->tc, currState->mode);
200
201 pending = false;
202 nextWalk(currState->tc);
203 currState = NULL;
204 } else {
205 currState->tc = NULL;
206 currState->req = NULL;
207 }
208 return f;

--- 519 unchanged lines hidden ---
199 pending = false;
200 nextWalk(currState->tc);
201 currState = NULL;
202 } else {
203 currState->tc = NULL;
204 currState->req = NULL;
205 }
206 return f;

--- 519 unchanged lines hidden ---