[llvm-commits] [PATCH][Review request] IEEE quad software emulation library call

Hatanaka, Akira ahatanaka at mips.com
Thu Nov 10 14:40:47 PST 2011


It seems that there are several places in LegalizeFloatTypes.cpp in which nodes are expanded in a ppcf128-specific way. If that is the case, using ppcf128 in place of f128 will be incorrect.

Is i128 the type that should be set for RegisterTypeForVT[f128]?

________________________________________
From: Eli Friedman [eli.friedman at gmail.com]
Sent: Thursday, November 10, 2011 9:07 AM
To: Anton Korobeynikov
Cc: Hatanaka, Akira; llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] [PATCH][Review request] IEEE quad software emulation library call

On Thu, Nov 10, 2011 at 6:04 AM, Anton Korobeynikov
<anton at korobeynikov.info> wrote:
>> Well, the fact that it's in two f64 registers is really a property of
>> the calling convention, not a fundamental property of f128... unlike
>> f128, ppcf128 is actually a pair of f64's, so it isn't really the best
>> example to follow.  I'm not sure the calling convention handling code
>> can handle this properly at the moment, though... if nobody else has a
>> suggestion, it's okay as-is, I guess, but at least add a comment to
>> explain what is going on.
> This is definitely a MIPS-specific stuff. There are a lot of examples
> of "real" f128, e.g.
> Sparc and (removed in ToT) z/System. Thus it should be either
> generalized to allow all possible representations, or, perhaps MIPS
> can just use ppcf128 as well.

MIPS is using "real" f128 as well; the calling convention just
requires placing it into two f64 registers.

-Eli




More information about the llvm-commits mailing list