Hi Gabe, Thanks for your reply.
For now, I will assume that there is no real way to use fsincos and the fnstsw instructions (even if they are implemented) without implementing more x87. I don't quite have the time or expertise to add the extra x87 support to the simulator, so I will not work on these two patches any more. But if they prove to be a problem (especially with respect to spec06 workloads), I am happy to see them to completion at that point. Thanks, Marc On Sun, May 20, 2012 at 10:29 PM, Gabe Black <[email protected]> wrote: > Most of x87 is unimplemented, partially because x87 is largely > unnecessary these days, and partially because we never decided on a > solid strategy for implementing it. Some of the basics are there like > the floating point registers behaving like a stack. As far as the > floating point status register, off hand I don't think it's of much > practical use for many things people would want to run on gem5. For most > things I don't think rounding modes or exception bits matter much. I > think glibc sets up that register when it starts, but that's probably > just to put it in a known/default state. > > Gabe > > On 05/20/12 20:51, Marc Orr wrote: >> Hi All, >> >> I was looking at 2 of the outstanding spec06 patches from Vince Weaver >> that implement x87 instructions. One implements the x87 fsincos >> instruction. The other implements the x87 fnstsw instruction. I wrote >> a little test program to exercise both of these instructions. The >> program runs on a real x86 machine correctly. When I run it in the >> simulator, even with these patches applied, it does not work. >> >> What I found was that other x87 instructions, normally used in >> conjunction with these two instructions seem unimplemented. >> >> fsincos: Gets its source from the floating point stack. All of the >> instructions I came across that operate on the floating point stack >> (fld, fst, fstp, fxchg) are not currently implemented in gem5. >> fnstsw: Retrieves a value from the floating point status register. >> When I did a grep on the gem5 source, I didn't see any instructions >> updating the floating point status register. >> >> I am missing something here? Is there any way to exercise these >> instructions in gem5? Can we put stuff on the floating point stack so >> that fsincos is actually useful? Do any instructions ever actually >> update the floating point status register? >> >> Thanks, >> Marc >> _______________________________________________ >> gem5-dev mailing list >> [email protected] >> http://m5sim.org/mailman/listinfo/gem5-dev > > _______________________________________________ > gem5-dev mailing list > [email protected] > http://m5sim.org/mailman/listinfo/gem5-dev _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
