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

Eli Friedman eli.friedman at gmail.com
Thu Nov 10 14:59:54 PST 2011


On Thu, Nov 10, 2011 at 2:40 PM, Hatanaka, Akira <ahatanaka at mips.com> wrote:
> 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]?

Yes, i128 is the type that the existing code will expect.  You'll
probably need to hack on the libcall generation bits to get it to pass
the arguments correctly.

-Eli

> ________________________________________
> 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