commit_impl.hh (2790:2f8e9762bee9) commit_impl.hh (2808:a88ea76f6738)
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 977 unchanged lines hidden (view full) ---

986 }
987#endif
988
989 // Check if the instruction caused a fault. If so, trap.
990 Fault inst_fault = head_inst->getFault();
991
992 if (inst_fault != NoFault) {
993 head_inst->setCompleted();
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 977 unchanged lines hidden (view full) ---

986 }
987#endif
988
989 // Check if the instruction caused a fault. If so, trap.
990 Fault inst_fault = head_inst->getFault();
991
992 if (inst_fault != NoFault) {
993 head_inst->setCompleted();
994#if FULL_SYSTEM
995 DPRINTF(Commit, "Inst [sn:%lli] PC %#x has a fault\n",
996 head_inst->seqNum, head_inst->readPC());
997
998 if (iewStage->hasStoresToWB() || inst_num > 0) {
999 DPRINTF(Commit, "Stores outstanding, fault must wait.\n");
1000 return false;
1001 }
1002

--- 27 unchanged lines hidden (view full) ---

1030 thread[tid]->inSyscall = false;
1031
1032 commitStatus[tid] = TrapPending;
1033
1034 // Generate trap squash event.
1035 generateTrapEvent(tid);
1036
1037 return false;
994 DPRINTF(Commit, "Inst [sn:%lli] PC %#x has a fault\n",
995 head_inst->seqNum, head_inst->readPC());
996
997 if (iewStage->hasStoresToWB() || inst_num > 0) {
998 DPRINTF(Commit, "Stores outstanding, fault must wait.\n");
999 return false;
1000 }
1001

--- 27 unchanged lines hidden (view full) ---

1029 thread[tid]->inSyscall = false;
1030
1031 commitStatus[tid] = TrapPending;
1032
1033 // Generate trap squash event.
1034 generateTrapEvent(tid);
1035
1036 return false;
1038#else // !FULL_SYSTEM
1039 panic("fault (%d) detected @ PC %08p", inst_fault,
1040 head_inst->PC);
1041#endif // FULL_SYSTEM
1042 }
1043
1044 updateComInstStats(head_inst);
1045
1046 if (head_inst->traceData) {
1047 head_inst->traceData->setFetchSeq(head_inst->seqNum);
1048 head_inst->traceData->setCPSeq(thread[tid]->numInst);
1049 head_inst->traceData->finalize();

--- 232 unchanged lines hidden ---
1037 }
1038
1039 updateComInstStats(head_inst);
1040
1041 if (head_inst->traceData) {
1042 head_inst->traceData->setFetchSeq(head_inst->seqNum);
1043 head_inst->traceData->setCPSeq(thread[tid]->numInst);
1044 head_inst->traceData->finalize();

--- 232 unchanged lines hidden ---