diff options
author | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:36 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:36 -0400 |
commit | 7dea79535c87b68b5fc6143190d09b8fc364f2aa (patch) | |
tree | 3f30f0716de709f86b9adaa746f0b3e312203cef /src/cpu/inorder/resources/execution_unit.cc | |
parent | 061b369d288ba4e3fdb145c025fb4d80378cb851 (diff) | |
download | gem5-7dea79535c87b68b5fc6143190d09b8fc364f2aa.tar.xz |
inorder: implement trap handling
Diffstat (limited to 'src/cpu/inorder/resources/execution_unit.cc')
-rw-r--r-- | src/cpu/inorder/resources/execution_unit.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cpu/inorder/resources/execution_unit.cc b/src/cpu/inorder/resources/execution_unit.cc index 4363f125d..d7151add1 100644 --- a/src/cpu/inorder/resources/execution_unit.cc +++ b/src/cpu/inorder/resources/execution_unit.cc @@ -140,9 +140,10 @@ ExecutionUnit::execute(int slot_num) // Evaluate Branch fault = inst->execute(); executions++; - inst->setExecuted(); if (fault == NoFault) { + inst->setExecuted(); + if (inst->mispredicted()) { assert(inst->isControl()); @@ -190,7 +191,8 @@ ExecutionUnit::execute(int slot_num) exec_req->done(); } else { - warn("inst [sn:%i] had a %s fault", seq_num, fault->name()); + DPRINTF(Fault, "[tid:%i]:[sn:%i]: Fault %s found\n", + inst->readTid(), inst->seqNum, fault->name()); inst->fault = fault; exec_req->done(); } @@ -210,6 +212,8 @@ ExecutionUnit::execute(int slot_num) } else { DPRINTF(InOrderExecute, "[tid:%i]: [sn:%i]: had a %s " "fault.\n", inst->readTid(), seq_num, fault->name()); + DPRINTF(Fault, "[tid:%i]:[sn:%i]: Fault %s found\n", + inst->readTid(), inst->seqNum, fault->name()); inst->fault = fault; } |