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 --- |