Commit 87c365a4 by Nathan Sidwell Committed by Nathan Sidwell

invoke.texi (RS/6000 and PowerPC Options): Document that -mlongcall does not…

invoke.texi (RS/6000 and PowerPC Options): Document that -mlongcall does not guarantee all calls will be long.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document that
	-mlongcall does not guarantee all calls will be long.
	* doc/extend.texi (long_call/short_call): Document that longcall
	does not guarantee a long call will be used.
	(longcall/shortcall): Likewise.

From-SVN: r115582
parent 2e0d61d9
2006-07-17 Nathan Sidwell <nathan@codesourcery.com>
* doc/invoke.texi (RS/6000 and PowerPC Options): Document that
-mlongcall does not guarantee all calls will be long.
* doc/extend.texi (long_call/short_call): Document that longcall
does not guarantee a long call will be used.
(longcall/shortcall): Likewise.
2006-07-18 Roger Sayle <roger@eyesopen.com> 2006-07-18 Roger Sayle <roger@eyesopen.com>
PR middle-end/28283 PR middle-end/28283
......
...@@ -1962,20 +1962,21 @@ from the USP register in the function prologue. ...@@ -1962,20 +1962,21 @@ from the USP register in the function prologue.
This attribute specifies how a particular function is called on This attribute specifies how a particular function is called on
ARM@. Both attributes override the @option{-mlong-calls} (@pxref{ARM Options}) ARM@. Both attributes override the @option{-mlong-calls} (@pxref{ARM Options})
command line switch and @code{#pragma long_calls} settings. The command line switch and @code{#pragma long_calls} settings. The
@code{long_call} attribute causes the compiler to always call the @code{long_call} attribute indicates that the function might be far
function by first loading its address into a register and then using the away from the call site and require a different (more expensive)
contents of that register. The @code{short_call} attribute always places calling sequence. The @code{short_call} attribute always places
the offset to the function from the call site into the @samp{BL} the offset to the function from the call site into the @samp{BL}
instruction directly. instruction directly.
@item longcall/shortcall @item longcall/shortcall
@cindex functions called via pointer on the RS/6000 and PowerPC @cindex functions called via pointer on the RS/6000 and PowerPC
On the Blackfin, RS/6000 and PowerPC, the @code{longcall} attribute causes On the Blackfin, RS/6000 and PowerPC, the @code{longcall} attribute
the compiler to always call this function via a pointer, just as it would if indicates that the function might be far away from the call site and
the @option{-mlongcall} option had been specified. The @code{shortcall} require a different (more expensive) calling sequence. The
attribute causes the compiler not to do this. These attributes override @code{shortcall} attribute indicates that the function is always close
both the @option{-mlongcall} switch and, on the RS/6000 and PowerPC, the enough for the shorter calling sequence to be used. These attributes
@code{#pragma longcall} setting. override both the @option{-mlongcall} switch and, on the RS/6000 and
PowerPC, the @code{#pragma longcall} setting.
@xref{RS/6000 and PowerPC Options}, for more information on whether long @xref{RS/6000 and PowerPC Options}, for more information on whether long
calls are necessary. calls are necessary.
......
...@@ -11906,11 +11906,13 @@ names in the assembly language output using symbolic forms. ...@@ -11906,11 +11906,13 @@ names in the assembly language output using symbolic forms.
@itemx -mno-longcall @itemx -mno-longcall
@opindex mlongcall @opindex mlongcall
@opindex mno-longcall @opindex mno-longcall
Default to making all function calls indirectly, using a register, so By default assume that all calls are far away so that a longer more
that functions which reside further than 32 megabytes (33,554,432 expensive calling sequence is required. This is required for calls
bytes) from the current location can be called. This setting can be further than 32 megabytes (33,554,432 bytes) from the current location.
overridden by the @code{shortcall} function attribute, or by A short call will be generated if the compiler knows
@code{#pragma longcall(0)}. the call cannot be that far away. This setting can be overridden by
the @code{shortcall} function attribute, or by @code{#pragma
longcall(0)}.
Some linkers are capable of detecting out-of-range calls and generating Some linkers are capable of detecting out-of-range calls and generating
glue code on the fly. On these systems, long calls are unnecessary and glue code on the fly. On these systems, long calls are unnecessary and
......
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