Commit 14a782c8 by Richard Earnshaw Committed by Richard Earnshaw

* doc/extend.texi (pcs): Document new attribute for ARM.

From-SVN: r150531
parent 0f1a24df
2009-08-06 Richard Earnshaw <rearnsha@arm.com> 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
* doc/extend.texi (pcs): Document new attribute for ARM.
2009-08-06 Richard Earnshaw <rearnsha@arm.com>
* arm.c (pcs_attribute_args): Comment out unsupported attribute * arm.c (pcs_attribute_args): Comment out unsupported attribute
variants. variants.
......
...@@ -2830,6 +2830,28 @@ compiled with more aggressive optimization options that produce faster ...@@ -2830,6 +2830,28 @@ compiled with more aggressive optimization options that produce faster
and larger code, while other functions can be called with less and larger code, while other functions can be called with less
aggressive options. aggressive options.
@item pcs
@cindex @code{pcs} function attribute
The @code{pcs} attribute can be used to control the calling convention
used for a function on ARM. The attribute takes an argument that specifies
the calling convention to use.
When compiling using the AAPCS ABI (or a variant of that) then valid
values for the argument are @code{"aapcs"} and @code{"aapcs-vfp"}. In
order to use a variant other than @code{"aapcs"} then the compiler must
be permitted to use the appropriate co-processor registers (i.e., the
VFP registers must be available in order to use @code{"aapcs-vfp"}).
For example,
@smallexample
/* Argument passed in r0, and result returned in r0+r1. */
double f2d (float) __attribute__((pcs("aapcs")));
@end smallexample
Variadic functions always use the @code{"aapcs"} calling convention and
the compiler will reject attempts to specify an alternative.
@item pure @item pure
@cindex @code{pure} function attribute @cindex @code{pure} function attribute
Many functions have no effects except the return value and their Many functions have no effects except the return value and their
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment