www.delorie.com/archives/browse.cgi   search  
Mail Archives: pgcc/1998/03/12/22:44:17

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 <pcg AT goof DOT com>
To: beastium <beastium-list AT Desk DOT nl>
Subject: Re: paranoia & extra precision [was -fno-float-store in pgcc]
Mime-Version: 1.0
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
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                        |
                                                          |

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019