diff options
author | Korey Sewell <ksewell@umich.edu> | 2009-05-12 15:01:15 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2009-05-12 15:01:15 -0400 |
commit | 1c7e988272efead94d2cfbe3fd65ba454d3e1fc1 (patch) | |
tree | 55affa4470c6cc8cdadc8da953895a0b3a163a24 /src/cpu/inorder/resources/agen_unit.cc | |
parent | f41df0ee08467711c613faadf9879052ab7196ed (diff) | |
download | gem5-1c7e988272efead94d2cfbe3fd65ba454d3e1fc1.tar.xz |
inorder-mem: skeleton support for prefetch/writehints
Diffstat (limited to 'src/cpu/inorder/resources/agen_unit.cc')
-rw-r--r-- | src/cpu/inorder/resources/agen_unit.cc | 35 |
1 files changed, 9 insertions, 26 deletions
diff --git a/src/cpu/inorder/resources/agen_unit.cc b/src/cpu/inorder/resources/agen_unit.cc index f462b12ea..44cd002ef 100644 --- a/src/cpu/inorder/resources/agen_unit.cc +++ b/src/cpu/inorder/resources/agen_unit.cc @@ -55,35 +55,18 @@ AGENUnit::execute(int slot_num) // Load/Store Instruction if (inst->isMemRef()) { DPRINTF(InOrderAGEN, "[tid:%i] Generating Address for [sn:%i] (%s).\n", - tid, inst->seqNum, inst->staticInst->getName()); + tid, inst->seqNum, inst->staticInst->getName()); + fault = inst->calcEA(); + inst->setMemAddr(inst->getEA()); - // We are not handdling Prefetches quite yet - if (inst->isDataPrefetch() || inst->isInstPrefetch()) { - panic("Prefetches arent handled yet.\n"); - } else { - if (inst->isLoad()) { - fault = inst->calcEA(); - inst->setMemAddr(inst->getEA()); - //inst->setExecuted(); - - DPRINTF(InOrderAGEN, "[tid:%i] [sn:%i] Effective address calculated to be: " - "%#x.\n", tid, inst->seqNum, inst->getEA()); - } else if (inst->isStore()) { - fault = inst->calcEA(); - inst->setMemAddr(inst->getEA()); + DPRINTF(InOrderAGEN, "[tid:%i] [sn:%i] Effective address calculated to be: " + "%#x.\n", tid, inst->seqNum, inst->getEA()); - DPRINTF(InOrderAGEN, "[tid:%i] [sn:%i] Effective address calculated to be: " - "%#x.\n", tid, inst->seqNum, inst->getEA()); - } else { - panic("Unexpected memory type!\n"); - } - - if (fault == NoFault) { - agen_req->done(); - } else { - fatal("%s encountered @ [sn:%i]",fault->name(), seq_num); - } + if (fault == NoFault) { + agen_req->done(); + } else { + fatal("%s encountered while calculating address for [sn:%i]",fault->name(), seq_num); } } else { DPRINTF(InOrderAGEN, "[tid:] Ignoring non-memory instruction [sn:%i].\n", tid, seq_num); |