LSQ: Moved a couple of lines to enable O3 + Ruby
authorNilay Vaish <nilay@cs.wisc.edu>
Mon, 26 Sep 2011 17:18:32 +0000 (12:18 -0500)
committerNilay Vaish <nilay@cs.wisc.edu>
Mon, 26 Sep 2011 17:18:32 +0000 (12:18 -0500)
commit56bddab18940e766bdfdeb98e0691a994859dcde
tree2b8e689a0278c060ce59739eda09a0f92440e822
parent16e0215d3041353f54552e7f5f7482aae13bf486
LSQ: Moved a couple of lines to enable O3 + Ruby
This patch makes O3 CPU work along with the Ruby memory model. Ruby
overwrites the senderState pointer with another pointer. The pointer
is restored only when Ruby gets done with the packet. LSQ makes use of
senderState just after sendTiming() returns. But the dynamic_cast returns
a NULL pointer since Ruby's senderState pointer is from a different class.
Storing the senderState pointer before calling sendTiming() does away with
the problem.
src/cpu/o3/lsq_unit_impl.hh