cpu/o3: clean up rename map and free list
authorSteve Reinhardt <steve.reinhardt@amd.com>
Tue, 15 Oct 2013 18:22:44 +0000 (14:22 -0400)
committerSteve Reinhardt <steve.reinhardt@amd.com>
Tue, 15 Oct 2013 18:22:44 +0000 (14:22 -0400)
commit552622184752dc798bc81f9b0b395db68aee9511
treef8867449ca560470442878da448118277f561cbd
parent219c423f1fb0f9a559bfa87f9812426d5e2c3e29
cpu/o3: clean up rename map and free list

Restructured rename map and free list to clean up some
extraneous code and separate out common code that can
be reused across different register classes (int and fp
at this point).  Both components now consist of a set
of Simple* objects that are stand-alone rename map &
free list for each class, plus a Unified* object that
presents a unified interface across all register
classes and then redirects accesses to the appropriate
Simple* object as needed.

Moved free list initialization to PhysRegFile to better
isolate knowledge of physical register index mappings
to that class (and remove the need to pass a number
of parameters to the free list constructor).

Causes a small change to these stats:
  cpu.rename.int_rename_lookups
  cpu.rename.fp_rename_lookups
because they are now categorized on a per-operand basis
rather than a per-instruction basis.
That is, an instruction with mixed fp/int/misc operand
types will have each operand categorized independently,
where previously the lookup was categorized based on
the instruction type.
src/cpu/o3/SConscript
src/cpu/o3/cpu.cc
src/cpu/o3/cpu.hh
src/cpu/o3/cpu_policy.hh
src/cpu/o3/free_list.cc
src/cpu/o3/free_list.hh
src/cpu/o3/regfile.cc [new file with mode: 0644]
src/cpu/o3/regfile.hh
src/cpu/o3/rename_impl.hh
src/cpu/o3/rename_map.cc
src/cpu/o3/rename_map.hh