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

Paolo


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