[PATCH] ARM half-precision floating point, 3/8 (target hooks)

Paolo Bonzini bonzini@gnu.org
Mon Apr 27 16:47:00 GMT 2009


> 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 "...".

Paolo



More information about the Gcc-patches mailing list