In case of cpu->readIntReg(renamed_reg), the following error messages are displayed and abnormally stopped.
m5.opt: build/ALPHA_SE/cpu/o3/regfile.hh:90: uint64_t PhysRegFile<Impl>::readIntReg(PhysRegIndex) [with Impl = O3CPUImpl]: Assertion `reg_idx < numPhysicalIntRegs' failed. Program aborted at cycle 1393000 Aborted In case of cpu->readIntReg(src_idx), I see incorrect value like 0x2f2f2f2f2f2f2f2f. The value is never changed regardless of execution of different instructions. Ed On Thu, Sep 15, 2011 at 2:58 PM, Ali Saidi <[email protected]> wrote: > > > Something like cpu->readIntReg(renamed_reg); > > Ali > > > > On Thu, 15 Sep 2011 14:44:59 -0400, Edward Kim <[email protected]> > wrote: > > Hi > > I want to look into the register value when register is ready in rename > stage. > What can I do for it? > Specifically, I want to check the register value at line number 1022 in > file src/cpu/o3/rename_impl.hh. > Thanks, > > Ed > > > file src/cpu/o3/rename_impl.hh > > 973 template > 974 inline void > 975 DefaultRename::renameSrcRegs(DynInstPtr &inst, ThreadID tid) > > 976 { > 977 assert(renameMap[tid] != 0); > 978 > 979 unsigned num_src_regs = inst->numSrcRegs(); > 980 > 981 // Get the architectual register numbers from the source and > 982 // destination operands, and redirect them to the right > register. > 983 // Will need to mark dependencies though. > 984 for (int src_idx = 0; src_idx < num_src_regs; src_idx++) { > 985 RegIndex src_reg = inst->srcRegIdx(src_idx); > ....... > ....... > 1006 inst->flattenSrcReg(src_idx, flat_src_reg); > 1007 > 1008 // Look up the source registers to get the phys. register > they've > 1009 // been renamed to, and set the sources to those registers. > 1010 PhysRegIndex renamed_reg = > renameMap[tid]->lookup(flat_src_reg); > 1011 > 1012 DPRINTF(Rename, "[tid:%u]: Looking up arch reg %i, got " > 1013 "physical reg %i.\n", tid, (int)flat_src_reg, > 1014 (int)renamed_reg); > 1015 > 1016 inst->renameSrcReg(src_idx, renamed_reg); > 1017 > 1018 // See if the register is ready or not. > 1019 if (scoreboard->getReg(renamed_reg) == true) { > 1020 DPRINTF(Rename, "[tid:%u]: Register %d is ready.\n", > 1021 tid, renamed_reg); > 1022 /* ================== looking into the register value here > ================= */ > 1023 inst->markSrcRegReady(src_idx); > 1024 } else { > 1025 DPRINTF(Rename, "[tid:%u]: Register %d is not > ready.\n", > 1026 tid, renamed_reg); > 1027 } > > > > _______________________________________________ > gem5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
