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] attribute target (thumb,arm) [4/6] respin (4th)


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


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