cpu: Fix O3 uncacheable load that is replayed but misses the TLB
authorAli Saidi <Ali.Saidi@ARM.com>
Thu, 17 Oct 2013 15:20:45 +0000 (10:20 -0500)
committerAli Saidi <Ali.Saidi@ARM.com>
Thu, 17 Oct 2013 15:20:45 +0000 (10:20 -0500)
commitcf266f05a97b7a0e613fd10cb01f38fec6a4f16c
tree1d6180180b8839bbcbb0bcf32528fda00423e5b2
parent60ce2b34fedcb999e249c7b9d277605303b741cf
cpu: Fix O3 uncacheable load that is replayed but misses the TLB

This change fixes an issue in the O3 CPU where an uncachable instruction
is attempted to be executed before it reaches the head of the ROB. It is
determined to be uncacheable, and is replayed, but a PanicFault is attached
to the instruction to make sure that it is properly executed before
committing. If the TLB entry it was using is replaced in the interveaning
time, the TLB returns a delayed translation when the load is replayed at
the head of the ROB, however the LSQ code can't differntiate between the
old fault and the new one. If the translation isn't complete it can't
be faulting, so clear the fault.
src/cpu/base_dyn_inst.hh