241,255c241,261
< // Get the physical register index of the i'th source register.
< PhysRegIdPtr src_reg = dyn_inst->renamedSrcRegIdx(src_idx);
< DPRINTFR(ElasticTrace, "[sn:%lli] Check map for src reg"
< " %i (%s)\n", seq_num,
< src_reg->index(), src_reg->className());
< auto itr_last_writer = physRegDepMap.find(src_reg->flatIndex());
< if (itr_last_writer != physRegDepMap.end()) {
< InstSeqNum last_writer = itr_last_writer->second;
< // Additionally the dependency distance is kept less than the window
< // size parameter to limit the memory allocation to nodes in the
< // graph. If the window were tending to infinite we would have to
< // load a large number of node objects during replay.
< if (seq_num - last_writer < depWindowSize) {
< // Record a physical register dependency.
< exec_info_ptr->physRegDepSet.insert(last_writer);
---
>
> const RegId& src_reg = dyn_inst->srcRegIdx(src_idx);
> if (!src_reg.isMiscReg() &&
> !src_reg.isZeroReg()) {
> // Get the physical register index of the i'th source register.
> PhysRegIdPtr phys_src_reg = dyn_inst->renamedSrcRegIdx(src_idx);
> DPRINTFR(ElasticTrace, "[sn:%lli] Check map for src reg"
> " %i (%s)\n", seq_num,
> phys_src_reg->flatIndex(), phys_src_reg->className());
> auto itr_writer = physRegDepMap.find(phys_src_reg->flatIndex());
> if (itr_writer != physRegDepMap.end()) {
> InstSeqNum last_writer = itr_writer->second;
> // Additionally the dependency distance is kept less than the
> // window size parameter to limit the memory allocation to
> // nodes in the graph. If the window were tending to infinite
> // we would have to load a large number of node objects during
> // replay.
> if (seq_num - last_writer < depWindowSize) {
> // Record a physical register dependency.
> exec_info_ptr->physRegDepSet.insert(last_writer);
> }
256a263
>
257a265
>
273c281
< " %i (%s)\n", seq_num, dest_reg.index(),
---
> " %i (%s)\n", seq_num, phys_dest_reg->flatIndex(),