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

Reply via email to