> > > On the other hand, as far as I can > > > see, __float80 is undocumented and unused for the i386. Why does it > > > exist? > > > > Jan added it with __float128 also: > > 2003-10-30 Jan Hubicka <[EMAIL PROTECTED]> > > > > (ix86_init_mmx_sse_builtins): Add __float80, __float128. > > > > I think it was added for x86_64 ABI support which defines them > > > > http://gcc.gnu.org/ml/gcc-patches/2003-10/msg02473.html > > Are you saying that the x86_64 ABI calls for __float80 to be defined? > I can't find any reference to __float80 which is not related to gcc or > ia64.
__float128 is defined as optional by x86_64 ABI, the main reason was to stay mostly in sync with IA-64 to make porting of applications in between both platforms easier. When __float80 and __float128 was added to IA-64 port, I enabled them on x86-64 as well. >From this POV it seems to make sense to support both on x86-64 too, but I could live with oposite sollution too. The conditoinal H. J. quoted is definitly supposed to make "__float80" equivalent of "long double" on 32bit compiler with 80bit long double and new type otherwise. I don't see how it depends on MMX/SSE, but if current logic is broken, would be possible to see the testcase? Honza > > In any case that does not give any explanation for why it should only > be defined for MMX or SSE. > > I don't object to defining __float80 for i386. I agree with H.J. that > if we define it, we should define it unconditionally. And I also say > that if we define it, we should document it, or at least find some > other document which mentions it. > > Ian