This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] ARM half-precision floating point, 3/8 (target hooks)
> True, but language-dependent rules would be applied first, so if, for
> example, they changed an HFmode object into a DFmode object, then the
> language independent rules would never see an HFmode object.
Yes, so PROMOTE_FUNCTION_MODE would be the right way to implement the
AAPCS. (The macro however does not support it yet; see my hookization
patches, after which it becomes a target hook and it is powerful enough
to distinguish conversion libcalls from other uses).
> There's an interesting issue as to whether a HFmode value passed to a
> variadic routine should be converted directly to DFmode or converted
> first to SFmode and then to DFmode (not much of a problem at the moment
> since passing HFmode objects by value isn't allowed at the moment, and
> in any case there's no rounding in this direction); but there are
> potential issues with the reverse conversion because of double rounding.
Interesting. Indeed, as implemented now (and without the hooks
forbidding HFmode pass-by-value) Sandra's patches would perform the
double rounding since float is never passed through "...".