X-pop3-spooler: POP3MAIL 2.1.0 b 3 961213 -bs- Delivered-To: pcg AT goof DOT com Message-ID: <19980312234235.53559@cerebro.laendle> Date: Thu, 12 Mar 1998 23:42:35 +0100 From: Marc Lehmann To: beastium Subject: Re: paranoia & extra precision [was -fno-float-store in pgcc] Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.88 X-Operating-System: Linux version 2.1.85 (root AT cerebro) (gcc version pgcc-2.91.06 980129 (gcc-2.8.0 release)) Status: RO Content-Length: 2006 Lines: 49 On Thu, Mar 12, 1998 at 08:44:39PM +0100, Wolfgang Formann wrote: > Tuukka Toivonen wrote: > > >On Thu, 12 Mar 1998, Marc Lehmann wrote: > > I think you forgot this braindamaged FPU, which has only 7 registers for > storing intermediate values/operands (the 8th is used for the next result). > So when you geht out of registers, than you *HAVE* to store one of the > intermidiates to memory. And from that moment you mix 80-bits and 64-bits > and get neither IEEE-compliant nor extended results! yeah, it's even worse.. so you have sth. between 53 and 80 bits of precision. there is no escape, though, either eat it (use extra precision) or die (slow code). to my knowledge, no compiler goes the slow way by default ;) > ???????????????? not sure about this ???????????????? > Well, I think, there is an additional bit used inside the FPU as a helper noo, the internal registers only have 80 bit precision. the actual intermediate calculations are usually accomplished with more bits (the guard, round and sticky bits on the 6888x fpu's, but my databook doesn't mention anything for the x86 fpu ;), but these are NOT stored, these are used for rounding purposes. > for rounding problems, if that is true the real internal format is 81 bits no. > too use the FPU, then you will lose this 81th bit by saving and restoring no. > Maybe that is why the adden a new opcode in some Pentium-chips ? ?????? tell me? > >Even better would be #pragma or something which would allow one to use pragma = nono ;) until c9x adds the _Pragma syntax, #pragma's are just useless. -----==- | ----==-- _ | ---==---(_)__ __ ____ __ Marc Lehmann +-- --==---/ / _ \/ // /\ \/ / pcg AT goof DOT com |e| -=====/_/_//_/\_,_/ /_/\_\ --+ The choice of a GNU generation | |