This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: IA64 floating-point types
Joseph S. Myers wrote:
Where are these types specified from a language extension point of view?
I've never had access to ia64-hpux, but I believe the only reason we
define them is because some HPUX system header files assume they are
available.
I don't believe they are documented anywhere from a language extension
point of view, but I think they are really more for convenience than for FP.
The only purpose of _fpreg seems to be for generating special purpose FP
load/store instructions (ldf.spill/stf.spill), and that support hasn't
been implemented yet. I can't be sure though, since I have no
documentation for _fpreg. It seems to be an HP specifix extension.
On Linux, where long double is __float80, I think the only possible
operations that can work with __float128 are load/store. This is because
linux has no support for 128 bit FP types. However, this assumes it is
implemented correctly, which it isn't, because we can't have both 80 and
128 bit FP types at the same time, so the question is moot.
On HPUX, where long double is __float128, in theory one could support FP
operations on __float80 because it is supported by the hardware, but the
question is moot because gcc can't have both 80 and 128 bit FP types at
the same time. Whether conversions are available between __float80 and
__float128 depends on whether HP defined library routines for them. I
don't have that info.
I see that Mark made __float128 a synonym for long double for HPUX, but
he did not make __float80 a synonym for long double for Linux. That
seems wrong, but I don't care much since I wouldn't recommend use of
these types anyways.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com