This is the mail archive of the
mailing list for the GCC project.
Re: support of 128 bit long real on linux for ia32
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Andreas Jaeger <aj at suse dot de>, Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Cc: Winfrid dot Tschiedel at hpc dot fujitsu-siemens dot com, gcc-help at gcc dot gnu dot org, gcc at gcc dot gnu dot org
- Date: Tue, 12 Feb 2002 15:07:17 +0100
- Subject: Re: support of 128 bit long real on linux for ia32
- References: <200202120811.JAA16699@raptor.hpc.siemens.de> <email@example.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Feb 12, 2002 at 09:24:05AM +0100, Andreas Jaeger wrote:
> > I have a small question concerning the support of
> > long double on linux ia32 with gcc v3.x
> > Now my question, is it true, that the precision for both compilations
> > is the same, except that for -m128bit-long-double the result of
> > sizeof(long double) is 16, while in the other case sizeof(long double) is 12?
> Yes, that's true.
> > Do plan to enhance your compiler in order to get
> > "long double" in C compatible with real(16) in fortran ?
> For such types, we would need a software floating point library doing
> the computation and possibly changes to C Library and binutils for
> supporting this format. I'm not aware of anybody working on this,
Well, we already have the software floating point library doing the
computation (soft-fp in glibc), it is just matter of copying it into libf2c,
configuring for architectures which are supported by soft-fp (or add support
to new ones) and don't have IEEE quad long double already and changing gcc
middle end and backends so that they are able to cope with two different
TFmode style modes (at least on ia64 where TFmode is actually XFmode in 16
bytes). I don't know exactly what all functions need to be supported on
real(16) by Fortran, but probably it would mean converting several glibc
sysdeps/ieee754/ldbl-128/ routines so that they use soft-fp macros instead
of letting the C compiler do it (or compile them so that it works not on
long doubles but on double __attribute__((mode(TF))) type variables).