diff options
Diffstat (limited to 'gcc/doc/extend.texi')
-rw-r--r-- | gcc/doc/extend.texi | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 70c46cf..7700ab9 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -8460,6 +8460,10 @@ various @option{-std} options, use @code{__asm__} instead of @item volatile The optional @code{volatile} qualifier has no effect. All basic @code{asm} blocks are implicitly volatile. + +@item inline +If you use the @code{inline} qualifier, then for inlining purposes the size +of the asm is taken as the smallest size possible (@pxref{Size of an asm}). @end table @subsubheading Parameters @@ -8603,6 +8607,10 @@ values to produce output values. However, your @code{asm} statements may also produce side effects. If so, you may need to use the @code{volatile} qualifier to disable certain optimizations. @xref{Volatile}. +@item inline +If you use the @code{inline} qualifier, then for inlining purposes the size +of the asm is taken as the smallest size possible (@pxref{Size of an asm}). + @item goto This qualifier informs the compiler that the @code{asm} statement may perform a jump to one of the labels listed in the @var{GotoLabels}. @@ -10061,7 +10069,7 @@ does this by counting the number of instructions in the pattern of the @code{asm} and multiplying that by the length of the longest instruction supported by that processor. (When working out the number of instructions, it assumes that any occurrence of a newline or of -whatever statement separator character is supported by the assembler -- +whatever statement separator character is supported by the assembler --- typically @samp{;} --- indicates the end of an instruction.) Normally, GCC's estimate is adequate to ensure that correct @@ -10072,6 +10080,11 @@ space in the object file than is needed for a single instruction. If this happens then the assembler may produce a diagnostic saying that a label is unreachable. +@cindex @code{asm inline} +This size is also used for inlining decisions. If you use @code{asm inline} +instead of just @code{asm}, then for inlining purposes the size of the asm +is taken as the minimum size, ignoring how many instructions GCC thinks it is. + @node Alternate Keywords @section Alternate Keywords @cindex alternate keywords |