O3: Keep around the last committed instruction and use for squashing.
authorAli Saidi <Ali.Saidi@ARM.com>
Tue, 18 Jan 2011 22:30:05 +0000 (16:30 -0600)
committerAli Saidi <Ali.Saidi@ARM.com>
Tue, 18 Jan 2011 22:30:05 +0000 (16:30 -0600)
commit1167ef19cf0c478e73fc6e1848f005863525cc13
tree2756424caa7a54899fdfa9fad45629e9b3784d88
parentea058b14da9f84d9b30f8ef7710d18546fc79db8
O3: Keep around the last committed instruction and use for squashing.

Without this change 0 is always used for the youngest sequence number if
a squash occured and the ROB was empty (E.g. an instruction is marked
serializeAfter or a fetch stall prevents other instructions from issuing).
Using 0 there is a race to rename where an instruction that committed the
same cycle as the squashing instruction can have it's renamed state undone
by the squash using sequence number 0.
src/cpu/o3/commit.hh
src/cpu/o3/commit_impl.hh