diff -r 7a94f65207c5 -r b5f3bd6a3bd2 src/cpu/o3/dyn_inst_impl.hh --- a/src/cpu/o3/dyn_inst_impl.hh Mon Nov 08 17:32:35 2010 -0600 +++ b/src/cpu/o3/dyn_inst_impl.hh Mon Nov 08 17:32:39 2010 -0600 @@ -113,8 +113,17 @@ Fault BaseO3DynInst::completeAcc(PacketPtr pkt) { + // @todo: Pretty convoluted way to avoid squashing from happening + // when using the TC during an instruction's execution + // (specifically for instructions that have side-effects that use + // the TC). Fix this. + bool in_syscall = this->thread->inSyscall; + this->thread->inSyscall = true; + this->fault = this->staticInst->completeAcc(pkt, this, this->traceData); + this->thread->inSyscall = in_syscall; + return this->fault; }