This is the mail archive of the gcc-patches@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]

Re: [PATCH], Add optional IEEE/IBM long double multilib support


To answer some of my own questions about how this works (or doesn't work):

There are two different types in libgcc called TFtype, one in 
quad-float128.h and one in libgcc2.h.  The one in quad-float128.h is 
mapped to KFmode in the case where TFmode is IBM long double, so functions 
such as __mulkc3 do get the correct types.

As far as I can tell, functions such as __multf3, and libgcc2.c TFmode 
functions in general, get the version of TFtype from libgcc2.h (which is 
always of mode TFmode).  So I still don't see how you ensure all those 
functions do use IBM long double when IEEE long double is the default (but 
have not tested a build with IEEE long double as default).  (And __powikf2 
doesn't even exist, but is needed for __builtin_powil to work properly in 
the IEEE long double case.)

I have confirmed with testing that _Complex long double multiplication 
with -mabi=ieeelongdouble still uses __multc3, although it needs to use 
__mulkc3, and, likewise, _Complex long double division with 
-mabi=ieeelongdouble wrongly uses __divtc3 but should be using __divkc3.

-- 
Joseph S. Myers
joseph@codesourcery.com


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