diff options
Diffstat (limited to 'src/cpu/inorder/resources/use_def.cc')
-rw-r--r-- | src/cpu/inorder/resources/use_def.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/cpu/inorder/resources/use_def.cc b/src/cpu/inorder/resources/use_def.cc index 9d0100565..38a2eb040 100644 --- a/src/cpu/inorder/resources/use_def.cc +++ b/src/cpu/inorder/resources/use_def.cc @@ -159,15 +159,6 @@ UseDefUnit::execute(int slot_idx) InstSeqNum seq_num = inst->seqNum; int ud_idx = ud_req->useDefIdx; - if (inst->fault != NoFault) { - DPRINTF(InOrderUseDef, - "[tid:%i]: [sn:%i]: Detected %s fault @ %x. Forwarding to " - "next stage.\n", inst->readTid(), inst->seqNum, inst->fault->name(), - inst->pcState()); - ud_req->done(); - return; - } - if (serializeOnNextInst[tid] && seq_num > serializeAfterSeqNum[tid]) { inst->setSerializeBefore(); @@ -187,6 +178,15 @@ UseDefUnit::execute(int slot_idx) serializeAfterSeqNum[tid] = seq_num; } + if (inst->fault != NoFault) { + DPRINTF(InOrderUseDef, + "[tid:%i]: [sn:%i]: Detected %s fault @ %x. Forwarding to " + "next stage.\n", inst->readTid(), inst->seqNum, inst->fault->name(), + inst->pcState()); + ud_req->done(); + return; + } + // If there is a non-speculative instruction // in the pipeline then stall instructions here // --- |