Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <cagney@gnu.org>
To: Joel Brobecker <brobecker@gnat.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFA/mips] 128-bit long doubles for N32/N64
Date: Mon, 02 Aug 2004 18:31:00 -0000	[thread overview]
Message-ID: <410E886E.1060702@gnu.org> (raw)
In-Reply-To: <20040802011520.GA32638@gnat.com>


> You're right. The floatformat for long double on mips-irix right now
> is the default floatformat_ieee_double_big. In pratice, I think this
> is not so bad.
> 
> A collegue or mine kindly explained to me how the doubles pair work
> to implement long doubles on IRIX. Basically, the high double holds
> the result of the operation rounded to double, and the low double holds
> the difference between the exact result and the rounded result. So
> "high" + "low" holds the result with added precision, but "high"
> contains the result rounded to double precision.

What happens little endian?

> In terms of how this affects the debugger: GDB currently only uses
> the high part of the long double, so it loses a bit of precision when
> printing long doubles. I don't think this is a problem at all, since
> we "only" print doubles with 17 digits. Similarly, I don't think we
> lose much when we ask the debugger to change the value of a long double
> variable, since I think a user will seldom provide a float with 50+
> digits (If I had to do that, I would use the hex value, and write it
> in memory directly).
> 
> Can we do better, and have a more accurate float format? It seems
> to me that the answer would be: not with the current floatformat
> description. Not a big deal, as far as I am concerned.

To back up a little.

Was the problem that GDB was dieing during a testsuite run, or that 
users were complaining "long double" didn't work on IRIX?  I'd suspect 
the former as, as far as I can tell, IRIX's long-double has always been 
broken.

If we do the above (I'm guessing that you're suggesting that long double 
format get explicitly set to ieee-double + a comment), then we get into 
the territory where GDB is lieing to the user - it appears to support 
something but doesn't.  I prefer to see us fix the problems, or at least 
make it clear to the user that the feature isn't supported.  While 
neither you nor I care about the last few bits of 128-bit 
floating-point, I can bet you that are fortran programmers that do :-/

We at least need to update http://sources.redhat/com/gdb/bugs/866
so we've more weight behind the argument that floatformat should be 
replaced (by GCC's code, hmm, does GCC's cross-platform floating-point 
library handle this?).

I also think that the architecture vector should stop supplying a 
default value for unknown float-formats -> here its clearly wrong and 
very hard to detect.

> There is one little sticky point: When calling a procedure with a long
> double as a parameter, GDB chokes:
> 
>         (gdb) call pd (a)
>         That operation is not available on integers of more than 8 bytes.
> 
> This is an issue indeed, but I think it can be dealt with separately
> of the patch I submitted.
> 
> Let me know what you think.

thoughts?
Andrew



  parent reply	other threads:[~2004-08-02 18:31 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-22 15:44 Joel Brobecker
2004-07-26 22:19 ` Andrew Cagney
2004-07-26 22:45   ` Joel Brobecker
2004-07-27 15:37     ` Andrew Cagney
2004-08-02  1:15       ` Joel Brobecker
2004-08-02  1:43         ` Michael Chastain
2004-08-02 18:31         ` Andrew Cagney [this message]
2004-08-03  1:13           ` Joel Brobecker
2004-08-03  1:59             ` Andrew Cagney
2004-08-03  4:39               ` Joel Brobecker
2004-08-03  7:27                 ` Mark Kettenis
2004-08-03 13:31                   ` Paul Koning
2004-08-04  4:00                     ` Alexandre Oliva
2004-08-04  7:19                     ` Mark Kettenis
2004-08-03  3:19             ` Michael Chastain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=410E886E.1060702@gnu.org \
    --to=cagney@gnu.org \
    --cc=brobecker@gnat.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox