Commit 5a26b329 by Stuart Hastings Committed by Stuart Hastings

invoke.texi: Document -mlongcall for Darwin/PPC.

2004-03-04  Stuart Hastings  <stuart@apple.com>
	* gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.

From-SVN: r78927
parent 2e5d2af9
2004-03-04 Stuart Hastings <stuart@apple.com> 2004-03-04 Stuart Hastings <stuart@apple.com>
* gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
2004-03-04 Stuart Hastings <stuart@apple.com>
* gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
686, tell Darwin assembler to allow prefetch insns, non-empty def 686, tell Darwin assembler to allow prefetch insns, non-empty def
of SUBTARGET_OPTION_TRANSLATE_TABLE. of SUBTARGET_OPTION_TRANSLATE_TABLE.
......
...@@ -270,8 +270,8 @@ in the following sections. ...@@ -270,8 +270,8 @@ in the following sections.
-fdelayed-branch -fdelete-null-pointer-checks @gol -fdelayed-branch -fdelete-null-pointer-checks @gol
-fexpensive-optimizations -ffast-math -ffloat-store @gol -fexpensive-optimizations -ffast-math -ffloat-store @gol
-fforce-addr -fforce-mem -ffunction-sections @gol -fforce-addr -fforce-mem -ffunction-sections @gol
-fgcse -fgcse-lm -fgcse-sm -fgcse-las -fgcse-after-reload @gol -fgcse -fgcse-lm -fgcse-sm -fgcse-las -floop-optimize @gol
-floop-optimize -fcrossjumping -fif-conversion -fif-conversion2 @gol -fcrossjumping -fif-conversion -fif-conversion2 @gol
-finline-functions -finline-limit=@var{n} -fkeep-inline-functions @gol -finline-functions -finline-limit=@var{n} -fkeep-inline-functions @gol
-fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol -fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol
-fmove-all-movables -fnew-ra -fno-branch-count-reg @gol -fmove-all-movables -fnew-ra -fno-branch-count-reg @gol
...@@ -461,7 +461,7 @@ in the following sections. ...@@ -461,7 +461,7 @@ in the following sections.
-single_module -static -sub_library -sub_umbrella @gol -single_module -static -sub_library -sub_umbrella @gol
-twolevel_namespace -umbrella -undefined @gol -twolevel_namespace -umbrella -undefined @gol
-unexported_symbols_list -weak_reference_mismatches @gol -unexported_symbols_list -weak_reference_mismatches @gol
-whatsloaded -F} -whatsloaded}
@emph{MIPS Options} @emph{MIPS Options}
@gccoptlist{-EL -EB -march=@var{arch} -mtune=@var{arch} @gol @gccoptlist{-EL -EB -march=@var{arch} -mtune=@var{arch} @gol
...@@ -478,8 +478,7 @@ in the following sections. ...@@ -478,8 +478,7 @@ in the following sections.
-mcheck-zero-division -mno-check-zero-division @gol -mcheck-zero-division -mno-check-zero-division @gol
-mmemcpy -mno-memcpy -mlong-calls -mno-long-calls @gol -mmemcpy -mno-memcpy -mlong-calls -mno-long-calls @gol
-mmad -mno-mad -mfused-madd -mno-fused-madd -nocpp @gol -mmad -mno-mad -mfused-madd -mno-fused-madd -nocpp @gol
-mfix-r4000 -mno-fix-r4000 -mfix-r4400 -mno-fix-r4400 @gol -mfix-r4000 -mno-fix-r4000 -mfix-sb1 -mno-fix-sb1 @gol
-mfix-sb1 -mno-fix-sb1 @gol
-mflush-func=@var{func} -mno-flush-func @gol -mflush-func=@var{func} -mno-flush-func @gol
-mbranch-likely -mno-branch-likely} -mbranch-likely -mno-branch-likely}
...@@ -3646,8 +3645,7 @@ invoking @option{-O2} on programs that use computed gotos. ...@@ -3646,8 +3645,7 @@ invoking @option{-O2} on programs that use computed gotos.
@opindex O3 @opindex O3
Optimize yet more. @option{-O3} turns on all optimizations specified by Optimize yet more. @option{-O3} turns on all optimizations specified by
@option{-O2} and also turns on the @option{-finline-functions}, @option{-O2} and also turns on the @option{-finline-functions},
@option{-fweb}, @option{-frename-registers} @option{-fweb} and @option{-frename-registers} options.
and @option{-fgcse-after-reload} options.
@item -O0 @item -O0
@opindex O0 @opindex O0
...@@ -3958,12 +3956,6 @@ same memory location (both partial and full redundancies). ...@@ -3958,12 +3956,6 @@ same memory location (both partial and full redundancies).
Enabled by default when gcse is enabled. Enabled by default when gcse is enabled.
@item -fgcse-after-reload
@opindex fgcse-after-reload
When @option{-fgcse-after-reload} is enabled, a redundant load elimination
pass is performed after reload. The purpose of this pass is to cleanup
redundant spilling.
@item -floop-optimize @item -floop-optimize
@opindex floop-optimize @opindex floop-optimize
Perform loop optimizations: move constant expressions out of loops, simplify Perform loop optimizations: move constant expressions out of loops, simplify
...@@ -7529,10 +7521,11 @@ names in the assembly language output using symbolic forms. ...@@ -7529,10 +7521,11 @@ 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 via pointers, so that functions Default to making all function calls indirectly, using a register, so
which reside further than 64 megabytes (67,108,864 bytes) from the that functions which reside further than 32 megabytes (33,554,432
current location can be called. This setting can be overridden by the bytes) from the current location can be called. This setting can be
@code{shortcall} function attribute, or by @code{#pragma longcall(0)}. 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
...@@ -7540,6 +7533,16 @@ generate slower code. As of this writing, the AIX linker can do this, ...@@ -7540,6 +7533,16 @@ generate slower code. As of this writing, the AIX linker can do this,
as can the GNU linker for PowerPC/64. It is planned to add this feature as can the GNU linker for PowerPC/64. It is planned to add this feature
to the GNU linker for 32-bit PowerPC systems as well. to the GNU linker for 32-bit PowerPC systems as well.
On Darwin/PPC systems, @code{#pragma longcall} will generate ``jbsr
callee, L42'', plus a ``branch island'' (glue code). The two target
addresses represent the callee and the ``branch island.'' The
Darwin/PPC linker will prefer the first address and generate a ``bl
callee'' if the PPC ``bl'' instruction will reach the callee directly;
otherwise, the linker will generate ``bl L42'' to call the ``branch
island.'' The ``branch island'' is appended to the body of the
calling function; it computes the full 32-bit address of the callee
and jumps to it.
On Mach-O (Darwin) systems, this option directs the compiler emit to On Mach-O (Darwin) systems, this option directs the compiler emit to
the glue for every direct call, and the Darwin linker decides whether the glue for every direct call, and the Darwin linker decides whether
to use or discard it. to use or discard it.
...@@ -7562,34 +7565,6 @@ These options are defined for all architectures running the Darwin operating ...@@ -7562,34 +7565,6 @@ These options are defined for all architectures running the Darwin operating
system. They are useful for compatibility with other Mac OS compilers. system. They are useful for compatibility with other Mac OS compilers.
@table @gcctabopt @table @gcctabopt
@item -F@var{dir}
@opindex F
Add the framework directory @var{dir} to the head of the list of
directories to be searched for header files. These directories are
interleaved with those specified by @option{-I} options and are
scanned in a left-to-right order.
A framework directory is a directory with frameworks in it. A
framework is a directory with a @samp{"Headers"} and/or
@samp{"PrivateHeaders"} directory contained directly in it that ends
in @samp{".framework"}. The name of a framework is the name of this
directory excluding the @samp{".framework"}. Headers associated with
the framework are found in one of those two directories, with
@samp{"Headers"} being searched first. A subframework is a framework
directory that is in a framework's @samp{"Frameworks"} directory.
Includes of subframework headers can only appear in a header of a
framework that contains the subframework, or in a sibling subframework
header. Two subframeworks are siblings if they occur in the same
framework. A subframework should not have the same name as a
framework, a warning will be issued if this is violated. Currently a
subframework cannot have subframeworks, in the future, the mechanism
may be extended to support this. The standard frameworks can be found
in @samp{"/System/Library/Frameworks"}, @samp{"/Library/Frameworks"}
and @samp{"/Local/Library/Frameworks"}. An example include looks like
@code{#include <Framework/header.h>}, where @samp{Framework} denotes
the name of the framework and header.h is found in the
@samp{"PrivateHeaders"} or @samp{"Headers"} directory.
@item -all_load @item -all_load
@opindex all_load @opindex all_load
Loads all members of static archive libraries. Loads all members of static archive libraries.
...@@ -8084,20 +8059,6 @@ immediately after starting an integer division. ...@@ -8084,20 +8059,6 @@ immediately after starting an integer division.
@item @item
A double-word or a variable shift may give an incorrect result if executed A double-word or a variable shift may give an incorrect result if executed
while an integer multiplication is in progress. while an integer multiplication is in progress.
@item
An integer division may give an incorrect result if started in a delay slot
of a taken branch or a jump.
@end itemize
@item -mfix-r4400
@itemx -mno-fix-r4400
@opindex mfix-r4400
@opindex mno-fix-r4400
Work around certain R4400 CPU errata:
@itemize @minus
@item
A double-word or a variable shift may give an incorrect result if executed
immediately after starting an integer division.
@end itemize @end itemize
@item -mfix-sb1 @item -mfix-sb1
......
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