This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, ARM] attribute target (thumb,arm) [4/6] respin (4th)
- From: Sandra Loosemore <sandra at codesourcery dot com>
- To: Christian Bruel <christian dot bruel at st dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, Ramana Radhakrishnan <Ramana dot Radhakrishnan at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, Nicholas Clifton <nickc at redhat dot com>
- Date: Wed, 6 May 2015 17:03:13 -0600
- Subject: Re: [PATCH, ARM] attribute target (thumb,arm) [4/6] respin (4th)
- Authentication-results: sourceware.org; auth=none
- References: <554A243B dot 8010902 at st dot com>
On 05/06/2015 08:24 AM, Christian Bruel wrote:
diff '--exclude=.svn' -ruN gnu_trunk.p3/gcc/gcc/doc/extend.texi gnu_trunk.p4/gcc/gcc/doc/extend.texi
--- gnu_trunk.p3/gcc/gcc/doc/extend.texi 2015-05-06 09:00:31.232943164 +0200
+++ gnu_trunk.p4/gcc/gcc/doc/extend.texi 2015-05-06 14:50:05.632612233 +0200
@@ -3419,6 +3419,25 @@
the compiler rejects attempts to specify an alternative.
@end table
+@item target (@var{options})
+@cindex @code{target} function attribute
+As discussed in @ref{Common Function Attributes}, this attribute
+allows specification of target-specific compilation options.
+
+On ARM, the following options are allowed:
+
+@table @samp
+@item thumb
+@cindex @code{target("thumb")} function attribute, ARM
+Force Thumb1 Thumb2 code generation depending on the architecture.
"Force Thumb or Thumb-2 code generation, depending on the architecture."
(I believe that's ARM's official terminology, rather than "Thumb1" or
"Thumb2".)
+
+@item arm
+@cindex @code{target("arm")} function attribute, ARM
+Force ARM code generation.
+@end table
+
+Functions from different modes can be inlined using the caller mode.
"...the caller's mode."
+
@node AVR Function Attributes
@subsection AVR Function Attributes
@@ -18436,8 +18455,9 @@
@xref{Function Attributes}, for more information about the
@code{target} attribute and the attribute syntax.
-The @code{#pragma GCC target} pragma is presently implemented for
-x86, PowerPC, and Nios II targets only.
+The @code{#pragma GCC target} pragma is implemented for
+ARM, x86, PowerPC, and Nios II targets.
+
@end table
@table @code
Please also add a cross-reference to ARM Function Attributes in the main
entry for @item target in Common Function Attributes, in this paragraph:
The options supported are specific to each target; refer to @ref{x86
Function Attributes}, @ref{PowerPC Function Attributes}, and
@ref{Nios II Function Attributes}, for details.
diff '--exclude=.svn' -ruN gnu_trunk.p3/gcc/gcc/doc/invoke.texi gnu_trunk.p4/gcc/gcc/doc/invoke.texi
--- gnu_trunk.p3/gcc/gcc/doc/invoke.texi 2015-05-06 09:00:31.232943164 +0200
+++ gnu_trunk.p4/gcc/gcc/doc/invoke.texi 2015-05-06 14:36:32.331213593 +0200
@@ -13434,6 +13434,10 @@
configuring GCC with the @option{--with-mode=}@var{state}
configure option.
+You can also override the ARM and Thumb mode for each function
+by using the @code{target("thumb")} and @code{target("arm")} function attributes
+(@pxref{Function Attributes}) or pragmas (@pxref{Function Specific Option Pragmas}).
You can make the first reference point at the ARM Function Attributes
node, now that it exists, instead of the generic Function Attributes
section.
+
@item -mtpcs-frame
@opindex mtpcs-frame
Generate a stack frame that is compliant with the Thumb Procedure Call
-Sandra