diff -r ef798deb9a02 -r 3b8f54d3b732 src/cpu/base_dyn_inst.hh --- a/src/cpu/base_dyn_inst.hh Sun Aug 22 18:42:23 2010 -0700 +++ b/src/cpu/base_dyn_inst.hh Mon Aug 23 02:31:37 2010 -0700 @@ -899,6 +899,12 @@ this->setExecuted(); } + if (fault != NoFault) { + // Return a fixed value to keep simulation deterministic even + // along misspeculated paths. + bzero(data, size); + } + if (traceData) { traceData->setAddr(addr); } @@ -913,11 +919,6 @@ { Fault fault = readBytes(addr, (uint8_t *)&data, sizeof(T), flags); - if (fault != NoFault) { - // Return a fixed value to keep simulation deterministic even - // along misspeculated paths. - data = (T)-1; - } data = TheISA::gtoh(data); if (traceData) {