Index: external/gpl3/gcc.old/dist/gcc/doc/invoke.texi =================================================================== RCS file: /cvsroot/src/external/gpl3/gcc.old/dist/gcc/doc/invoke.texi,v retrieving revision 1.6 diff -p -u -r1.6 invoke.texi --- external/gpl3/gcc.old/dist/gcc/doc/invoke.texi 13 Nov 2017 08:05:20 -0000 1.6 +++ external/gpl3/gcc.old/dist/gcc/doc/invoke.texi 27 Mar 2018 08:15:19 -0000 @@ -23214,6 +23214,42 @@ permits the correct alignment of COMMON used when generating code. It is enabled by default if GCC detects that the target assembler found during configuration supports the feature. + +@item -mindirect-branch=@var{choice} +@opindex -mindirect-branch +Convert indirect call and jump with @var{choice}. The default is +@samp{keep}, which keeps indirect call and jump unmodified. +@samp{thunk} converts indirect call and jump to call and return thunk. +@samp{thunk-inline} converts indirect call and jump to inlined call +and return thunk. @samp{thunk-extern} converts indirect call and jump +to external call and return thunk provided in a separate object file. +You can control this behavior for a specific function by using the +function attribute @code{indirect_branch}. @xref{Function Attributes}. + +Note that @option{-mcmodel=large} is incompatible with +@option{-mindirect-branch=thunk} nor +@option{-mindirect-branch=thunk-extern} since the thunk function may +not be reachable in large code model. + +@item -mfunction-return=@var{choice} +@opindex -mfunction-return +Convert function return with @var{choice}. The default is @samp{keep}, +which keeps function return unmodified. @samp{thunk} converts function +return to call and return thunk. @samp{thunk-inline} converts function +return to inlined call and return thunk. @samp{thunk-extern} converts +function return to external call and return thunk provided in a separate +object file. You can control this behavior for a specific function by +using the function attribute @code{function_return}. +@xref{Function Attributes}. + +Note that @option{-mcmodel=large} is incompatible with +@option{-mfunction-return=thunk} nor +@option{-mfunction-return=thunk-extern} since the thunk function may +not be reachable in large code model. + +@item -mindirect-branch-register +@opindex -mindirect-branch-register +Force indirect call and jump via register. @end table See also under @ref{x86 Options} for standard options.