commit_impl.hh (3093:b09c33e66bce) | commit_impl.hh (3125:febd811bccc6) |
---|---|
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; --- 1069 unchanged lines hidden (view full) --- 1078 1079 // Exit state update mode to avoid accidental updating. 1080 thread[tid]->inSyscall = false; 1081 1082 commitStatus[tid] = TrapPending; 1083 1084 // Generate trap squash event. 1085 generateTrapEvent(tid); | 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; --- 1069 unchanged lines hidden (view full) --- 1078 1079 // Exit state update mode to avoid accidental updating. 1080 thread[tid]->inSyscall = false; 1081 1082 commitStatus[tid] = TrapPending; 1083 1084 // Generate trap squash event. 1085 generateTrapEvent(tid); |
1086 | 1086// warn("%lli fault (%d) handled @ PC %08p", curTick, inst_fault->name(), head_inst->readPC()); |
1087 return false; 1088 } 1089 1090 updateComInstStats(head_inst); 1091 | 1087 return false; 1088 } 1089 1090 updateComInstStats(head_inst); 1091 |
1092#if FULL_SYSTEM 1093 if (thread[tid]->profile) { 1094// bool usermode = 1095// (cpu->readMiscReg(AlphaISA::IPR_DTB_CM, tid) & 0x18) != 0; 1096// thread[tid]->profilePC = usermode ? 1 : head_inst->readPC(); 1097 thread[tid]->profilePC = head_inst->readPC(); 1098 ProfileNode *node = thread[tid]->profile->consume(thread[tid]->getXCProxy(), 1099 head_inst->staticInst); 1100 1101 if (node) 1102 thread[tid]->profileNode = node; 1103 } 1104#endif 1105 |
|
1092 if (head_inst->traceData) { 1093 head_inst->traceData->setFetchSeq(head_inst->seqNum); 1094 head_inst->traceData->setCPSeq(thread[tid]->numInst); 1095 head_inst->traceData->finalize(); 1096 head_inst->traceData = NULL; 1097 } 1098 1099 // Update the commit rename map 1100 for (int i = 0; i < head_inst->numDestRegs(); i++) { 1101 renameMap[tid]->setEntry(head_inst->destRegIdx(i), 1102 head_inst->renamedDestRegIdx(i)); 1103 } 1104 | 1106 if (head_inst->traceData) { 1107 head_inst->traceData->setFetchSeq(head_inst->seqNum); 1108 head_inst->traceData->setCPSeq(thread[tid]->numInst); 1109 head_inst->traceData->finalize(); 1110 head_inst->traceData = NULL; 1111 } 1112 1113 // Update the commit rename map 1114 for (int i = 0; i < head_inst->numDestRegs(); i++) { 1115 renameMap[tid]->setEntry(head_inst->destRegIdx(i), 1116 head_inst->renamedDestRegIdx(i)); 1117 } 1118 |
1119 if (head_inst->isCopy()) 1120 panic("Should not commit any copy instructions!"); 1121 |
|
1105 // Finally clear the head ROB entry. 1106 rob->retireHead(tid); 1107 1108 // Return true to indicate that we have committed an instruction. 1109 return true; 1110} 1111 1112template <class Impl> --- 290 unchanged lines hidden --- | 1122 // Finally clear the head ROB entry. 1123 rob->retireHead(tid); 1124 1125 // Return true to indicate that we have committed an instruction. 1126 return true; 1127} 1128 1129template <class Impl> --- 290 unchanged lines hidden --- |