From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marc Lehmann To: egcs@cygnus.com Subject: Re: FWD: FLOATING-POINT CONSISTENCY, -FFLOAT-STORE, AND X86 Date: Wed, 16 Dec 1998 12:25:00 -0000 Message-id: <19981216185409.A2595@cerebro.laendle> References: <199812150119.RAA03420@yamato.synopsys.com> <199812150251.SAA11628@lotus.CS.Berkeley.EDU> <19981216010546.F7806@tantalophile.demon.co.uk> X-SW-Source: 1998-12/msg00601.html Sorry if my answers below were already answered, but I read the whole thread and didn't see it. On Wed, Dec 16, 1998 at 01:05:46AM +0000, Jamie Lokier wrote: > On Mon, Dec 14, 1998 at 06:51:28PM -0800, Edward Jason Riedy wrote: > > Using 80-bit spills is a quick approximation to extending the FP stack > > into memory, and it should give some of the benefit with very little > > (hopefully) hassle. Of course, 80 bits is wider than the normal spill, > > so it eats more memory bandwidth, cache space, etc. Anyone who's that > > concerned will bend over backwards to avoid spills anyways. > > I like this 80-bit spills idea. Since it seems to give us full ieee without too much a drawback (spilling in itself is slow, compared to the extra memory, at least in inner loops or so ;) > But given that you can just put the FPU into 64-bit precision mode > anyway to get predictable arithmetic, I would like to see the option to > use just 64-bit spills for those programs that do run the FPU in 64-bit > precision mode. I still don't see what the 64 bit precision idea gives us, in terms of performance. First, it doesn't give us full ieee, second, it kills performance, depending on where the rounding mode is set (before each assignment? resetting it to normal before each long double assignment?) IAW, how is 64 bit rounding mode going to be faster? For me, it seems this creates a similar situation to the float->integer conversion, i.e. save and restoring the control word with each assignment. -----==- | ----==-- _ | ---==---(_)__ __ ____ __ Marc Lehmann +-- --==---/ / _ \/ // /\ \/ / pcg@goof.com |e| -=====/_/_//_/\_,_/ /_/\_\ --+ The choice of a GNU generation | |