I have a problem with register renaming stage. At some point in function "DefaultRename<Impl>::renameDestRegs(DynInstPtr &inst, ThreadID tid)" a physical register is chosen to be assigned to an architectural register which is out of range. More specifically, number of Physical Integer registers is 256 while at some point register # 288 is chosen to be assigned to Arch Int Reg. As far as I realized, there is a free list class which is a container for the free registers. I made sure that at the beginning only registers 40-255 are put in the free list. I am not sure how and where in the code possibly register 288 is added to the the free list. But, I am still suspicious this happens because I have not found any range checking in the code yet that can detect such case. So, even if the problem exists it might have not been detected. I am modifying the code and I need to use the assigned Phys Register number. Apparently my code initializes data structures according to "Number of Physical Registers" and does not accept register 288 as argument.
Any idea about if this is possible and where I should investigate the source of the fault. Thanks, Navid.
_______________________________________________ gem5-users mailing list gem5-users@m5sim.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users