changeset 6b8a05582dc7 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=6b8a05582dc7
description:
arm: Refactor aarch64 table walk logic to remove redundancy
The functional case is already handled within the fetchDescriptor()
function. We can thus use that function for both atomic and functional
mode when we start the table walk.
Change-Id: Iacaed28cd9024d259fd37a58150efd00ff94d86e
diffstat:
src/arch/arm/table_walker.cc | 12 +-----------
1 files changed, 1 insertions(+), 11 deletions(-)
diffs (26 lines):
diff -r 10a0ce0e358c -r 6b8a05582dc7 src/arch/arm/table_walker.cc
--- a/src/arch/arm/table_walker.cc Tue Aug 02 10:38:02 2016 +0100
+++ b/src/arch/arm/table_walker.cc Tue Aug 02 10:38:02 2016 +0100
@@ -992,21 +992,11 @@
stateQueues[start_lookup_level].size());
stateQueues[start_lookup_level].push_back(currState);
currState = NULL;
- } else if (!currState->functional) {
+ } else {
fetchDescriptor(desc_addr, (uint8_t*)&currState->longDesc.data,
sizeof(uint64_t), flag, -1, NULL,
&TableWalker::doLongDescriptor);
f = currState->fault;
- } else {
- RequestPtr req = new Request(desc_addr, sizeof(uint64_t), flag,
- masterId);
- PacketPtr pkt = new Packet(req, MemCmd::ReadReq);
- pkt->dataStatic((uint8_t*) &currState->longDesc.data);
- port->sendFunctional(pkt);
- doLongDescriptor();
- delete req;
- delete pkt;
- f = currState->fault;
}
return f;
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev