On Mon, 1 Oct 2012, Veydan Wu wrote:
Hi, all,
I wonder if anyone encountered this before. I ran a SPEC2006 application
(GemsFDTD), there are two instructions 1: stq r24, 16(r30) followed by 2:
ldt f0, 16(r30), very close.
In the unmodified OOO execution, 1 forwards the value (0x17) to 2
correctly. If I separated them, and make 1 complete before 2 starts, then 2
has to read cache. Cache still returns the correct value (0x17), however,
in *AlphaISAInst::Ldt::completeAcc(...), getMem()* cannot return the
correct value, the reason is that it transforms the returned data (0x17) by
*(T*)data where T here is of type double.
In gdb, **(double*)* data return a value almost 0 while **data* gives the
correct value 0x17. Thus when **(T*)data* is provided to gtoh(...) in
getMem(...), 0 is returned.
You need to explain this better. It is not at all clear to me what you are
trying to illustrate here.
--
Nilay
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users