diff options
Diffstat (limited to 'src/cpu/inorder/resources/graduation_unit.cc')
-rw-r--r-- | src/cpu/inorder/resources/graduation_unit.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cpu/inorder/resources/graduation_unit.cc b/src/cpu/inorder/resources/graduation_unit.cc index 826ed8e03..9c17db945 100644 --- a/src/cpu/inorder/resources/graduation_unit.cc +++ b/src/cpu/inorder/resources/graduation_unit.cc @@ -67,7 +67,14 @@ GraduationUnit::execute(int slot_num) // Handle Any Faults Before Graduating Instruction if (inst->fault != NoFault) { - cpu->trap(inst->fault, tid, inst); + DPRINTF(Fault, "[sn:%i]: fault %s found for %s\n", + inst->seqNum, inst->fault->name(), + inst->instName()); + inst->setSquashInfo(stage_num); + setupSquash(inst, stage_num, tid); + cpu->trapContext(inst->fault, tid, inst); + grad_req->done(false); + return; } DPRINTF(InOrderGraduation, |