aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>1998-04-04 10:37:01 -0800
committerRichard Henderson <rth@gcc.gnu.org>1998-04-04 10:37:01 -0800
commit39bdfaa056121fd2a7d54de19863547390be29ab (patch)
treeee5288b2caa5c9ec936ff96e9c7ffb866778d2c5 /gcc
parent0022a940045b4dfc379556ed14df105362a3f5df (diff)
downloadgcc-39bdfaa056121fd2a7d54de19863547390be29ab.zip
gcc-39bdfaa056121fd2a7d54de19863547390be29ab.tar.gz
gcc-39bdfaa056121fd2a7d54de19863547390be29ab.tar.bz2
Clarify LEGITIMIZE_RELOAD_ADDRESS issues a tad.
From-SVN: r18997
Diffstat (limited to 'gcc')
-rw-r--r--gcc/tm.texi24
1 files changed, 12 insertions, 12 deletions
diff --git a/gcc/tm.texi b/gcc/tm.texi
index a5c2729..9f70403 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -4243,21 +4243,26 @@ LEGITIMIZE_RELOAD_ADDRESS appropriately, the intermediate addresses
generated for adjacent some stack slots can be made identical, and thus
be shared.
-@findex strict_memory_address_p
-The macro definition may use @code{strict_memory_address_p} to test if
-the address has become legitimate.
+@emph{Note}: This macro should be used with caution. It is necessary
+to know something of how reload works in order to effectively use this,
+and it is quite easy to produce macros that build in too much knowledge
+of reload internals.
@findex push_reload
-It may use @code{push_reload} to indicate parts that need reloading.
-@var{opnum}, @var{type} and @var{ind_levels} are usually suitable to be
-passed unaltered to push_reload.
+The macro definition should use @code{push_reload} to indicate parts that
+need reloading; @var{opnum}, @var{type} and @var{ind_levels} are usually
+suitable to be passed unaltered to @code{push_reload}.
-The code generated by this macro should not alter the substructure of
+The code generated by this macro must not alter the substructure of
@var{x}. If it transforms @var{x} into a more legitimate form, it
should assign @var{x} (which will always be a C variable) a new value.
This also applies to parts that you change indirectly by calling
@code{push_reload}.
+@findex strict_memory_address_p
+The macro definition may use @code{strict_memory_address_p} to test if
+the address has become legitimate.
+
@findex copy_rtx
If you want to change only a part of @var{x}, one standard way of doing
this is to use @code{copy_rtx}. Note, however, that is unshares only a
@@ -4266,11 +4271,6 @@ top level, you'll need to replace first the top leve
It is not necessary for this macro to come up with a legitimate
address; but often a machine-dependent strategy can generate better code.
-@emph{Note}: This macro should be used with caution. It is necessary
-to know something of how reload works in order to effectively use this,
-and it is quite easy to produce macros that build in too much knowledge
-of reload internals.
-
@findex GO_IF_MODE_DEPENDENT_ADDRESS
@item GO_IF_MODE_DEPENDENT_ADDRESS (@var{addr}, @var{label})
A C statement or compound statement with a conditional @code{goto