This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

TFmode support.


I have been asked to find out whether (and under which circumstances) GCC supports TFmode computations.

The issue arises because g95 will support -i8 -r8 flags, which will direct the compiler to use 64-bit variables for INTEGERs, LOGICALs and REALS (and a pair of 64-bit variables for COMPLEX).

Due to the rules of Fortran, this means that DOUBLE PRECISION and DOUBLE COMPLEX should be implemented using 128-bit floating point arithmetic - due to the fact that the Fortran Standard mandates that DOUBLE PRECISION occupies "two storage units", whereas REAL occupies "one" [actually, using 128-bit arithmetic is slow on current hardware, therefore most compilers who offer -i8 -r8 facilities also offer an option to indicate that the programmer doesn't want to 128-bit arithmetic for DOUBLE PRECISION variables, but 64-bit]

However, it might be neat to support 128-bit arithmetic. Now, I tried to find out whether libgcc.a was built in a way that this support was there, but I quickly got lost in a twisty maze of makefile fragments, shell scripts and definition files.

What I did discover, though (using nm), is that on my powerpc machine no TImode routines are compiled, while on alpha they are (but there are no TFmode routines in libgcc).

Is TFmode arithmetic supported in GCC on 64-bit targets or not? If not, what is necessary to offer that support ?

Thanks in advance for any answers you can give.

--
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
Join GNU Fortran 95: http://g95.sourceforge.net/ (under construction)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]