summaryrefslogtreecommitdiffstats
path: root/gcc/doc/extend.texi
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-06 21:08:29 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-06 21:08:29 +0000
commitb8629bcbf1886590198e454da24678fd2bed644a (patch)
tree9ec1859d91b52189e69960725b5d8fa34f4ef273 /gcc/doc/extend.texi
parentc17c7d1f77f360a426fa21df9504981c9d201c9b (diff)
downloadppe42-gcc-b8629bcbf1886590198e454da24678fd2bed644a.tar.gz
ppe42-gcc-b8629bcbf1886590198e454da24678fd2bed644a.zip
* doc/extend.texi (Function Attributes): Document the IA-64 version
of the "model" attribute. * config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro. (SYMBOL_REF_SMALL_ADDR_P): Ditto. (PREDICATE_CODES): Mention "small_addr_symbolic_operand". * config/ia64/ia64.c (ia64_handle_model_attribute): New function. (ia64_encode_section_info): Likewise. (ia64_attribute_table): Add "model" attribute. (TARGET_ENCODE_SECTION_INFO): Define. (small_addr_symbolic_operand): New function. (got_symbolic_operand): Return 0 for a symbolref to an object in the small address area. (enum ia64_addr_area): New type. (small_ident1): New variable. (small_ident2): Likewise. (init_idents): New function. (ia64_get_addr_area): Likewise. (ia64_encode_addr_area): Likewise. (ia64_encode_section_info): Likewise. (ia64_expand_load_address): For symbolic references to objects in the small-address-area, load the address via gen_rtx_SET() (which, eventually, will expand into "addl"). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70209 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc/extend.texi')
-rw-r--r--gcc/doc/extend.texi18
1 files changed, 14 insertions, 4 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 4ccc68b43e2..f9ac87e3f46 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -2540,10 +2540,12 @@ the compiler. It is up to the programmer to provide these sequences.
@item model (@var{model-name})
@cindex function addressability on the M32R/D
-Use this attribute on the M32R/D to set the addressability of an object,
-and of the code generated for a function.
-The identifier @var{model-name} is one of @code{small}, @code{medium},
-or @code{large}, representing each of the code models.
+@cindex variable addressability on the IA-64
+
+On the M32R/D, use this attribute to set the addressability of an
+object, and of the code generated for a function. The identifier
+@var{model-name} is one of @code{small}, @code{medium}, or
+@code{large}, representing each of the code models.
Small model objects live in the lower 16MB of memory (so that their
addresses can be loaded with the @code{ld24} instruction), and are
@@ -2558,6 +2560,14 @@ compiler will generate @code{seth/add3} instructions to load their addresses),
and may not be reachable with the @code{bl} instruction (the compiler will
generate the much slower @code{seth/add3/jl} instruction sequence).
+On IA-64, use this attribute to set the addressability of an object.
+At present, the only supported identifier for @var{model-name} is
+@code{small}, indicating addressability via ``small'' (22-bit)
+addresses (so that their addresses can be loaded with the @code{addl}
+instruction). Caveat: such addressing is by definition not position
+independent and hence this attribute must not be used for objects
+defined by shared libraries.
+
@item far
@cindex functions which handle memory bank switching
On 68HC11 and 68HC12 the @code{far} attribute causes the compiler to
OpenPOWER on IntegriCloud