[RFC][ARM] Naming for new switch to check for mixed hardfloat/softfloat compat
Joseph S. Myers
joseph@codesourcery.com
Wed Mar 5 18:11:00 GMT 2014
On Wed, 5 Mar 2014, Thomas Preud'homme wrote:
> > Some libgcc functions on ARM have ABIs that depend on which AAPCS
> > variant is in use - that is, libcalls, not just explicitly defined or
> > called functions, can affect the ABI compatibility. But the RTABI
> > functions don't - if you allow for that, then you increase the number
> > of cases that end up compatible with both ABI variants.
>
> Do you have some example of such libgcc functions? Is there any of them
> with no link to the use of float in public interface? Without knowing
> any such case from the top of my head I would say that the use of any of
> these functions make the compilation unit not compatible with both
> calling conventions since it requires libgcc for a specific calling
> convention but maybe the runtime library can be treated differently than
> other libraries.
The functions affected use floating-point in their public interfaces - for
example, __muldc3. Note that libcalls have a different hook
(TARGET_LIBCALL_VALUE, ending up using arm_libcall_uses_aapcs_base) from
the ones you mentioned. But if you use only functions that pass
arm_libcall_uses_aapcs_base (i.e. the floating-point operations defined in
RTABI) or don't involve floating point, then you can be compatible with
both calling conventions.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc
mailing list