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], PowerPC long double transistion, patch #2


On Fri, Jun 15, 2018 at 04:00:42PM -0500, Segher Boessenkool wrote:
> On Thu, Jun 14, 2018 at 08:15:51PM -0400, Michael Meissner wrote:
> > On Thu, Jun 14, 2018 at 07:00:52PM -0500, Segher Boessenkool wrote:
> > > Hi Mike,
> > > 
> > > On Wed, Jun 13, 2018 at 05:16:37PM -0400, Michael Meissner wrote:
> > > > This fixes some of the PowerPC tests that had implicit assumptions about the
> > > > long double format.  The fixes involved:
> > > > 
> > > >     1)	Using long double __complex instead of using a KC attribute;
> > > 
> > > Why?  Does KC not work?  It should work.
> > 
> > No KC does not work if long double is IEEE, just like IC does not work if long
> > double is IBM extended double.  This is part of the __float128/__ibm128 changes
> > that eliminated using separate types all of the time.
> 
> But those aren't types, those are modes.  Why would the modes not work?
> That makes no sense.  Just like the __ieee128 and __ibm128 types work
> always, so should the IF, KF, IC and KC modes.
> 
> So what happens if you try to use KC?

The problem is the infrastructure of the compiler.  The type and builtin system
really, really does not like having the same external name for a library
function.  So if you have a type that uses KFmode and the function resolved to
"__addkf3", and you have another type that uses TFmode, and it too resolves to
"__addkf3" you get an internal error.  Ditto for the name mangling.

So we have to make sure that there are really only two modes being used.

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.ibm.com, phone: +1 (978) 899-4797


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